This class provides the ability to make remote calls to the backing service through method + * calls that map to API methods. Sample code to get started: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ * String parent = "parent-995424086";
+ * for (ReportRow element : reportServiceClient.search(parent).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ * }
+ *
+ * Note: close() needs to be called on the ReportServiceClient object to clean up resources such + * as threads. In the example above, try-with-resources is used, which automatically calls close(). + * + *
| Method | + *Description | + *Method Variants | + *
|---|---|---|
Search |
+ * Retrieves a report defined by a search query. The response might contain fewer rows than specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be requested. |
+ *
+ * Request object method variants only take one parameter, a request object, which must be constructed before the call. + *
"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method. + *
Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service. + *
|
+ *
See the individual methods for example code. + * + *
Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *
This class can be customized by passing in a custom instance of ReportServiceSettings to + * create(). For example: + * + *
To customize credentials: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * ReportServiceSettings reportServiceSettings =
+ * ReportServiceSettings.newBuilder()
+ * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ * .build();
+ * ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ * }
+ *
+ * To customize the endpoint: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * ReportServiceSettings reportServiceSettings =
+ * ReportServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
+ * ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ * }
+ *
+ * To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over + * the wire: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * ReportServiceSettings reportServiceSettings =
+ * ReportServiceSettings.newHttpJsonBuilder().build();
+ * ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ * }
+ *
+ * Please refer to the GitHub repository's samples for more quickstart code snippets. + */ +@BetaApi +@Generated("by gapic-generator-java") +public class ReportServiceClient implements BackgroundResource { + private final ReportServiceSettings settings; + private final ReportServiceStub stub; + + /** Constructs an instance of ReportServiceClient with default settings. */ + public static final ReportServiceClient create() throws IOException { + return create(ReportServiceSettings.newBuilder().build()); + } + + /** + * Constructs an instance of ReportServiceClient, using the given settings. The channels are + * created based on the settings passed in, or defaults for any settings that are not set. + */ + public static final ReportServiceClient create(ReportServiceSettings settings) + throws IOException { + return new ReportServiceClient(settings); + } + + /** + * Constructs an instance of ReportServiceClient, using the given stub for making calls. This is + * for advanced usage - prefer using create(ReportServiceSettings). + */ + public static final ReportServiceClient create(ReportServiceStub stub) { + return new ReportServiceClient(stub); + } + + /** + * Constructs an instance of ReportServiceClient, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected ReportServiceClient(ReportServiceSettings settings) throws IOException { + this.settings = settings; + this.stub = ((ReportServiceStubSettings) settings.getStubSettings()).createStub(); + } + + protected ReportServiceClient(ReportServiceStub stub) { + this.settings = null; + this.stub = stub; + } + + public final ReportServiceSettings getSettings() { + return settings; + } + + public ReportServiceStub getStub() { + return stub; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Retrieves a report defined by a search query. The response might contain fewer rows than + * specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be + * requested. + * + *
Sample code: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ * String parent = "parent-995424086";
+ * for (ReportRow element : reportServiceClient.search(parent).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ * }
+ *
+ * @param parent Required. Id of the account making the call. Must be a standalone account or an
+ * MCA subaccount. Format: accounts/{account}
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final SearchPagedResponse search(String parent) {
+ SearchRequest request = SearchRequest.newBuilder().setParent(parent).build();
+ return search(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Retrieves a report defined by a search query. The response might contain fewer rows than
+ * specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be
+ * requested.
+ *
+ * Sample code: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ * SearchRequest request =
+ * SearchRequest.newBuilder()
+ * .setParent("parent-995424086")
+ * .setQuery("query107944136")
+ * .setPageSize(883849137)
+ * .setPageToken("pageToken873572522")
+ * .build();
+ * for (ReportRow element : reportServiceClient.search(request).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ * }
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final SearchPagedResponse search(SearchRequest request) {
+ return searchPagedCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Retrieves a report defined by a search query. The response might contain fewer rows than
+ * specified by `page_size`. Rely on `next_page_token` to determine if there are more rows to be
+ * requested.
+ *
+ * Sample code: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ * SearchRequest request =
+ * SearchRequest.newBuilder()
+ * .setParent("parent-995424086")
+ * .setQuery("query107944136")
+ * .setPageSize(883849137)
+ * .setPageToken("pageToken873572522")
+ * .build();
+ * ApiFuture future = reportServiceClient.searchPagedCallable().futureCall(request);
+ * // Do something.
+ * for (ReportRow element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ * }
+ */
+ public final UnaryCallableSample code: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ * SearchRequest request =
+ * SearchRequest.newBuilder()
+ * .setParent("parent-995424086")
+ * .setQuery("query107944136")
+ * .setPageSize(883849137)
+ * .setPageToken("pageToken873572522")
+ * .build();
+ * while (true) {
+ * SearchResponse response = reportServiceClient.searchCallable().call(request);
+ * for (ReportRow element : response.getResultsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
+ * }
+ * }
+ */
+ public final UnaryCallableThe default instance has everything set to sensible defaults: + * + *
The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *
For example, to set the + * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings) + * of search: + * + *
{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * ReportServiceSettings.Builder reportServiceSettingsBuilder = ReportServiceSettings.newBuilder();
+ * reportServiceSettingsBuilder
+ * .searchSettings()
+ * .setRetrySettings(
+ * reportServiceSettingsBuilder
+ * .searchSettings()
+ * .getRetrySettings()
+ * .toBuilder()
+ * .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ * .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ * .setMaxAttempts(5)
+ * .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ * .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ * .setRetryDelayMultiplier(1.3)
+ * .setRpcTimeoutMultiplier(1.5)
+ * .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ * .build());
+ * ReportServiceSettings reportServiceSettings = reportServiceSettingsBuilder.build();
+ * }
+ *
+ * Please refer to the [Client Side Retry
+ * Guide](https://github.com/googleapis/google-cloud-java/blob/main/docs/client_retries.md) for
+ * additional support in setting retries.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class ReportServiceSettings extends ClientSettingsNote: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction The interfaces provided are listed below, along with usage samples.
+ *
+ * ======================= ReportServiceClient =======================
+ *
+ * Service Description: Service for retrieving reports and insights about your products, their
+ * performance, and their competitive environment on Google.
+ *
+ * Sample for ReportServiceClient:
+ *
+ * This class is for advanced usage.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class GrpcReportServiceCallableFactory implements GrpcStubCallableFactory {
+
+ @Override
+ public This class is for advanced usage and reflects the underlying API directly.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class GrpcReportServiceStub extends ReportServiceStub {
+ private static final MethodDescriptor This class is for advanced usage.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonReportServiceCallableFactory
+ implements HttpJsonStubCallableFactory This class is for advanced usage and reflects the underlying API directly.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonReportServiceStub extends ReportServiceStub {
+ private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build();
+
+ private static final ApiMethodDescriptor This class is for advanced usage and reflects the underlying API directly.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public abstract class ReportServiceStub implements BackgroundResource {
+
+ public UnaryCallable The default instance has everything set to sensible defaults:
+ *
+ * The builder of this class is recursive, so contained classes are themselves builders. When
+ * build() is called, the tree of builders is called to create the complete settings object.
+ *
+ * For example, to set the
+ * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings)
+ * of search:
+ *
+ * Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ * String parent = "parent-995424086";
+ * for (ReportRow element : reportServiceClient.search(parent).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ * }
+ */
+@Generated("by gapic-generator-java")
+package com.google.shopping.merchant.reports.v1alpha;
+
+import javax.annotation.Generated;
diff --git a/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceCallableFactory.java b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceCallableFactory.java
new file mode 100644
index 000000000000..45368b1c9207
--- /dev/null
+++ b/java-shopping-merchant-reports/google-shopping-merchant-reports/src/main/java/com/google/shopping/merchant/reports/v1alpha/stub/GrpcReportServiceCallableFactory.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.shopping.merchant.reports.v1alpha.stub;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.grpc.GrpcCallSettings;
+import com.google.api.gax.grpc.GrpcCallableFactory;
+import com.google.api.gax.grpc.GrpcStubCallableFactory;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.BidiStreamingCallable;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.ClientStreamingCallable;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallable;
+import com.google.api.gax.rpc.StreamingCallSettings;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import com.google.longrunning.stub.OperationsStub;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * gRPC callable factory implementation for the ReportService service API.
+ *
+ *
+ *
+ *
+ * {@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * ReportServiceStubSettings.Builder reportServiceSettingsBuilder =
+ * ReportServiceStubSettings.newBuilder();
+ * reportServiceSettingsBuilder
+ * .searchSettings()
+ * .setRetrySettings(
+ * reportServiceSettingsBuilder
+ * .searchSettings()
+ * .getRetrySettings()
+ * .toBuilder()
+ * .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ * .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ * .setMaxAttempts(5)
+ * .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ * .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ * .setRetryDelayMultiplier(1.3)
+ * .setRpcTimeoutMultiplier(1.5)
+ * .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ * .build());
+ * ReportServiceStubSettings reportServiceSettings = reportServiceSettingsBuilder.build();
+ * }
+ *
+ * Please refer to the [Client Side Retry
+ * Guide](https://github.com/googleapis/google-cloud-java/blob/main/docs/client_retries.md) for
+ * additional support in setting retries.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class ReportServiceStubSettings extends StubSettings
+ * Fields available for query in `best_sellers_brand_view` table. + * + * [Best sellers](https://support.google.com/merchants/answer/9488679) report + * with top brands. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersBrandView} + */ +public final class BestSellersBrandView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.BestSellersBrandView) + BestSellersBrandViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use BestSellersBrandView.newBuilder() to construct. + private BestSellersBrandView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private BestSellersBrandView() { + reportGranularity_ = 0; + reportCountryCode_ = ""; + brand_ = ""; + relativeDemand_ = 0; + previousRelativeDemand_ = 0; + relativeDemandChange_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new BestSellersBrandView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.class, + com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder.class); + } + + private int bitField0_; + public static final int REPORT_DATE_FIELD_NUMBER = 1; + private com.google.type.Date reportDate_; + + /** + * + * + *
+ * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return Whether the reportDate field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return The reportDate.
+ */
+ @java.lang.Override
+ public com.google.type.Date getReportDate() {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getReportDateOrBuilder() {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ }
+
+ public static final int REPORT_GRANULARITY_FIELD_NUMBER = 2;
+ private int reportGranularity_ = 0;
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return Whether the reportGranularity field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportGranularity() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for reportGranularity.
+ */
+ @java.lang.Override
+ public int getReportGranularityValue() {
+ return reportGranularity_;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The reportGranularity.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ getReportGranularity() {
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result =
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .forNumber(reportGranularity_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The reportCountryCode.
+ */
+ @java.lang.Override
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 4;
+ private long reportCategoryId_ = 0L;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ public static final int BRAND_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return Whether the brand field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return The brand.
+ */
+ @java.lang.Override
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return The bytes for brand.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int RANK_FIELD_NUMBER = 7;
+ private long rank_ = 0L;
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ public static final int PREVIOUS_RANK_FIELD_NUMBER = 8;
+ private long previousRank_ = 0L;
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @return Whether the previousRank field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRank() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @return The previousRank.
+ */
+ @java.lang.Override
+ public long getPreviousRank() {
+ return previousRank_;
+ }
+
+ public static final int RELATIVE_DEMAND_FIELD_NUMBER = 9;
+ private int relativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return Whether the relativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemand() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemand.
+ */
+ @java.lang.Override
+ public int getRelativeDemandValue() {
+ return relativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return The relativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ relativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER = 10;
+ private int previousRelativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return Whether the previousRelativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRelativeDemand() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return The enum numeric value on the wire for previousRelativeDemand.
+ */
+ @java.lang.Override
+ public int getPreviousRelativeDemandValue() {
+ return previousRelativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return The previousRelativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getPreviousRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ previousRelativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int RELATIVE_DEMAND_CHANGE_FIELD_NUMBER = 11;
+ private int relativeDemandChange_ = 0;
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return Whether the relativeDemandChange field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemandChange() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemandChange.
+ */
+ @java.lang.Override
+ public int getRelativeDemandChangeValue() {
+ return relativeDemandChange_;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return The relativeDemandChange.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ getRelativeDemandChange() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.UNRECOGNIZED
+ : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getReportDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeEnum(2, reportGranularity_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeInt64(4, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 6, brand_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeInt64(7, rank_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ output.writeInt64(8, previousRank_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeEnum(9, relativeDemand_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ output.writeEnum(10, previousRelativeDemand_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ output.writeEnum(11, relativeDemandChange_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getReportDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, reportGranularity_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, brand_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, rank_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, previousRank_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(9, relativeDemand_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(10, previousRelativeDemand_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(11, relativeDemandChange_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView other =
+ (com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView) obj;
+
+ if (hasReportDate() != other.hasReportDate()) return false;
+ if (hasReportDate()) {
+ if (!getReportDate().equals(other.getReportDate())) return false;
+ }
+ if (hasReportGranularity() != other.hasReportGranularity()) return false;
+ if (hasReportGranularity()) {
+ if (reportGranularity_ != other.reportGranularity_) return false;
+ }
+ if (hasReportCountryCode() != other.hasReportCountryCode()) return false;
+ if (hasReportCountryCode()) {
+ if (!getReportCountryCode().equals(other.getReportCountryCode())) return false;
+ }
+ if (hasReportCategoryId() != other.hasReportCategoryId()) return false;
+ if (hasReportCategoryId()) {
+ if (getReportCategoryId() != other.getReportCategoryId()) return false;
+ }
+ if (hasBrand() != other.hasBrand()) return false;
+ if (hasBrand()) {
+ if (!getBrand().equals(other.getBrand())) return false;
+ }
+ if (hasRank() != other.hasRank()) return false;
+ if (hasRank()) {
+ if (getRank() != other.getRank()) return false;
+ }
+ if (hasPreviousRank() != other.hasPreviousRank()) return false;
+ if (hasPreviousRank()) {
+ if (getPreviousRank() != other.getPreviousRank()) return false;
+ }
+ if (hasRelativeDemand() != other.hasRelativeDemand()) return false;
+ if (hasRelativeDemand()) {
+ if (relativeDemand_ != other.relativeDemand_) return false;
+ }
+ if (hasPreviousRelativeDemand() != other.hasPreviousRelativeDemand()) return false;
+ if (hasPreviousRelativeDemand()) {
+ if (previousRelativeDemand_ != other.previousRelativeDemand_) return false;
+ }
+ if (hasRelativeDemandChange() != other.hasRelativeDemandChange()) return false;
+ if (hasRelativeDemandChange()) {
+ if (relativeDemandChange_ != other.relativeDemandChange_) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasReportDate()) {
+ hash = (37 * hash) + REPORT_DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportDate().hashCode();
+ }
+ if (hasReportGranularity()) {
+ hash = (37 * hash) + REPORT_GRANULARITY_FIELD_NUMBER;
+ hash = (53 * hash) + reportGranularity_;
+ }
+ if (hasReportCountryCode()) {
+ hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportCountryCode().hashCode();
+ }
+ if (hasReportCategoryId()) {
+ hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId());
+ }
+ if (hasBrand()) {
+ hash = (37 * hash) + BRAND_FIELD_NUMBER;
+ hash = (53 * hash) + getBrand().hashCode();
+ }
+ if (hasRank()) {
+ hash = (37 * hash) + RANK_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank());
+ }
+ if (hasPreviousRank()) {
+ hash = (37 * hash) + PREVIOUS_RANK_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPreviousRank());
+ }
+ if (hasRelativeDemand()) {
+ hash = (37 * hash) + RELATIVE_DEMAND_FIELD_NUMBER;
+ hash = (53 * hash) + relativeDemand_;
+ }
+ if (hasPreviousRelativeDemand()) {
+ hash = (37 * hash) + PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER;
+ hash = (53 * hash) + previousRelativeDemand_;
+ }
+ if (hasRelativeDemandChange()) {
+ hash = (37 * hash) + RELATIVE_DEMAND_CHANGE_FIELD_NUMBER;
+ hash = (53 * hash) + relativeDemandChange_;
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + * + * [Best sellers](https://support.google.com/merchants/answer/9488679) report + * with top brands. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersBrandView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return Whether the reportDate field is set.
+ */
+ public boolean hasReportDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return The reportDate.
+ */
+ public com.google.type.Date getReportDate() {
+ if (reportDateBuilder_ == null) {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ } else {
+ return reportDateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder setReportDate(com.google.type.Date value) {
+ if (reportDateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportDate_ = value;
+ } else {
+ reportDateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder setReportDate(com.google.type.Date.Builder builderForValue) {
+ if (reportDateBuilder_ == null) {
+ reportDate_ = builderForValue.build();
+ } else {
+ reportDateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder mergeReportDate(com.google.type.Date value) {
+ if (reportDateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && reportDate_ != null
+ && reportDate_ != com.google.type.Date.getDefaultInstance()) {
+ getReportDateBuilder().mergeFrom(value);
+ } else {
+ reportDate_ = value;
+ }
+ } else {
+ reportDateBuilder_.mergeFrom(value);
+ }
+ if (reportDate_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder clearReportDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ reportDate_ = null;
+ if (reportDateBuilder_ != null) {
+ reportDateBuilder_.dispose();
+ reportDateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public com.google.type.Date.Builder getReportDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getReportDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public com.google.type.DateOrBuilder getReportDateOrBuilder() {
+ if (reportDateBuilder_ != null) {
+ return reportDateBuilder_.getMessageOrBuilder();
+ } else {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getReportDateFieldBuilder() {
+ if (reportDateBuilder_ == null) {
+ reportDateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getReportDate(), getParentForChildren(), isClean());
+ reportDate_ = null;
+ }
+ return reportDateBuilder_;
+ }
+
+ private int reportGranularity_ = 0;
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return Whether the reportGranularity field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportGranularity() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for reportGranularity.
+ */
+ @java.lang.Override
+ public int getReportGranularityValue() {
+ return reportGranularity_;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @param value The enum numeric value on the wire for reportGranularity to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportGranularityValue(int value) {
+ reportGranularity_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The reportGranularity.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ getReportGranularity() {
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result =
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .forNumber(reportGranularity_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @param value The reportGranularity to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportGranularity(
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ reportGranularity_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportGranularity() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ reportGranularity_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The reportCountryCode.
+ */
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @param value The reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCountryCode() {
+ reportCountryCode_ = getDefaultInstance().getReportCountryCode();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @param value The bytes for reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private long reportCategoryId_;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @param value The reportCategoryId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCategoryId(long value) {
+
+ reportCategoryId_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCategoryId() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ reportCategoryId_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return Whether the brand field is set.
+ */
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return The brand.
+ */
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return The bytes for brand.
+ */
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @param value The brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrand(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ brand_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBrand() {
+ brand_ = getDefaultInstance().getBrand();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @param value The bytes for brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ brand_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private long rank_;
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @param value The rank to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRank(long value) {
+
+ rank_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRank() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ rank_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long previousRank_;
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @return Whether the previousRank field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRank() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @return The previousRank.
+ */
+ @java.lang.Override
+ public long getPreviousRank() {
+ return previousRank_;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @param value The previousRank to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPreviousRank(long value) {
+
+ previousRank_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPreviousRank() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ previousRank_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private int relativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return Whether the relativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemand() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemand.
+ */
+ @java.lang.Override
+ public int getRelativeDemandValue() {
+ return relativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @param value The enum numeric value on the wire for relativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemandValue(int value) {
+ relativeDemand_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return The relativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ relativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @param value The relativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemand(
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000080;
+ relativeDemand_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRelativeDemand() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ relativeDemand_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int previousRelativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return Whether the previousRelativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRelativeDemand() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return The enum numeric value on the wire for previousRelativeDemand.
+ */
+ @java.lang.Override
+ public int getPreviousRelativeDemandValue() {
+ return previousRelativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @param value The enum numeric value on the wire for previousRelativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPreviousRelativeDemandValue(int value) {
+ previousRelativeDemand_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return The previousRelativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getPreviousRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ previousRelativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @param value The previousRelativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPreviousRelativeDemand(
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000100;
+ previousRelativeDemand_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPreviousRelativeDemand() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ previousRelativeDemand_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int relativeDemandChange_ = 0;
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return Whether the relativeDemandChange field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemandChange() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemandChange.
+ */
+ @java.lang.Override
+ public int getRelativeDemandChangeValue() {
+ return relativeDemandChange_;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @param value The enum numeric value on the wire for relativeDemandChange to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemandChangeValue(int value) {
+ relativeDemandChange_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return The relativeDemandChange.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ getRelativeDemandChange() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @param value The relativeDemandChange to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemandChange(
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000200;
+ relativeDemandChange_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRelativeDemandChange() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ relativeDemandChange_ = 0;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.BestSellersBrandView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.BestSellersBrandView)
+ private static final com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return Whether the reportDate field is set.
+ */
+ boolean hasReportDate();
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return The reportDate.
+ */
+ com.google.type.Date getReportDate();
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ com.google.type.DateOrBuilder getReportDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return Whether the reportGranularity field is set.
+ */
+ boolean hasReportGranularity();
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for reportGranularity.
+ */
+ int getReportGranularityValue();
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The reportGranularity.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ getReportGranularity();
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ boolean hasReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The reportCountryCode.
+ */
+ java.lang.String getReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ com.google.protobuf.ByteString getReportCountryCodeBytes();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ boolean hasReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return The reportCategoryId.
+ */
+ long getReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return Whether the brand field is set.
+ */
+ boolean hasBrand();
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return The brand.
+ */
+ java.lang.String getBrand();
+
+ /**
+ *
+ *
+ * + * Name of the brand. + *+ * + *
optional string brand = 6;
+ *
+ * @return The bytes for brand.
+ */
+ com.google.protobuf.ByteString getBrandBytes();
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ boolean hasRank();
+
+ /**
+ *
+ *
+ * + * Popularity of the brand on Ads and organic surfaces, in the selected + * category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ long getRank();
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @return Whether the previousRank field is set.
+ */
+ boolean hasPreviousRank();
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 8;
+ *
+ * @return The previousRank.
+ */
+ long getPreviousRank();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return Whether the relativeDemand field is set.
+ */
+ boolean hasRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemand.
+ */
+ int getRelativeDemandValue();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 9;
+ *
+ *
+ * @return The relativeDemand.
+ */
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return Whether the previousRelativeDemand field is set.
+ */
+ boolean hasPreviousRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return The enum numeric value on the wire for previousRelativeDemand.
+ */
+ int getPreviousRelativeDemandValue();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the brand with the highest popularity rank + * in the same category and country in the previous week or month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+ *
+ *
+ * @return The previousRelativeDemand.
+ */
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getPreviousRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return Whether the relativeDemandChange field is set.
+ */
+ boolean hasRelativeDemandChange();
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemandChange.
+ */
+ int getRelativeDemandChangeValue();
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 11;
+ *
+ *
+ * @return The relativeDemandChange.
+ */
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum
+ getRelativeDemandChange();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterView.java
new file mode 100644
index 000000000000..d9d2bd30c9ef
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/BestSellersProductClusterView.java
@@ -0,0 +1,5200 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + * + * [Best sellers](https://support.google.com/merchants/answer/9488679) report + * with top product clusters. A product cluster is a grouping for different + * offers and variants that represent the same product, for example, Google + * Pixel 7. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView} + */ +public final class BestSellersProductClusterView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) + BestSellersProductClusterViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use BestSellersProductClusterView.newBuilder() to construct. + private BestSellersProductClusterView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private BestSellersProductClusterView() { + reportGranularity_ = 0; + reportCountryCode_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + variantGtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); + inventoryStatus_ = 0; + brandInventoryStatus_ = 0; + relativeDemand_ = 0; + previousRelativeDemand_ = 0; + relativeDemandChange_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new BestSellersProductClusterView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.class, + com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder + .class); + } + + /** + * + * + *
+ * Status of the product cluster or brand in your inventory. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus} + */ + public enum InventoryStatus implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
INVENTORY_STATUS_UNSPECIFIED = 0;
+ */
+ INVENTORY_STATUS_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * You have a product for this product cluster or brand in stock. + *+ * + *
IN_STOCK = 1;
+ */
+ IN_STOCK(1),
+ /**
+ *
+ *
+ * + * You have a product for this product cluster or brand in inventory but it + * is currently out of stock. + *+ * + *
OUT_OF_STOCK = 2;
+ */
+ OUT_OF_STOCK(2),
+ /**
+ *
+ *
+ * + * You do not have a product for this product cluster or brand in inventory. + *+ * + *
NOT_IN_INVENTORY = 3;
+ */
+ NOT_IN_INVENTORY(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
INVENTORY_STATUS_UNSPECIFIED = 0;
+ */
+ public static final int INVENTORY_STATUS_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * You have a product for this product cluster or brand in stock. + *+ * + *
IN_STOCK = 1;
+ */
+ public static final int IN_STOCK_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * You have a product for this product cluster or brand in inventory but it + * is currently out of stock. + *+ * + *
OUT_OF_STOCK = 2;
+ */
+ public static final int OUT_OF_STOCK_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * You do not have a product for this product cluster or brand in inventory. + *+ * + *
NOT_IN_INVENTORY = 3;
+ */
+ public static final int NOT_IN_INVENTORY_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static InventoryStatus valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static InventoryStatus forNumber(int value) {
+ switch (value) {
+ case 0:
+ return INVENTORY_STATUS_UNSPECIFIED;
+ case 1:
+ return IN_STOCK;
+ case 2:
+ return OUT_OF_STOCK;
+ case 3:
+ return NOT_IN_INVENTORY;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return Whether the reportDate field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return The reportDate.
+ */
+ @java.lang.Override
+ public com.google.type.Date getReportDate() {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getReportDateOrBuilder() {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ }
+
+ public static final int REPORT_GRANULARITY_FIELD_NUMBER = 2;
+ private int reportGranularity_ = 0;
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return Whether the reportGranularity field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportGranularity() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for reportGranularity.
+ */
+ @java.lang.Override
+ public int getReportGranularityValue() {
+ return reportGranularity_;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The reportGranularity.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ getReportGranularity() {
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result =
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .forNumber(reportGranularity_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The reportCountryCode.
+ */
+ @java.lang.Override
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 4;
+ private long reportCategoryId_ = 0L;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int BRAND_FIELD_NUMBER = 7;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return Whether the brand field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return The brand.
+ */
+ @java.lang.Override
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return The bytes for brand.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L1_FIELD_NUMBER = 8;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The categoryL1.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The bytes for categoryL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L2_FIELD_NUMBER = 9;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The categoryL2.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The bytes for categoryL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L3_FIELD_NUMBER = 10;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The categoryL3.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The bytes for categoryL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L4_FIELD_NUMBER = 11;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The categoryL4.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The bytes for categoryL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L5_FIELD_NUMBER = 12;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The categoryL5.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The bytes for categoryL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int VARIANT_GTINS_FIELD_NUMBER = 13;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList variantGtins_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @return A list containing the variantGtins.
+ */
+ public com.google.protobuf.ProtocolStringList getVariantGtinsList() {
+ return variantGtins_;
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @return The count of variantGtins.
+ */
+ public int getVariantGtinsCount() {
+ return variantGtins_.size();
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param index The index of the element to return.
+ * @return The variantGtins at the given index.
+ */
+ public java.lang.String getVariantGtins(int index) {
+ return variantGtins_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the variantGtins at the given index.
+ */
+ public com.google.protobuf.ByteString getVariantGtinsBytes(int index) {
+ return variantGtins_.getByteString(index);
+ }
+
+ public static final int INVENTORY_STATUS_FIELD_NUMBER = 14;
+ private int inventoryStatus_ = 0;
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return Whether the inventoryStatus field is set.
+ */
+ @java.lang.Override
+ public boolean hasInventoryStatus() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return The enum numeric value on the wire for inventoryStatus.
+ */
+ @java.lang.Override
+ public int getInventoryStatusValue() {
+ return inventoryStatus_;
+ }
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return The inventoryStatus.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ getInventoryStatus() {
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ result =
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus.forNumber(inventoryStatus_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int BRAND_INVENTORY_STATUS_FIELD_NUMBER = 15;
+ private int brandInventoryStatus_ = 0;
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return Whether the brandInventoryStatus field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrandInventoryStatus() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return The enum numeric value on the wire for brandInventoryStatus.
+ */
+ @java.lang.Override
+ public int getBrandInventoryStatusValue() {
+ return brandInventoryStatus_;
+ }
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return The brandInventoryStatus.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ getBrandInventoryStatus() {
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ result =
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus.forNumber(brandInventoryStatus_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int RANK_FIELD_NUMBER = 16;
+ private long rank_ = 0L;
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ public static final int PREVIOUS_RANK_FIELD_NUMBER = 17;
+ private long previousRank_ = 0L;
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @return Whether the previousRank field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRank() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @return The previousRank.
+ */
+ @java.lang.Override
+ public long getPreviousRank() {
+ return previousRank_;
+ }
+
+ public static final int RELATIVE_DEMAND_FIELD_NUMBER = 18;
+ private int relativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return Whether the relativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemand() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemand.
+ */
+ @java.lang.Override
+ public int getRelativeDemandValue() {
+ return relativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return The relativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ relativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER = 19;
+ private int previousRelativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return Whether the previousRelativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRelativeDemand() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return The enum numeric value on the wire for previousRelativeDemand.
+ */
+ @java.lang.Override
+ public int getPreviousRelativeDemandValue() {
+ return previousRelativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return The previousRelativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getPreviousRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ previousRelativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int RELATIVE_DEMAND_CHANGE_FIELD_NUMBER = 20;
+ private int relativeDemandChange_ = 0;
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return Whether the relativeDemandChange field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemandChange() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemandChange.
+ */
+ @java.lang.Override
+ public int getRelativeDemandChangeValue() {
+ return relativeDemandChange_;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return The relativeDemandChange.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ getRelativeDemandChange() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.UNRECOGNIZED
+ : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getReportDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeEnum(2, reportGranularity_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeInt64(4, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 6, title_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 7, brand_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 11, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 12, categoryL5_);
+ }
+ for (int i = 0; i < variantGtins_.size(); i++) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 13, variantGtins_.getRaw(i));
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ output.writeEnum(14, inventoryStatus_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ output.writeEnum(15, brandInventoryStatus_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ output.writeInt64(16, rank_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ output.writeInt64(17, previousRank_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ output.writeEnum(18, relativeDemand_);
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ output.writeEnum(19, previousRelativeDemand_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ output.writeEnum(20, relativeDemandChange_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getReportDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, reportGranularity_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, title_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, brand_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, categoryL5_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < variantGtins_.size(); i++) {
+ dataSize += computeStringSizeNoTag(variantGtins_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getVariantGtinsList().size();
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(14, inventoryStatus_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(15, brandInventoryStatus_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(16, rank_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(17, previousRank_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(18, relativeDemand_);
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(19, previousRelativeDemand_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(20, relativeDemandChange_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView other =
+ (com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView) obj;
+
+ if (hasReportDate() != other.hasReportDate()) return false;
+ if (hasReportDate()) {
+ if (!getReportDate().equals(other.getReportDate())) return false;
+ }
+ if (hasReportGranularity() != other.hasReportGranularity()) return false;
+ if (hasReportGranularity()) {
+ if (reportGranularity_ != other.reportGranularity_) return false;
+ }
+ if (hasReportCountryCode() != other.hasReportCountryCode()) return false;
+ if (hasReportCountryCode()) {
+ if (!getReportCountryCode().equals(other.getReportCountryCode())) return false;
+ }
+ if (hasReportCategoryId() != other.hasReportCategoryId()) return false;
+ if (hasReportCategoryId()) {
+ if (getReportCategoryId() != other.getReportCategoryId()) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasBrand() != other.hasBrand()) return false;
+ if (hasBrand()) {
+ if (!getBrand().equals(other.getBrand())) return false;
+ }
+ if (hasCategoryL1() != other.hasCategoryL1()) return false;
+ if (hasCategoryL1()) {
+ if (!getCategoryL1().equals(other.getCategoryL1())) return false;
+ }
+ if (hasCategoryL2() != other.hasCategoryL2()) return false;
+ if (hasCategoryL2()) {
+ if (!getCategoryL2().equals(other.getCategoryL2())) return false;
+ }
+ if (hasCategoryL3() != other.hasCategoryL3()) return false;
+ if (hasCategoryL3()) {
+ if (!getCategoryL3().equals(other.getCategoryL3())) return false;
+ }
+ if (hasCategoryL4() != other.hasCategoryL4()) return false;
+ if (hasCategoryL4()) {
+ if (!getCategoryL4().equals(other.getCategoryL4())) return false;
+ }
+ if (hasCategoryL5() != other.hasCategoryL5()) return false;
+ if (hasCategoryL5()) {
+ if (!getCategoryL5().equals(other.getCategoryL5())) return false;
+ }
+ if (!getVariantGtinsList().equals(other.getVariantGtinsList())) return false;
+ if (hasInventoryStatus() != other.hasInventoryStatus()) return false;
+ if (hasInventoryStatus()) {
+ if (inventoryStatus_ != other.inventoryStatus_) return false;
+ }
+ if (hasBrandInventoryStatus() != other.hasBrandInventoryStatus()) return false;
+ if (hasBrandInventoryStatus()) {
+ if (brandInventoryStatus_ != other.brandInventoryStatus_) return false;
+ }
+ if (hasRank() != other.hasRank()) return false;
+ if (hasRank()) {
+ if (getRank() != other.getRank()) return false;
+ }
+ if (hasPreviousRank() != other.hasPreviousRank()) return false;
+ if (hasPreviousRank()) {
+ if (getPreviousRank() != other.getPreviousRank()) return false;
+ }
+ if (hasRelativeDemand() != other.hasRelativeDemand()) return false;
+ if (hasRelativeDemand()) {
+ if (relativeDemand_ != other.relativeDemand_) return false;
+ }
+ if (hasPreviousRelativeDemand() != other.hasPreviousRelativeDemand()) return false;
+ if (hasPreviousRelativeDemand()) {
+ if (previousRelativeDemand_ != other.previousRelativeDemand_) return false;
+ }
+ if (hasRelativeDemandChange() != other.hasRelativeDemandChange()) return false;
+ if (hasRelativeDemandChange()) {
+ if (relativeDemandChange_ != other.relativeDemandChange_) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasReportDate()) {
+ hash = (37 * hash) + REPORT_DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportDate().hashCode();
+ }
+ if (hasReportGranularity()) {
+ hash = (37 * hash) + REPORT_GRANULARITY_FIELD_NUMBER;
+ hash = (53 * hash) + reportGranularity_;
+ }
+ if (hasReportCountryCode()) {
+ hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportCountryCode().hashCode();
+ }
+ if (hasReportCategoryId()) {
+ hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId());
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasBrand()) {
+ hash = (37 * hash) + BRAND_FIELD_NUMBER;
+ hash = (53 * hash) + getBrand().hashCode();
+ }
+ if (hasCategoryL1()) {
+ hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL1().hashCode();
+ }
+ if (hasCategoryL2()) {
+ hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL2().hashCode();
+ }
+ if (hasCategoryL3()) {
+ hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL3().hashCode();
+ }
+ if (hasCategoryL4()) {
+ hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL4().hashCode();
+ }
+ if (hasCategoryL5()) {
+ hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL5().hashCode();
+ }
+ if (getVariantGtinsCount() > 0) {
+ hash = (37 * hash) + VARIANT_GTINS_FIELD_NUMBER;
+ hash = (53 * hash) + getVariantGtinsList().hashCode();
+ }
+ if (hasInventoryStatus()) {
+ hash = (37 * hash) + INVENTORY_STATUS_FIELD_NUMBER;
+ hash = (53 * hash) + inventoryStatus_;
+ }
+ if (hasBrandInventoryStatus()) {
+ hash = (37 * hash) + BRAND_INVENTORY_STATUS_FIELD_NUMBER;
+ hash = (53 * hash) + brandInventoryStatus_;
+ }
+ if (hasRank()) {
+ hash = (37 * hash) + RANK_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank());
+ }
+ if (hasPreviousRank()) {
+ hash = (37 * hash) + PREVIOUS_RANK_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPreviousRank());
+ }
+ if (hasRelativeDemand()) {
+ hash = (37 * hash) + RELATIVE_DEMAND_FIELD_NUMBER;
+ hash = (53 * hash) + relativeDemand_;
+ }
+ if (hasPreviousRelativeDemand()) {
+ hash = (37 * hash) + PREVIOUS_RELATIVE_DEMAND_FIELD_NUMBER;
+ hash = (53 * hash) + previousRelativeDemand_;
+ }
+ if (hasRelativeDemandChange()) {
+ hash = (37 * hash) + RELATIVE_DEMAND_CHANGE_FIELD_NUMBER;
+ hash = (53 * hash) + relativeDemandChange_;
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + * + * [Best sellers](https://support.google.com/merchants/answer/9488679) report + * with top product clusters. A product cluster is a grouping for different + * offers and variants that represent the same product, for example, Google + * Pixel 7. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return Whether the reportDate field is set.
+ */
+ public boolean hasReportDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return The reportDate.
+ */
+ public com.google.type.Date getReportDate() {
+ if (reportDateBuilder_ == null) {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ } else {
+ return reportDateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder setReportDate(com.google.type.Date value) {
+ if (reportDateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportDate_ = value;
+ } else {
+ reportDateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder setReportDate(com.google.type.Date.Builder builderForValue) {
+ if (reportDateBuilder_ == null) {
+ reportDate_ = builderForValue.build();
+ } else {
+ reportDateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder mergeReportDate(com.google.type.Date value) {
+ if (reportDateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && reportDate_ != null
+ && reportDate_ != com.google.type.Date.getDefaultInstance()) {
+ getReportDateBuilder().mergeFrom(value);
+ } else {
+ reportDate_ = value;
+ }
+ } else {
+ reportDateBuilder_.mergeFrom(value);
+ }
+ if (reportDate_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public Builder clearReportDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ reportDate_ = null;
+ if (reportDateBuilder_ != null) {
+ reportDateBuilder_.dispose();
+ reportDateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public com.google.type.Date.Builder getReportDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getReportDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ public com.google.type.DateOrBuilder getReportDateOrBuilder() {
+ if (reportDateBuilder_ != null) {
+ return reportDateBuilder_.getMessageOrBuilder();
+ } else {
+ return reportDate_ == null ? com.google.type.Date.getDefaultInstance() : reportDate_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getReportDateFieldBuilder() {
+ if (reportDateBuilder_ == null) {
+ reportDateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getReportDate(), getParentForChildren(), isClean());
+ reportDate_ = null;
+ }
+ return reportDateBuilder_;
+ }
+
+ private int reportGranularity_ = 0;
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return Whether the reportGranularity field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportGranularity() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for reportGranularity.
+ */
+ @java.lang.Override
+ public int getReportGranularityValue() {
+ return reportGranularity_;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @param value The enum numeric value on the wire for reportGranularity to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportGranularityValue(int value) {
+ reportGranularity_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The reportGranularity.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ getReportGranularity() {
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum result =
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .forNumber(reportGranularity_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @param value The reportGranularity to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportGranularity(
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ reportGranularity_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportGranularity() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ reportGranularity_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The reportCountryCode.
+ */
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @param value The reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCountryCode() {
+ reportCountryCode_ = getDefaultInstance().getReportCountryCode();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @param value The bytes for reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private long reportCategoryId_;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @param value The reportCategoryId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCategoryId(long value) {
+
+ reportCategoryId_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCategoryId() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ reportCategoryId_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return Whether the brand field is set.
+ */
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return The brand.
+ */
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return The bytes for brand.
+ */
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @param value The brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrand(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ brand_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBrand() {
+ brand_ = getDefaultInstance().getBrand();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @param value The bytes for brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ brand_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The categoryL1.
+ */
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The bytes for categoryL1.
+ */
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @param value The categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL1_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL1() {
+ categoryL1_ = getDefaultInstance().getCategoryL1();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @param value The bytes for categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL1_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The categoryL2.
+ */
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The bytes for categoryL2.
+ */
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @param value The categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL2_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL2() {
+ categoryL2_ = getDefaultInstance().getCategoryL2();
+ bitField0_ = (bitField0_ & ~0x00000080);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @param value The bytes for categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL2_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The categoryL3.
+ */
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The bytes for categoryL3.
+ */
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @param value The categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL3_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL3() {
+ categoryL3_ = getDefaultInstance().getCategoryL3();
+ bitField0_ = (bitField0_ & ~0x00000100);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @param value The bytes for categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL3_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The categoryL4.
+ */
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The bytes for categoryL4.
+ */
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @param value The categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL4_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL4() {
+ categoryL4_ = getDefaultInstance().getCategoryL4();
+ bitField0_ = (bitField0_ & ~0x00000200);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @param value The bytes for categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL4_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The categoryL5.
+ */
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The bytes for categoryL5.
+ */
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @param value The categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL5_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL5() {
+ categoryL5_ = getDefaultInstance().getCategoryL5();
+ bitField0_ = (bitField0_ & ~0x00000400);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @param value The bytes for categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL5_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList variantGtins_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensureVariantGtinsIsMutable() {
+ if (!variantGtins_.isModifiable()) {
+ variantGtins_ = new com.google.protobuf.LazyStringArrayList(variantGtins_);
+ }
+ bitField0_ |= 0x00000800;
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @return A list containing the variantGtins.
+ */
+ public com.google.protobuf.ProtocolStringList getVariantGtinsList() {
+ variantGtins_.makeImmutable();
+ return variantGtins_;
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @return The count of variantGtins.
+ */
+ public int getVariantGtinsCount() {
+ return variantGtins_.size();
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param index The index of the element to return.
+ * @return The variantGtins at the given index.
+ */
+ public java.lang.String getVariantGtins(int index) {
+ return variantGtins_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the variantGtins at the given index.
+ */
+ public com.google.protobuf.ByteString getVariantGtinsBytes(int index) {
+ return variantGtins_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param index The index to set the value at.
+ * @param value The variantGtins to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVariantGtins(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureVariantGtinsIsMutable();
+ variantGtins_.set(index, value);
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param value The variantGtins to add.
+ * @return This builder for chaining.
+ */
+ public Builder addVariantGtins(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureVariantGtinsIsMutable();
+ variantGtins_.add(value);
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param values The variantGtins to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllVariantGtins(java.lang.Iterable+ * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearVariantGtins() {
+ variantGtins_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000800);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param value The bytes of the variantGtins to add.
+ * @return This builder for chaining.
+ */
+ public Builder addVariantGtinsBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureVariantGtinsIsMutable();
+ variantGtins_.add(value);
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ private int inventoryStatus_ = 0;
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return Whether the inventoryStatus field is set.
+ */
+ @java.lang.Override
+ public boolean hasInventoryStatus() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return The enum numeric value on the wire for inventoryStatus.
+ */
+ @java.lang.Override
+ public int getInventoryStatusValue() {
+ return inventoryStatus_;
+ }
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @param value The enum numeric value on the wire for inventoryStatus to set.
+ * @return This builder for chaining.
+ */
+ public Builder setInventoryStatusValue(int value) {
+ inventoryStatus_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return The inventoryStatus.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus
+ getInventoryStatus() {
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ result =
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus.forNumber(inventoryStatus_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @param value The inventoryStatus to set.
+ * @return This builder for chaining.
+ */
+ public Builder setInventoryStatus(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00001000;
+ inventoryStatus_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearInventoryStatus() {
+ bitField0_ = (bitField0_ & ~0x00001000);
+ inventoryStatus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int brandInventoryStatus_ = 0;
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return Whether the brandInventoryStatus field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrandInventoryStatus() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return The enum numeric value on the wire for brandInventoryStatus.
+ */
+ @java.lang.Override
+ public int getBrandInventoryStatusValue() {
+ return brandInventoryStatus_;
+ }
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @param value The enum numeric value on the wire for brandInventoryStatus to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandInventoryStatusValue(int value) {
+ brandInventoryStatus_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return The brandInventoryStatus.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus
+ getBrandInventoryStatus() {
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ result =
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus.forNumber(brandInventoryStatus_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .InventoryStatus.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @param value The brandInventoryStatus to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandInventoryStatus(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00002000;
+ brandInventoryStatus_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBrandInventoryStatus() {
+ bitField0_ = (bitField0_ & ~0x00002000);
+ brandInventoryStatus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private long rank_;
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @param value The rank to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRank(long value) {
+
+ rank_ = value;
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRank() {
+ bitField0_ = (bitField0_ & ~0x00004000);
+ rank_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long previousRank_;
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @return Whether the previousRank field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRank() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @return The previousRank.
+ */
+ @java.lang.Override
+ public long getPreviousRank() {
+ return previousRank_;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @param value The previousRank to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPreviousRank(long value) {
+
+ previousRank_ = value;
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPreviousRank() {
+ bitField0_ = (bitField0_ & ~0x00008000);
+ previousRank_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private int relativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return Whether the relativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemand() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemand.
+ */
+ @java.lang.Override
+ public int getRelativeDemandValue() {
+ return relativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @param value The enum numeric value on the wire for relativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemandValue(int value) {
+ relativeDemand_ = value;
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return The relativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ relativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @param value The relativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemand(
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00010000;
+ relativeDemand_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRelativeDemand() {
+ bitField0_ = (bitField0_ & ~0x00010000);
+ relativeDemand_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int previousRelativeDemand_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return Whether the previousRelativeDemand field is set.
+ */
+ @java.lang.Override
+ public boolean hasPreviousRelativeDemand() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return The enum numeric value on the wire for previousRelativeDemand.
+ */
+ @java.lang.Override
+ public int getPreviousRelativeDemandValue() {
+ return previousRelativeDemand_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @param value The enum numeric value on the wire for previousRelativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPreviousRelativeDemandValue(int value) {
+ previousRelativeDemand_ = value;
+ bitField0_ |= 0x00020000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return The previousRelativeDemand.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getPreviousRelativeDemand() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum.forNumber(
+ previousRelativeDemand_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @param value The previousRelativeDemand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPreviousRelativeDemand(
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00020000;
+ previousRelativeDemand_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPreviousRelativeDemand() {
+ bitField0_ = (bitField0_ & ~0x00020000);
+ previousRelativeDemand_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int relativeDemandChange_ = 0;
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return Whether the relativeDemandChange field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeDemandChange() {
+ return ((bitField0_ & 0x00040000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemandChange.
+ */
+ @java.lang.Override
+ public int getRelativeDemandChangeValue() {
+ return relativeDemandChange_;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @param value The enum numeric value on the wire for relativeDemandChange to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemandChangeValue(int value) {
+ relativeDemandChange_ = value;
+ bitField0_ |= 0x00040000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return The relativeDemandChange.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ getRelativeDemandChange() {
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ result =
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.forNumber(relativeDemandChange_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @param value The relativeDemandChange to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeDemandChange(
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType
+ .RelativeDemandChangeTypeEnum
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00040000;
+ relativeDemandChange_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRelativeDemandChange() {
+ bitField0_ = (bitField0_ & ~0x00040000);
+ relativeDemandChange_ = 0;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView)
+ private static final com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return Whether the reportDate field is set.
+ */
+ boolean hasReportDate();
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ *
+ * @return The reportDate.
+ */
+ com.google.type.Date getReportDate();
+
+ /**
+ *
+ *
+ * + * Report date. The value of this field can only be one of the following: + * + * * The first day of the week (Monday) for weekly reports, + * * The first day of the month for monthly reports. + * + * Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is + * not specified in the query, the latest available weekly or monthly report + * is returned. + *+ * + *
.google.type.Date report_date = 1;
+ */
+ com.google.type.DateOrBuilder getReportDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return Whether the reportGranularity field is set.
+ */
+ boolean hasReportGranularity();
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for reportGranularity.
+ */
+ int getReportGranularityValue();
+
+ /**
+ *
+ *
+ * + * Granularity of the report. The ranking can be done over a week or a month + * timeframe. + * + * Required in the `SELECT` clause. Condition on `report_granularity` is + * required in the `WHERE` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum report_granularity = 2;
+ *
+ *
+ * @return The reportGranularity.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum
+ getReportGranularity();
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ boolean hasReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The reportCountryCode.
+ */
+ java.lang.String getReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where the ranking is calculated. Represented in the ISO 3166 + * format. + * + * Required in the `SELECT` clause. Condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 3;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ com.google.protobuf.ByteString getReportCountryCodeBytes();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ boolean hasReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the ranking for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. If a `WHERE` condition on + * `report_category_id` is not specified in the query, rankings for all + * top-level categories are returned. + *+ * + *
optional int64 report_category_id = 4;
+ *
+ * @return The reportCategoryId.
+ */
+ long getReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product cluster. + *+ * + *
optional string title = 6;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return Whether the brand field is set.
+ */
+ boolean hasBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return The brand.
+ */
+ java.lang.String getBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product cluster. + *+ * + *
optional string brand = 7;
+ *
+ * @return The bytes for brand.
+ */
+ com.google.protobuf.ByteString getBrandBytes();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ boolean hasCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The categoryL1.
+ */
+ java.lang.String getCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The bytes for categoryL1.
+ */
+ com.google.protobuf.ByteString getCategoryL1Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ boolean hasCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The categoryL2.
+ */
+ java.lang.String getCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The bytes for categoryL2.
+ */
+ com.google.protobuf.ByteString getCategoryL2Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ boolean hasCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The categoryL3.
+ */
+ java.lang.String getCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The bytes for categoryL3.
+ */
+ com.google.protobuf.ByteString getCategoryL3Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ boolean hasCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The categoryL4.
+ */
+ java.lang.String getCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The bytes for categoryL4.
+ */
+ com.google.protobuf.ByteString getCategoryL4Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ boolean hasCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The categoryL5.
+ */
+ java.lang.String getCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) of the product cluster, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The bytes for categoryL5.
+ */
+ com.google.protobuf.ByteString getCategoryL5Bytes();
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @return A list containing the variantGtins.
+ */
+ java.util.List+ * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @return The count of variantGtins.
+ */
+ int getVariantGtinsCount();
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param index The index of the element to return.
+ * @return The variantGtins at the given index.
+ */
+ java.lang.String getVariantGtins(int index);
+
+ /**
+ *
+ *
+ * + * GTINs of example variants of the product cluster. + *+ * + *
repeated string variant_gtins = 13;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the variantGtins at the given index.
+ */
+ com.google.protobuf.ByteString getVariantGtinsBytes(int index);
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return Whether the inventoryStatus field is set.
+ */
+ boolean hasInventoryStatus();
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return The enum numeric value on the wire for inventoryStatus.
+ */
+ int getInventoryStatusValue();
+
+ /**
+ *
+ *
+ * + * Whether the product cluster is `IN_STOCK` in your product data source in at + * least one of the countries, `OUT_OF_STOCK` in your product data source in + * all countries, or `NOT_IN_INVENTORY` at all. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus inventory_status = 14;
+ *
+ *
+ * @return The inventoryStatus.
+ */
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ getInventoryStatus();
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return Whether the brandInventoryStatus field is set.
+ */
+ boolean hasBrandInventoryStatus();
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return The enum numeric value on the wire for brandInventoryStatus.
+ */
+ int getBrandInventoryStatusValue();
+
+ /**
+ *
+ *
+ * + * Whether there is at least one product of the brand currently `IN_STOCK` in + * your product data source in at least one of the countries, all products are + * `OUT_OF_STOCK` in your product data source in all countries, or + * `NOT_IN_INVENTORY`. + * + * The field doesn't take the Best sellers report country filter into account. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus brand_inventory_status = 15;
+ *
+ *
+ * @return The brandInventoryStatus.
+ */
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatus
+ getBrandInventoryStatus();
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @return Whether the rank field is set.
+ */
+ boolean hasRank();
+
+ /**
+ *
+ *
+ * + * Popularity of the product cluster on Ads and organic surfaces, in the + * selected category and country, based on the estimated number of units sold. + *+ * + *
optional int64 rank = 16;
+ *
+ * @return The rank.
+ */
+ long getRank();
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @return Whether the previousRank field is set.
+ */
+ boolean hasPreviousRank();
+
+ /**
+ *
+ *
+ * + * Popularity rank in the previous week or month. + *+ * + *
optional int64 previous_rank = 17;
+ *
+ * @return The previousRank.
+ */
+ long getPreviousRank();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return Whether the relativeDemand field is set.
+ */
+ boolean hasRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemand.
+ */
+ int getRelativeDemandValue();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum relative_demand = 18;
+ *
+ *
+ * @return The relativeDemand.
+ */
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return Whether the previousRelativeDemand field is set.
+ */
+ boolean hasPreviousRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return The enum numeric value on the wire for previousRelativeDemand.
+ */
+ int getPreviousRelativeDemandValue();
+
+ /**
+ *
+ *
+ * + * Estimated demand in relation to the product cluster with the highest + * popularity rank in the same category and country in the previous week or + * month. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+ *
+ *
+ * @return The previousRelativeDemand.
+ */
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum
+ getPreviousRelativeDemand();
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return Whether the relativeDemandChange field is set.
+ */
+ boolean hasRelativeDemandChange();
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return The enum numeric value on the wire for relativeDemandChange.
+ */
+ int getRelativeDemandChangeValue();
+
+ /**
+ *
+ *
+ * + * Change in the estimated demand. Whether it rose, sank or remained flat. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum relative_demand_change = 20;
+ *
+ *
+ * @return The relativeDemandChange.
+ */
+ com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum
+ getRelativeDemandChange();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkView.java
new file mode 100644
index 000000000000..0f1309a2301a
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityBenchmarkView.java
@@ -0,0 +1,1796 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` table. + * + * [Competitive + * visibility](https://support.google.com/merchants/answer/11366442) report with + * the category benchmark. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView} + */ +public final class CompetitiveVisibilityBenchmarkView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) + CompetitiveVisibilityBenchmarkViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CompetitiveVisibilityBenchmarkView.newBuilder() to construct. + private CompetitiveVisibilityBenchmarkView( + com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private CompetitiveVisibilityBenchmarkView() { + reportCountryCode_ = ""; + trafficSource_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CompetitiveVisibilityBenchmarkView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+ * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return The reportCountryCode.
+ */
+ @java.lang.Override
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 3;
+ private long reportCategoryId_ = 0L;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ public static final int TRAFFIC_SOURCE_FIELD_NUMBER = 4;
+ private int trafficSource_ = 0;
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ @java.lang.Override
+ public boolean hasTrafficSource() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ @java.lang.Override
+ public int getTrafficSourceValue() {
+ return trafficSource_;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return The trafficSource.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ getTrafficSource() {
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result =
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber(
+ trafficSource_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.UNRECOGNIZED
+ : result;
+ }
+
+ public static final int YOUR_DOMAIN_VISIBILITY_TREND_FIELD_NUMBER = 5;
+ private double yourDomainVisibilityTrend_ = 0D;
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @return Whether the yourDomainVisibilityTrend field is set.
+ */
+ @java.lang.Override
+ public boolean hasYourDomainVisibilityTrend() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @return The yourDomainVisibilityTrend.
+ */
+ @java.lang.Override
+ public double getYourDomainVisibilityTrend() {
+ return yourDomainVisibilityTrend_;
+ }
+
+ public static final int CATEGORY_BENCHMARK_VISIBILITY_TREND_FIELD_NUMBER = 6;
+ private double categoryBenchmarkVisibilityTrend_ = 0D;
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @return Whether the categoryBenchmarkVisibilityTrend field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryBenchmarkVisibilityTrend() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @return The categoryBenchmarkVisibilityTrend.
+ */
+ @java.lang.Override
+ public double getCategoryBenchmarkVisibilityTrend() {
+ return categoryBenchmarkVisibilityTrend_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeInt64(3, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeEnum(4, trafficSource_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ output.writeDouble(5, yourDomainVisibilityTrend_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeDouble(6, categoryBenchmarkVisibilityTrend_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(4, trafficSource_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeDoubleSize(5, yourDomainVisibilityTrend_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeDoubleSize(
+ 6, categoryBenchmarkVisibilityTrend_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView other =
+ (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView) obj;
+
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasReportCountryCode() != other.hasReportCountryCode()) return false;
+ if (hasReportCountryCode()) {
+ if (!getReportCountryCode().equals(other.getReportCountryCode())) return false;
+ }
+ if (hasReportCategoryId() != other.hasReportCategoryId()) return false;
+ if (hasReportCategoryId()) {
+ if (getReportCategoryId() != other.getReportCategoryId()) return false;
+ }
+ if (hasTrafficSource() != other.hasTrafficSource()) return false;
+ if (hasTrafficSource()) {
+ if (trafficSource_ != other.trafficSource_) return false;
+ }
+ if (hasYourDomainVisibilityTrend() != other.hasYourDomainVisibilityTrend()) return false;
+ if (hasYourDomainVisibilityTrend()) {
+ if (java.lang.Double.doubleToLongBits(getYourDomainVisibilityTrend())
+ != java.lang.Double.doubleToLongBits(other.getYourDomainVisibilityTrend())) return false;
+ }
+ if (hasCategoryBenchmarkVisibilityTrend() != other.hasCategoryBenchmarkVisibilityTrend())
+ return false;
+ if (hasCategoryBenchmarkVisibilityTrend()) {
+ if (java.lang.Double.doubleToLongBits(getCategoryBenchmarkVisibilityTrend())
+ != java.lang.Double.doubleToLongBits(other.getCategoryBenchmarkVisibilityTrend()))
+ return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasReportCountryCode()) {
+ hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportCountryCode().hashCode();
+ }
+ if (hasReportCategoryId()) {
+ hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId());
+ }
+ if (hasTrafficSource()) {
+ hash = (37 * hash) + TRAFFIC_SOURCE_FIELD_NUMBER;
+ hash = (53 * hash) + trafficSource_;
+ }
+ if (hasYourDomainVisibilityTrend()) {
+ hash = (37 * hash) + YOUR_DOMAIN_VISIBILITY_TREND_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getYourDomainVisibilityTrend()));
+ }
+ if (hasCategoryBenchmarkVisibilityTrend()) {
+ hash = (37 * hash) + CATEGORY_BENCHMARK_VISIBILITY_TREND_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getCategoryBenchmarkVisibilityTrend()));
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` table. + * + * [Competitive + * visibility](https://support.google.com/merchants/answer/11366442) report with + * the category benchmark. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return The reportCountryCode.
+ */
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @param value The reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCountryCode() {
+ reportCountryCode_ = getDefaultInstance().getReportCountryCode();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @param value The bytes for reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private long reportCategoryId_;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @param value The reportCategoryId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCategoryId(long value) {
+
+ reportCategoryId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCategoryId() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ reportCategoryId_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private int trafficSource_ = 0;
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ @java.lang.Override
+ public boolean hasTrafficSource() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ @java.lang.Override
+ public int getTrafficSourceValue() {
+ return trafficSource_;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @param value The enum numeric value on the wire for trafficSource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTrafficSourceValue(int value) {
+ trafficSource_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return The trafficSource.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ getTrafficSource() {
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result =
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber(
+ trafficSource_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @param value The trafficSource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTrafficSource(
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ trafficSource_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTrafficSource() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ trafficSource_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private double yourDomainVisibilityTrend_;
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @return Whether the yourDomainVisibilityTrend field is set.
+ */
+ @java.lang.Override
+ public boolean hasYourDomainVisibilityTrend() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @return The yourDomainVisibilityTrend.
+ */
+ @java.lang.Override
+ public double getYourDomainVisibilityTrend() {
+ return yourDomainVisibilityTrend_;
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @param value The yourDomainVisibilityTrend to set.
+ * @return This builder for chaining.
+ */
+ public Builder setYourDomainVisibilityTrend(double value) {
+
+ yourDomainVisibilityTrend_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearYourDomainVisibilityTrend() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ yourDomainVisibilityTrend_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double categoryBenchmarkVisibilityTrend_;
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @return Whether the categoryBenchmarkVisibilityTrend field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryBenchmarkVisibilityTrend() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @return The categoryBenchmarkVisibilityTrend.
+ */
+ @java.lang.Override
+ public double getCategoryBenchmarkVisibilityTrend() {
+ return categoryBenchmarkVisibilityTrend_;
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @param value The categoryBenchmarkVisibilityTrend to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryBenchmarkVisibilityTrend(double value) {
+
+ categoryBenchmarkVisibilityTrend_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryBenchmarkVisibilityTrend() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ categoryBenchmarkVisibilityTrend_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView)
+ private static final com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityBenchmarkView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Required in the `SELECT` clause. A condition on `date` is required in the + * `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ boolean hasReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return The reportCountryCode.
+ */
+ java.lang.String getReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 2;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ com.google.protobuf.ByteString getReportCountryCodeBytes();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ boolean hasReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 3;
+ *
+ * @return The reportCategoryId.
+ */
+ long getReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ boolean hasTrafficSource();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ int getTrafficSourceValue();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 4;
+ *
+ *
+ * @return The trafficSource.
+ */
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum getTrafficSource();
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @return Whether the yourDomainVisibilityTrend field is set.
+ */
+ boolean hasYourDomainVisibilityTrend();
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions for your domain with respect to + * the start of the selected time range (or first day with non-zero + * impressions). + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double your_domain_visibility_trend = 5;
+ *
+ * @return The yourDomainVisibilityTrend.
+ */
+ double getYourDomainVisibilityTrend();
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @return Whether the categoryBenchmarkVisibilityTrend field is set.
+ */
+ boolean hasCategoryBenchmarkVisibilityTrend();
+
+ /**
+ *
+ *
+ * + * Change in visibility based on impressions with respect to the start of the + * selected time range (or first day with non-zero impressions) for a + * combined set of merchants with highest visibility approximating the + * market. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double category_benchmark_visibility_trend = 6;
+ *
+ * @return The categoryBenchmarkVisibilityTrend.
+ */
+ double getCategoryBenchmarkVisibilityTrend();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorView.java
new file mode 100644
index 000000000000..116717d1683c
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityCompetitorView.java
@@ -0,0 +1,2699 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` table. + * + * [Competitive + * visibility](https://support.google.com/merchants/answer/11366442) report with + * businesses with similar visibility. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView} + */ +public final class CompetitiveVisibilityCompetitorView + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) + CompetitiveVisibilityCompetitorViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CompetitiveVisibilityCompetitorView.newBuilder() to construct. + private CompetitiveVisibilityCompetitorView( + com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private CompetitiveVisibilityCompetitorView() { + domain_ = ""; + reportCountryCode_ = ""; + trafficSource_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CompetitiveVisibilityCompetitorView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+ * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int DOMAIN_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object domain_ = "";
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return Whether the domain field is set.
+ */
+ @java.lang.Override
+ public boolean hasDomain() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The domain.
+ */
+ @java.lang.Override
+ public java.lang.String getDomain() {
+ java.lang.Object ref = domain_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ domain_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The bytes for domain.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getDomainBytes() {
+ java.lang.Object ref = domain_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ domain_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int IS_YOUR_DOMAIN_FIELD_NUMBER = 3;
+ private boolean isYourDomain_ = false;
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return Whether the isYourDomain field is set.
+ */
+ @java.lang.Override
+ public boolean hasIsYourDomain() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return The isYourDomain.
+ */
+ @java.lang.Override
+ public boolean getIsYourDomain() {
+ return isYourDomain_;
+ }
+
+ public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The reportCountryCode.
+ */
+ @java.lang.Override
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 5;
+ private long reportCategoryId_ = 0L;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ public static final int TRAFFIC_SOURCE_FIELD_NUMBER = 6;
+ private int trafficSource_ = 0;
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ @java.lang.Override
+ public boolean hasTrafficSource() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ @java.lang.Override
+ public int getTrafficSourceValue() {
+ return trafficSource_;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The trafficSource.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ getTrafficSource() {
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result =
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber(
+ trafficSource_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.UNRECOGNIZED
+ : result;
+ }
+
+ public static final int RANK_FIELD_NUMBER = 7;
+ private long rank_ = 0L;
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ public static final int ADS_ORGANIC_RATIO_FIELD_NUMBER = 8;
+ private double adsOrganicRatio_ = 0D;
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return Whether the adsOrganicRatio field is set.
+ */
+ @java.lang.Override
+ public boolean hasAdsOrganicRatio() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return The adsOrganicRatio.
+ */
+ @java.lang.Override
+ public double getAdsOrganicRatio() {
+ return adsOrganicRatio_;
+ }
+
+ public static final int PAGE_OVERLAP_RATE_FIELD_NUMBER = 9;
+ private double pageOverlapRate_ = 0D;
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return Whether the pageOverlapRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasPageOverlapRate() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return The pageOverlapRate.
+ */
+ @java.lang.Override
+ public double getPageOverlapRate() {
+ return pageOverlapRate_;
+ }
+
+ public static final int HIGHER_POSITION_RATE_FIELD_NUMBER = 10;
+ private double higherPositionRate_ = 0D;
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return Whether the higherPositionRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasHigherPositionRate() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return The higherPositionRate.
+ */
+ @java.lang.Override
+ public double getHigherPositionRate() {
+ return higherPositionRate_;
+ }
+
+ public static final int RELATIVE_VISIBILITY_FIELD_NUMBER = 11;
+ private double relativeVisibility_ = 0D;
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @return Whether the relativeVisibility field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeVisibility() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @return The relativeVisibility.
+ */
+ @java.lang.Override
+ public double getRelativeVisibility() {
+ return relativeVisibility_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, domain_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeBool(3, isYourDomain_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ output.writeInt64(5, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeEnum(6, trafficSource_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ output.writeInt64(7, rank_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeDouble(8, adsOrganicRatio_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ output.writeDouble(9, pageOverlapRate_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ output.writeDouble(10, higherPositionRate_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ output.writeDouble(11, relativeVisibility_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, domain_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, isYourDomain_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(6, trafficSource_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, rank_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(8, adsOrganicRatio_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(9, pageOverlapRate_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(10, higherPositionRate_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(11, relativeVisibility_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView other =
+ (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView) obj;
+
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasDomain() != other.hasDomain()) return false;
+ if (hasDomain()) {
+ if (!getDomain().equals(other.getDomain())) return false;
+ }
+ if (hasIsYourDomain() != other.hasIsYourDomain()) return false;
+ if (hasIsYourDomain()) {
+ if (getIsYourDomain() != other.getIsYourDomain()) return false;
+ }
+ if (hasReportCountryCode() != other.hasReportCountryCode()) return false;
+ if (hasReportCountryCode()) {
+ if (!getReportCountryCode().equals(other.getReportCountryCode())) return false;
+ }
+ if (hasReportCategoryId() != other.hasReportCategoryId()) return false;
+ if (hasReportCategoryId()) {
+ if (getReportCategoryId() != other.getReportCategoryId()) return false;
+ }
+ if (hasTrafficSource() != other.hasTrafficSource()) return false;
+ if (hasTrafficSource()) {
+ if (trafficSource_ != other.trafficSource_) return false;
+ }
+ if (hasRank() != other.hasRank()) return false;
+ if (hasRank()) {
+ if (getRank() != other.getRank()) return false;
+ }
+ if (hasAdsOrganicRatio() != other.hasAdsOrganicRatio()) return false;
+ if (hasAdsOrganicRatio()) {
+ if (java.lang.Double.doubleToLongBits(getAdsOrganicRatio())
+ != java.lang.Double.doubleToLongBits(other.getAdsOrganicRatio())) return false;
+ }
+ if (hasPageOverlapRate() != other.hasPageOverlapRate()) return false;
+ if (hasPageOverlapRate()) {
+ if (java.lang.Double.doubleToLongBits(getPageOverlapRate())
+ != java.lang.Double.doubleToLongBits(other.getPageOverlapRate())) return false;
+ }
+ if (hasHigherPositionRate() != other.hasHigherPositionRate()) return false;
+ if (hasHigherPositionRate()) {
+ if (java.lang.Double.doubleToLongBits(getHigherPositionRate())
+ != java.lang.Double.doubleToLongBits(other.getHigherPositionRate())) return false;
+ }
+ if (hasRelativeVisibility() != other.hasRelativeVisibility()) return false;
+ if (hasRelativeVisibility()) {
+ if (java.lang.Double.doubleToLongBits(getRelativeVisibility())
+ != java.lang.Double.doubleToLongBits(other.getRelativeVisibility())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasDomain()) {
+ hash = (37 * hash) + DOMAIN_FIELD_NUMBER;
+ hash = (53 * hash) + getDomain().hashCode();
+ }
+ if (hasIsYourDomain()) {
+ hash = (37 * hash) + IS_YOUR_DOMAIN_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsYourDomain());
+ }
+ if (hasReportCountryCode()) {
+ hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportCountryCode().hashCode();
+ }
+ if (hasReportCategoryId()) {
+ hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId());
+ }
+ if (hasTrafficSource()) {
+ hash = (37 * hash) + TRAFFIC_SOURCE_FIELD_NUMBER;
+ hash = (53 * hash) + trafficSource_;
+ }
+ if (hasRank()) {
+ hash = (37 * hash) + RANK_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank());
+ }
+ if (hasAdsOrganicRatio()) {
+ hash = (37 * hash) + ADS_ORGANIC_RATIO_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getAdsOrganicRatio()));
+ }
+ if (hasPageOverlapRate()) {
+ hash = (37 * hash) + PAGE_OVERLAP_RATE_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getPageOverlapRate()));
+ }
+ if (hasHigherPositionRate()) {
+ hash = (37 * hash) + HIGHER_POSITION_RATE_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getHigherPositionRate()));
+ }
+ if (hasRelativeVisibility()) {
+ hash = (37 * hash) + RELATIVE_VISIBILITY_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getRelativeVisibility()));
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` table. + * + * [Competitive + * visibility](https://support.google.com/merchants/answer/11366442) report with + * businesses with similar visibility. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private java.lang.Object domain_ = "";
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return Whether the domain field is set.
+ */
+ public boolean hasDomain() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The domain.
+ */
+ public java.lang.String getDomain() {
+ java.lang.Object ref = domain_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ domain_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The bytes for domain.
+ */
+ public com.google.protobuf.ByteString getDomainBytes() {
+ java.lang.Object ref = domain_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ domain_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @param value The domain to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDomain(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ domain_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDomain() {
+ domain_ = getDefaultInstance().getDomain();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @param value The bytes for domain to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDomainBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ domain_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private boolean isYourDomain_;
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return Whether the isYourDomain field is set.
+ */
+ @java.lang.Override
+ public boolean hasIsYourDomain() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return The isYourDomain.
+ */
+ @java.lang.Override
+ public boolean getIsYourDomain() {
+ return isYourDomain_;
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @param value The isYourDomain to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsYourDomain(boolean value) {
+
+ isYourDomain_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearIsYourDomain() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ isYourDomain_ = false;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The reportCountryCode.
+ */
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @param value The reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCountryCode() {
+ reportCountryCode_ = getDefaultInstance().getReportCountryCode();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @param value The bytes for reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private long reportCategoryId_;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @param value The reportCategoryId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCategoryId(long value) {
+
+ reportCategoryId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCategoryId() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ reportCategoryId_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private int trafficSource_ = 0;
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ @java.lang.Override
+ public boolean hasTrafficSource() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ @java.lang.Override
+ public int getTrafficSourceValue() {
+ return trafficSource_;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @param value The enum numeric value on the wire for trafficSource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTrafficSourceValue(int value) {
+ trafficSource_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The trafficSource.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ getTrafficSource() {
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result =
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber(
+ trafficSource_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @param value The trafficSource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTrafficSource(
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000020;
+ trafficSource_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTrafficSource() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ trafficSource_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private long rank_;
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @param value The rank to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRank(long value) {
+
+ rank_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRank() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ rank_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private double adsOrganicRatio_;
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return Whether the adsOrganicRatio field is set.
+ */
+ @java.lang.Override
+ public boolean hasAdsOrganicRatio() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return The adsOrganicRatio.
+ */
+ @java.lang.Override
+ public double getAdsOrganicRatio() {
+ return adsOrganicRatio_;
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @param value The adsOrganicRatio to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAdsOrganicRatio(double value) {
+
+ adsOrganicRatio_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearAdsOrganicRatio() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ adsOrganicRatio_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double pageOverlapRate_;
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return Whether the pageOverlapRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasPageOverlapRate() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return The pageOverlapRate.
+ */
+ @java.lang.Override
+ public double getPageOverlapRate() {
+ return pageOverlapRate_;
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @param value The pageOverlapRate to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageOverlapRate(double value) {
+
+ pageOverlapRate_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageOverlapRate() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ pageOverlapRate_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double higherPositionRate_;
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return Whether the higherPositionRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasHigherPositionRate() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return The higherPositionRate.
+ */
+ @java.lang.Override
+ public double getHigherPositionRate() {
+ return higherPositionRate_;
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @param value The higherPositionRate to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHigherPositionRate(double value) {
+
+ higherPositionRate_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearHigherPositionRate() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ higherPositionRate_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double relativeVisibility_;
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @return Whether the relativeVisibility field is set.
+ */
+ @java.lang.Override
+ public boolean hasRelativeVisibility() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @return The relativeVisibility.
+ */
+ @java.lang.Override
+ public double getRelativeVisibility() {
+ return relativeVisibility_;
+ }
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @param value The relativeVisibility to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRelativeVisibility(double value) {
+
+ relativeVisibility_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRelativeVisibility() {
+ bitField0_ = (bitField0_ & ~0x00000400);
+ relativeVisibility_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView)
+ private static final com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityCompetitorView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * A condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return Whether the domain field is set.
+ */
+ boolean hasDomain();
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The domain.
+ */
+ java.lang.String getDomain();
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The bytes for domain.
+ */
+ com.google.protobuf.ByteString getDomainBytes();
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return Whether the isYourDomain field is set.
+ */
+ boolean hasIsYourDomain();
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return The isYourDomain.
+ */
+ boolean getIsYourDomain();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ boolean hasReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The reportCountryCode.
+ */
+ java.lang.String getReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ com.google.protobuf.ByteString getReportCountryCodeBytes();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ boolean hasReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return The reportCategoryId.
+ */
+ long getReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ boolean hasTrafficSource();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ int getTrafficSourceValue();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The trafficSource.
+ */
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum getTrafficSource();
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ boolean hasRank();
+
+ /**
+ *
+ *
+ * + * Position of the domain in the similar businesses ranking for the selected + * keys (`date`, `report_category_id`, `report_country_code`, + * `traffic_source`) based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ long getRank();
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return Whether the adsOrganicRatio field is set.
+ */
+ boolean hasAdsOrganicRatio();
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return The adsOrganicRatio.
+ */
+ double getAdsOrganicRatio();
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return Whether the pageOverlapRate field is set.
+ */
+ boolean hasPageOverlapRate();
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return The pageOverlapRate.
+ */
+ double getPageOverlapRate();
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return Whether the higherPositionRate field is set.
+ */
+ boolean hasHigherPositionRate();
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return The higherPositionRate.
+ */
+ double getHigherPositionRate();
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @return Whether the relativeVisibility field is set.
+ */
+ boolean hasRelativeVisibility();
+
+ /**
+ *
+ *
+ * + * [Relative visibility] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility) + * shows how often your competitors’ offers are shown compared to your offers. + * In other words, this is the number of displayed impressions of a competitor + * retailer divided by the number of your displayed impressions during a + * selected time range for a selected product category and country. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double relative_visibility = 11;
+ *
+ * @return The relativeVisibility.
+ */
+ double getRelativeVisibility();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantView.java
new file mode 100644
index 000000000000..cdc5aede265c
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/CompetitiveVisibilityTopMerchantView.java
@@ -0,0 +1,2532 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + * + * [Competitive + * visibility](https://support.google.com/merchants/answer/11366442) report with + * business with highest visibility. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView} + */ +public final class CompetitiveVisibilityTopMerchantView + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) + CompetitiveVisibilityTopMerchantViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use CompetitiveVisibilityTopMerchantView.newBuilder() to construct. + private CompetitiveVisibilityTopMerchantView( + com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private CompetitiveVisibilityTopMerchantView() { + domain_ = ""; + reportCountryCode_ = ""; + trafficSource_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new CompetitiveVisibilityTopMerchantView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView.class, + com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView + .Builder.class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+ * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int DOMAIN_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object domain_ = "";
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return Whether the domain field is set.
+ */
+ @java.lang.Override
+ public boolean hasDomain() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The domain.
+ */
+ @java.lang.Override
+ public java.lang.String getDomain() {
+ java.lang.Object ref = domain_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ domain_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The bytes for domain.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getDomainBytes() {
+ java.lang.Object ref = domain_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ domain_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int IS_YOUR_DOMAIN_FIELD_NUMBER = 3;
+ private boolean isYourDomain_ = false;
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return Whether the isYourDomain field is set.
+ */
+ @java.lang.Override
+ public boolean hasIsYourDomain() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return The isYourDomain.
+ */
+ @java.lang.Override
+ public boolean getIsYourDomain() {
+ return isYourDomain_;
+ }
+
+ public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The reportCountryCode.
+ */
+ @java.lang.Override
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int REPORT_CATEGORY_ID_FIELD_NUMBER = 5;
+ private long reportCategoryId_ = 0L;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ public static final int TRAFFIC_SOURCE_FIELD_NUMBER = 6;
+ private int trafficSource_ = 0;
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ @java.lang.Override
+ public boolean hasTrafficSource() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ @java.lang.Override
+ public int getTrafficSourceValue() {
+ return trafficSource_;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The trafficSource.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ getTrafficSource() {
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result =
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber(
+ trafficSource_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.UNRECOGNIZED
+ : result;
+ }
+
+ public static final int RANK_FIELD_NUMBER = 7;
+ private long rank_ = 0L;
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ public static final int ADS_ORGANIC_RATIO_FIELD_NUMBER = 8;
+ private double adsOrganicRatio_ = 0D;
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return Whether the adsOrganicRatio field is set.
+ */
+ @java.lang.Override
+ public boolean hasAdsOrganicRatio() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return The adsOrganicRatio.
+ */
+ @java.lang.Override
+ public double getAdsOrganicRatio() {
+ return adsOrganicRatio_;
+ }
+
+ public static final int PAGE_OVERLAP_RATE_FIELD_NUMBER = 9;
+ private double pageOverlapRate_ = 0D;
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return Whether the pageOverlapRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasPageOverlapRate() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return The pageOverlapRate.
+ */
+ @java.lang.Override
+ public double getPageOverlapRate() {
+ return pageOverlapRate_;
+ }
+
+ public static final int HIGHER_POSITION_RATE_FIELD_NUMBER = 10;
+ private double higherPositionRate_ = 0D;
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return Whether the higherPositionRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasHigherPositionRate() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return The higherPositionRate.
+ */
+ @java.lang.Override
+ public double getHigherPositionRate() {
+ return higherPositionRate_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, domain_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeBool(3, isYourDomain_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ output.writeInt64(5, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeEnum(6, trafficSource_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ output.writeInt64(7, rank_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeDouble(8, adsOrganicRatio_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ output.writeDouble(9, pageOverlapRate_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ output.writeDouble(10, higherPositionRate_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, domain_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, isYourDomain_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, reportCategoryId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(6, trafficSource_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, rank_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(8, adsOrganicRatio_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(9, pageOverlapRate_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(10, higherPositionRate_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView other =
+ (com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView) obj;
+
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasDomain() != other.hasDomain()) return false;
+ if (hasDomain()) {
+ if (!getDomain().equals(other.getDomain())) return false;
+ }
+ if (hasIsYourDomain() != other.hasIsYourDomain()) return false;
+ if (hasIsYourDomain()) {
+ if (getIsYourDomain() != other.getIsYourDomain()) return false;
+ }
+ if (hasReportCountryCode() != other.hasReportCountryCode()) return false;
+ if (hasReportCountryCode()) {
+ if (!getReportCountryCode().equals(other.getReportCountryCode())) return false;
+ }
+ if (hasReportCategoryId() != other.hasReportCategoryId()) return false;
+ if (hasReportCategoryId()) {
+ if (getReportCategoryId() != other.getReportCategoryId()) return false;
+ }
+ if (hasTrafficSource() != other.hasTrafficSource()) return false;
+ if (hasTrafficSource()) {
+ if (trafficSource_ != other.trafficSource_) return false;
+ }
+ if (hasRank() != other.hasRank()) return false;
+ if (hasRank()) {
+ if (getRank() != other.getRank()) return false;
+ }
+ if (hasAdsOrganicRatio() != other.hasAdsOrganicRatio()) return false;
+ if (hasAdsOrganicRatio()) {
+ if (java.lang.Double.doubleToLongBits(getAdsOrganicRatio())
+ != java.lang.Double.doubleToLongBits(other.getAdsOrganicRatio())) return false;
+ }
+ if (hasPageOverlapRate() != other.hasPageOverlapRate()) return false;
+ if (hasPageOverlapRate()) {
+ if (java.lang.Double.doubleToLongBits(getPageOverlapRate())
+ != java.lang.Double.doubleToLongBits(other.getPageOverlapRate())) return false;
+ }
+ if (hasHigherPositionRate() != other.hasHigherPositionRate()) return false;
+ if (hasHigherPositionRate()) {
+ if (java.lang.Double.doubleToLongBits(getHigherPositionRate())
+ != java.lang.Double.doubleToLongBits(other.getHigherPositionRate())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasDomain()) {
+ hash = (37 * hash) + DOMAIN_FIELD_NUMBER;
+ hash = (53 * hash) + getDomain().hashCode();
+ }
+ if (hasIsYourDomain()) {
+ hash = (37 * hash) + IS_YOUR_DOMAIN_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsYourDomain());
+ }
+ if (hasReportCountryCode()) {
+ hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportCountryCode().hashCode();
+ }
+ if (hasReportCategoryId()) {
+ hash = (37 * hash) + REPORT_CATEGORY_ID_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getReportCategoryId());
+ }
+ if (hasTrafficSource()) {
+ hash = (37 * hash) + TRAFFIC_SOURCE_FIELD_NUMBER;
+ hash = (53 * hash) + trafficSource_;
+ }
+ if (hasRank()) {
+ hash = (37 * hash) + RANK_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRank());
+ }
+ if (hasAdsOrganicRatio()) {
+ hash = (37 * hash) + ADS_ORGANIC_RATIO_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getAdsOrganicRatio()));
+ }
+ if (hasPageOverlapRate()) {
+ hash = (37 * hash) + PAGE_OVERLAP_RATE_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getPageOverlapRate()));
+ }
+ if (hasHigherPositionRate()) {
+ hash = (37 * hash) + HIGHER_POSITION_RATE_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getHigherPositionRate()));
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + * + * [Competitive + * visibility](https://support.google.com/merchants/answer/11366442) report with + * business with highest visibility. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private java.lang.Object domain_ = "";
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return Whether the domain field is set.
+ */
+ public boolean hasDomain() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The domain.
+ */
+ public java.lang.String getDomain() {
+ java.lang.Object ref = domain_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ domain_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The bytes for domain.
+ */
+ public com.google.protobuf.ByteString getDomainBytes() {
+ java.lang.Object ref = domain_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ domain_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @param value The domain to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDomain(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ domain_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDomain() {
+ domain_ = getDefaultInstance().getDomain();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @param value The bytes for domain to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDomainBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ domain_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private boolean isYourDomain_;
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return Whether the isYourDomain field is set.
+ */
+ @java.lang.Override
+ public boolean hasIsYourDomain() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return The isYourDomain.
+ */
+ @java.lang.Override
+ public boolean getIsYourDomain() {
+ return isYourDomain_;
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @param value The isYourDomain to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsYourDomain(boolean value) {
+
+ isYourDomain_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearIsYourDomain() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ isYourDomain_ = false;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object reportCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The reportCountryCode.
+ */
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @param value The reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCountryCode() {
+ reportCountryCode_ = getDefaultInstance().getReportCountryCode();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @param value The bytes for reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private long reportCategoryId_;
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCategoryId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return The reportCategoryId.
+ */
+ @java.lang.Override
+ public long getReportCategoryId() {
+ return reportCategoryId_;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @param value The reportCategoryId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCategoryId(long value) {
+
+ reportCategoryId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCategoryId() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ reportCategoryId_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private int trafficSource_ = 0;
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ @java.lang.Override
+ public boolean hasTrafficSource() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ @java.lang.Override
+ public int getTrafficSourceValue() {
+ return trafficSource_;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @param value The enum numeric value on the wire for trafficSource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTrafficSourceValue(int value) {
+ trafficSource_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The trafficSource.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ getTrafficSource() {
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum result =
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum.forNumber(
+ trafficSource_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @param value The trafficSource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTrafficSource(
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000020;
+ trafficSource_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTrafficSource() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ trafficSource_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private long rank_;
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ @java.lang.Override
+ public boolean hasRank() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ @java.lang.Override
+ public long getRank() {
+ return rank_;
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @param value The rank to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRank(long value) {
+
+ rank_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRank() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ rank_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private double adsOrganicRatio_;
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return Whether the adsOrganicRatio field is set.
+ */
+ @java.lang.Override
+ public boolean hasAdsOrganicRatio() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return The adsOrganicRatio.
+ */
+ @java.lang.Override
+ public double getAdsOrganicRatio() {
+ return adsOrganicRatio_;
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @param value The adsOrganicRatio to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAdsOrganicRatio(double value) {
+
+ adsOrganicRatio_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearAdsOrganicRatio() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ adsOrganicRatio_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double pageOverlapRate_;
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return Whether the pageOverlapRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasPageOverlapRate() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return The pageOverlapRate.
+ */
+ @java.lang.Override
+ public double getPageOverlapRate() {
+ return pageOverlapRate_;
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @param value The pageOverlapRate to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageOverlapRate(double value) {
+
+ pageOverlapRate_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageOverlapRate() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ pageOverlapRate_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double higherPositionRate_;
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return Whether the higherPositionRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasHigherPositionRate() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return The higherPositionRate.
+ */
+ @java.lang.Override
+ public double getHigherPositionRate() {
+ return higherPositionRate_;
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @param value The higherPositionRate to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHigherPositionRate(double value) {
+
+ higherPositionRate_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearHigherPositionRate() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ higherPositionRate_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView)
+ private static final com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityTopMerchantView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date of this row. + * + * Cannot be selected in the `SELECT` clause. A condition on `date` is + * required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return Whether the domain field is set.
+ */
+ boolean hasDomain();
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The domain.
+ */
+ java.lang.String getDomain();
+
+ /**
+ *
+ *
+ * + * Domain of your competitor or your domain, if 'is_your_domain' is true. + * + * Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE' + * clause. + *+ * + *
optional string domain = 2;
+ *
+ * @return The bytes for domain.
+ */
+ com.google.protobuf.ByteString getDomainBytes();
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return Whether the isYourDomain field is set.
+ */
+ boolean hasIsYourDomain();
+
+ /**
+ *
+ *
+ * + * True if this row contains data for your domain. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional bool is_your_domain = 3;
+ *
+ * @return The isYourDomain.
+ */
+ boolean getIsYourDomain();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ boolean hasReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The reportCountryCode.
+ */
+ java.lang.String getReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country where impressions appeared. + * + * Required in the `SELECT` clause. A condition on `report_country_code` is + * required in the `WHERE` clause. + *+ * + *
optional string report_country_code = 4;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ com.google.protobuf.ByteString getReportCountryCodeBytes();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return Whether the reportCategoryId field is set.
+ */
+ boolean hasReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Google product category ID to calculate the report for, represented in + * [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + * + * Required in the `SELECT` clause. A condition on `report_category_id` is + * required in the `WHERE` clause. + *+ * + *
optional int64 report_category_id = 5;
+ *
+ * @return The reportCategoryId.
+ */
+ long getReportCategoryId();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return Whether the trafficSource field is set.
+ */
+ boolean hasTrafficSource();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The enum numeric value on the wire for trafficSource.
+ */
+ int getTrafficSourceValue();
+
+ /**
+ *
+ *
+ * + * Traffic source of impressions. + * + * Required in the `SELECT` clause. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum traffic_source = 6;
+ *
+ *
+ * @return The trafficSource.
+ */
+ com.google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum getTrafficSource();
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return Whether the rank field is set.
+ */
+ boolean hasRank();
+
+ /**
+ *
+ *
+ * + * Position of the domain in the top merchants ranking for the selected keys + * (`date`, `report_category_id`, `report_country_code`, `traffic_source`) + * based on impressions. 1 is the highest. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional int64 rank = 7;
+ *
+ * @return The rank.
+ */
+ long getRank();
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return Whether the adsOrganicRatio field is set.
+ */
+ boolean hasAdsOrganicRatio();
+
+ /**
+ *
+ *
+ * + * [Ads / organic ratio] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio) + * shows how often the domain receives impressions from Shopping ads compared + * to organic traffic. The number is rounded and bucketed. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double ads_organic_ratio = 8;
+ *
+ * @return The adsOrganicRatio.
+ */
+ double getAdsOrganicRatio();
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return Whether the pageOverlapRate field is set.
+ */
+ boolean hasPageOverlapRate();
+
+ /**
+ *
+ *
+ * + * [Page overlap rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate) + * shows how frequently competing retailers’ offers are shown together with + * your offers on the same page. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double page_overlap_rate = 9;
+ *
+ * @return The pageOverlapRate.
+ */
+ double getPageOverlapRate();
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return Whether the higherPositionRate field is set.
+ */
+ boolean hasHigherPositionRate();
+
+ /**
+ *
+ *
+ * + * [Higher position rate] + * (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate) + * shows how often a competitor’s offer got placed in a higher position on the + * page than your offer. + * + * Cannot be filtered on in the 'WHERE' clause. + *+ * + *
optional double higher_position_rate = 10;
+ *
+ * @return The higherPositionRate.
+ */
+ double getHigherPositionRate();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethod.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethod.java
new file mode 100644
index 000000000000..2151a63a8793
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/MarketingMethod.java
@@ -0,0 +1,605 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Marketing method used to promote your products on Google (organic versus + * ads). + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.MarketingMethod} + */ +public final class MarketingMethod extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.MarketingMethod) + MarketingMethodOrBuilder { + private static final long serialVersionUID = 0L; + + // Use MarketingMethod.newBuilder() to construct. + private MarketingMethod(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private MarketingMethod() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new MarketingMethod(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.class, + com.google.shopping.merchant.reports.v1alpha.MarketingMethod.Builder.class); + } + + /** + * + * + *
+ * Marketing method values. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum} + */ + public enum MarketingMethodEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
MARKETING_METHOD_ENUM_UNSPECIFIED = 0;
+ */
+ MARKETING_METHOD_ENUM_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Organic marketing. + *+ * + *
ORGANIC = 1;
+ */
+ ORGANIC(1),
+ /**
+ *
+ *
+ * + * Ads-based marketing. + *+ * + *
ADS = 2;
+ */
+ ADS(2),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
MARKETING_METHOD_ENUM_UNSPECIFIED = 0;
+ */
+ public static final int MARKETING_METHOD_ENUM_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Organic marketing. + *+ * + *
ORGANIC = 1;
+ */
+ public static final int ORGANIC_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Ads-based marketing. + *+ * + *
ADS = 2;
+ */
+ public static final int ADS_VALUE = 2;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static MarketingMethodEnum valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static MarketingMethodEnum forNumber(int value) {
+ switch (value) {
+ case 0:
+ return MARKETING_METHOD_ENUM_UNSPECIFIED;
+ case 1:
+ return ORGANIC;
+ case 2:
+ return ADS;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Marketing method used to promote your products on Google (organic versus + * ads). + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.MarketingMethod} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Fields available for query in `non_product_performance_view` table. + * + * Performance data on images and online store links leading to your non-product + * pages. This includes performance metrics (for example, `clicks`) + * and dimensions according to which performance metrics are segmented (for + * example, `date`). + * + * Segment fields cannot be selected in queries without also selecting at least + * one metric field. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.NonProductPerformanceView} + */ +public final class NonProductPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) + NonProductPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use NonProductPerformanceView.newBuilder() to construct. + private NonProductPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private NonProductPerformanceView() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new NonProductPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder.class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int WEEK_FIELD_NUMBER = 2;
+ private com.google.type.Date week_;
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ *
+ * @return Whether the week field is set.
+ */
+ @java.lang.Override
+ public boolean hasWeek() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ *
+ * @return The week.
+ */
+ @java.lang.Override
+ public com.google.type.Date getWeek() {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getWeekOrBuilder() {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ }
+
+ public static final int CLICKS_FIELD_NUMBER = 3;
+ private long clicks_ = 0L;
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ public static final int IMPRESSIONS_FIELD_NUMBER = 4;
+ private long impressions_ = 0L;
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @return Whether the impressions field is set.
+ */
+ @java.lang.Override
+ public boolean hasImpressions() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @return The impressions.
+ */
+ @java.lang.Override
+ public long getImpressions() {
+ return impressions_;
+ }
+
+ public static final int CLICK_THROUGH_RATE_FIELD_NUMBER = 5;
+ private double clickThroughRate_ = 0D;
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @return Whether the clickThroughRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasClickThroughRate() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @return The clickThroughRate.
+ */
+ @java.lang.Override
+ public double getClickThroughRate() {
+ return clickThroughRate_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeMessage(2, getWeek());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeInt64(3, clicks_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeInt64(4, impressions_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ output.writeDouble(5, clickThroughRate_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getWeek());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, clicks_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, impressions_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(5, clickThroughRate_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView other =
+ (com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView) obj;
+
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasWeek() != other.hasWeek()) return false;
+ if (hasWeek()) {
+ if (!getWeek().equals(other.getWeek())) return false;
+ }
+ if (hasClicks() != other.hasClicks()) return false;
+ if (hasClicks()) {
+ if (getClicks() != other.getClicks()) return false;
+ }
+ if (hasImpressions() != other.hasImpressions()) return false;
+ if (hasImpressions()) {
+ if (getImpressions() != other.getImpressions()) return false;
+ }
+ if (hasClickThroughRate() != other.hasClickThroughRate()) return false;
+ if (hasClickThroughRate()) {
+ if (java.lang.Double.doubleToLongBits(getClickThroughRate())
+ != java.lang.Double.doubleToLongBits(other.getClickThroughRate())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasWeek()) {
+ hash = (37 * hash) + WEEK_FIELD_NUMBER;
+ hash = (53 * hash) + getWeek().hashCode();
+ }
+ if (hasClicks()) {
+ hash = (37 * hash) + CLICKS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks());
+ }
+ if (hasImpressions()) {
+ hash = (37 * hash) + IMPRESSIONS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getImpressions());
+ }
+ if (hasClickThroughRate()) {
+ hash = (37 * hash) + CLICK_THROUGH_RATE_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getClickThroughRate()));
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + * + * Performance data on images and online store links leading to your non-product + * pages. This includes performance metrics (for example, `clicks`) + * and dimensions according to which performance metrics are segmented (for + * example, `date`). + * + * Segment fields cannot be selected in queries without also selecting at least + * one metric field. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.NonProductPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private com.google.type.Date week_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ weekBuilder_;
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ *
+ * @return Whether the week field is set.
+ */
+ public boolean hasWeek() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ *
+ * @return The week.
+ */
+ public com.google.type.Date getWeek() {
+ if (weekBuilder_ == null) {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ } else {
+ return weekBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ public Builder setWeek(com.google.type.Date value) {
+ if (weekBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ week_ = value;
+ } else {
+ weekBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ public Builder setWeek(com.google.type.Date.Builder builderForValue) {
+ if (weekBuilder_ == null) {
+ week_ = builderForValue.build();
+ } else {
+ weekBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ public Builder mergeWeek(com.google.type.Date value) {
+ if (weekBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)
+ && week_ != null
+ && week_ != com.google.type.Date.getDefaultInstance()) {
+ getWeekBuilder().mergeFrom(value);
+ } else {
+ week_ = value;
+ }
+ } else {
+ weekBuilder_.mergeFrom(value);
+ }
+ if (week_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ public Builder clearWeek() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ week_ = null;
+ if (weekBuilder_ != null) {
+ weekBuilder_.dispose();
+ weekBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ public com.google.type.Date.Builder getWeekBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getWeekFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ public com.google.type.DateOrBuilder getWeekOrBuilder() {
+ if (weekBuilder_ != null) {
+ return weekBuilder_.getMessageOrBuilder();
+ } else {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getWeekFieldBuilder() {
+ if (weekBuilder_ == null) {
+ weekBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getWeek(), getParentForChildren(), isClean());
+ week_ = null;
+ }
+ return weekBuilder_;
+ }
+
+ private long clicks_;
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @param value The clicks to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClicks(long value) {
+
+ clicks_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClicks() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ clicks_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long impressions_;
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @return Whether the impressions field is set.
+ */
+ @java.lang.Override
+ public boolean hasImpressions() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @return The impressions.
+ */
+ @java.lang.Override
+ public long getImpressions() {
+ return impressions_;
+ }
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @param value The impressions to set.
+ * @return This builder for chaining.
+ */
+ public Builder setImpressions(long value) {
+
+ impressions_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearImpressions() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ impressions_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private double clickThroughRate_;
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @return Whether the clickThroughRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasClickThroughRate() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @return The clickThroughRate.
+ */
+ @java.lang.Override
+ public double getClickThroughRate() {
+ return clickThroughRate_;
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @param value The clickThroughRate to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClickThroughRate(double value) {
+
+ clickThroughRate_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClickThroughRate() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ clickThroughRate_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.NonProductPerformanceView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.NonProductPerformanceView)
+ private static final com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ *
+ * @return Whether the week field is set.
+ */
+ boolean hasWeek();
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ *
+ * @return The week.
+ */
+ com.google.type.Date getWeek();
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 2;
+ */
+ com.google.type.DateOrBuilder getWeekOrBuilder();
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @return Whether the clicks field is set.
+ */
+ boolean hasClicks();
+
+ /**
+ *
+ *
+ * + * Number of clicks on images and online store links leading to your + * non-product pages. Metric. + *+ * + *
optional int64 clicks = 3;
+ *
+ * @return The clicks.
+ */
+ long getClicks();
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @return Whether the impressions field is set.
+ */
+ boolean hasImpressions();
+
+ /**
+ *
+ *
+ * + * Number of times images and online store links leading to your non-product + * pages were shown. Metric. + *+ * + *
optional int64 impressions = 4;
+ *
+ * @return The impressions.
+ */
+ long getImpressions();
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @return Whether the clickThroughRate field is set.
+ */
+ boolean hasClickThroughRate();
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks (`clicks`) divided by the number + * of impressions (`impressions`) of images and online store links leading to + * your non-product pages. Metric. + *+ * + *
optional double click_through_rate = 5;
+ *
+ * @return The clickThroughRate.
+ */
+ double getClickThroughRate();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductView.java
new file mode 100644
index 000000000000..924f22e13e37
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceCompetitivenessProductView.java
@@ -0,0 +1,4592 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + * + * [Price competitiveness](https://support.google.com/merchants/answer/9626903) + * report. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView} + */ +public final class PriceCompetitivenessProductView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) + PriceCompetitivenessProductViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PriceCompetitivenessProductView.newBuilder() to construct. + private PriceCompetitivenessProductView( + com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private PriceCompetitivenessProductView() { + reportCountryCode_ = ""; + id_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PriceCompetitivenessProductView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.class, + com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder + .class); + } + + private int bitField0_; + public static final int REPORT_COUNTRY_CODE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object reportCountryCode_ = ""; + + /** + * + * + *
+ * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return The reportCountryCode.
+ */
+ @java.lang.Override
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ID_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object id_ = "";
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return Whether the id field is set.
+ */
+ @java.lang.Override
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return The id.
+ */
+ @java.lang.Override
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return The bytes for id.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int OFFER_ID_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return Whether the offerId field is set.
+ */
+ @java.lang.Override
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The offerId.
+ */
+ @java.lang.Override
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The bytes for offerId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int BRAND_FIELD_NUMBER = 5;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return Whether the brand field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return The brand.
+ */
+ @java.lang.Override
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return The bytes for brand.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L1_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return The categoryL1.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return The bytes for categoryL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L2_FIELD_NUMBER = 7;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return The categoryL2.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return The bytes for categoryL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L3_FIELD_NUMBER = 8;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return The categoryL3.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return The bytes for categoryL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L4_FIELD_NUMBER = 9;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return The categoryL4.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return The bytes for categoryL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L5_FIELD_NUMBER = 10;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return The categoryL5.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return The bytes for categoryL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 11;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return The productTypeL1.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 12;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return The productTypeL2.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 13;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return The productTypeL3.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 14;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return The productTypeL4.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 15;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return The productTypeL5.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRICE_FIELD_NUMBER = 16;
+ private com.google.shopping.type.Price price_;
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ *
+ * @return Whether the price field is set.
+ */
+ @java.lang.Override
+ public boolean hasPrice() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ *
+ * @return The price.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getPrice() {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+
+ public static final int BENCHMARK_PRICE_FIELD_NUMBER = 17;
+ private com.google.shopping.type.Price benchmarkPrice_;
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ *
+ * @return Whether the benchmarkPrice field is set.
+ */
+ @java.lang.Override
+ public boolean hasBenchmarkPrice() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ *
+ * @return The benchmarkPrice.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getBenchmarkPrice() {
+ return benchmarkPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : benchmarkPrice_;
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getBenchmarkPriceOrBuilder() {
+ return benchmarkPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : benchmarkPrice_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, id_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, offerId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, title_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, brand_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 6, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 7, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL5_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 11, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 12, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 15, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ output.writeMessage(16, getPrice());
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ output.writeMessage(17, getBenchmarkPrice());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, reportCountryCode_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, id_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, offerId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, title_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, brand_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL5_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getPrice());
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(17, getBenchmarkPrice());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView other =
+ (com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView) obj;
+
+ if (hasReportCountryCode() != other.hasReportCountryCode()) return false;
+ if (hasReportCountryCode()) {
+ if (!getReportCountryCode().equals(other.getReportCountryCode())) return false;
+ }
+ if (hasId() != other.hasId()) return false;
+ if (hasId()) {
+ if (!getId().equals(other.getId())) return false;
+ }
+ if (hasOfferId() != other.hasOfferId()) return false;
+ if (hasOfferId()) {
+ if (!getOfferId().equals(other.getOfferId())) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasBrand() != other.hasBrand()) return false;
+ if (hasBrand()) {
+ if (!getBrand().equals(other.getBrand())) return false;
+ }
+ if (hasCategoryL1() != other.hasCategoryL1()) return false;
+ if (hasCategoryL1()) {
+ if (!getCategoryL1().equals(other.getCategoryL1())) return false;
+ }
+ if (hasCategoryL2() != other.hasCategoryL2()) return false;
+ if (hasCategoryL2()) {
+ if (!getCategoryL2().equals(other.getCategoryL2())) return false;
+ }
+ if (hasCategoryL3() != other.hasCategoryL3()) return false;
+ if (hasCategoryL3()) {
+ if (!getCategoryL3().equals(other.getCategoryL3())) return false;
+ }
+ if (hasCategoryL4() != other.hasCategoryL4()) return false;
+ if (hasCategoryL4()) {
+ if (!getCategoryL4().equals(other.getCategoryL4())) return false;
+ }
+ if (hasCategoryL5() != other.hasCategoryL5()) return false;
+ if (hasCategoryL5()) {
+ if (!getCategoryL5().equals(other.getCategoryL5())) return false;
+ }
+ if (hasProductTypeL1() != other.hasProductTypeL1()) return false;
+ if (hasProductTypeL1()) {
+ if (!getProductTypeL1().equals(other.getProductTypeL1())) return false;
+ }
+ if (hasProductTypeL2() != other.hasProductTypeL2()) return false;
+ if (hasProductTypeL2()) {
+ if (!getProductTypeL2().equals(other.getProductTypeL2())) return false;
+ }
+ if (hasProductTypeL3() != other.hasProductTypeL3()) return false;
+ if (hasProductTypeL3()) {
+ if (!getProductTypeL3().equals(other.getProductTypeL3())) return false;
+ }
+ if (hasProductTypeL4() != other.hasProductTypeL4()) return false;
+ if (hasProductTypeL4()) {
+ if (!getProductTypeL4().equals(other.getProductTypeL4())) return false;
+ }
+ if (hasProductTypeL5() != other.hasProductTypeL5()) return false;
+ if (hasProductTypeL5()) {
+ if (!getProductTypeL5().equals(other.getProductTypeL5())) return false;
+ }
+ if (hasPrice() != other.hasPrice()) return false;
+ if (hasPrice()) {
+ if (!getPrice().equals(other.getPrice())) return false;
+ }
+ if (hasBenchmarkPrice() != other.hasBenchmarkPrice()) return false;
+ if (hasBenchmarkPrice()) {
+ if (!getBenchmarkPrice().equals(other.getBenchmarkPrice())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasReportCountryCode()) {
+ hash = (37 * hash) + REPORT_COUNTRY_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getReportCountryCode().hashCode();
+ }
+ if (hasId()) {
+ hash = (37 * hash) + ID_FIELD_NUMBER;
+ hash = (53 * hash) + getId().hashCode();
+ }
+ if (hasOfferId()) {
+ hash = (37 * hash) + OFFER_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getOfferId().hashCode();
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasBrand()) {
+ hash = (37 * hash) + BRAND_FIELD_NUMBER;
+ hash = (53 * hash) + getBrand().hashCode();
+ }
+ if (hasCategoryL1()) {
+ hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL1().hashCode();
+ }
+ if (hasCategoryL2()) {
+ hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL2().hashCode();
+ }
+ if (hasCategoryL3()) {
+ hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL3().hashCode();
+ }
+ if (hasCategoryL4()) {
+ hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL4().hashCode();
+ }
+ if (hasCategoryL5()) {
+ hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL5().hashCode();
+ }
+ if (hasProductTypeL1()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL1().hashCode();
+ }
+ if (hasProductTypeL2()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL2().hashCode();
+ }
+ if (hasProductTypeL3()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL3().hashCode();
+ }
+ if (hasProductTypeL4()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL4().hashCode();
+ }
+ if (hasProductTypeL5()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL5().hashCode();
+ }
+ if (hasPrice()) {
+ hash = (37 * hash) + PRICE_FIELD_NUMBER;
+ hash = (53 * hash) + getPrice().hashCode();
+ }
+ if (hasBenchmarkPrice()) {
+ hash = (37 * hash) + BENCHMARK_PRICE_FIELD_NUMBER;
+ hash = (53 * hash) + getBenchmarkPrice().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + * + * [Price competitiveness](https://support.google.com/merchants/answer/9626903) + * report. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ public boolean hasReportCountryCode() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return The reportCountryCode.
+ */
+ public java.lang.String getReportCountryCode() {
+ java.lang.Object ref = reportCountryCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ reportCountryCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ public com.google.protobuf.ByteString getReportCountryCodeBytes() {
+ java.lang.Object ref = reportCountryCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ reportCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @param value The reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportCountryCode() {
+ reportCountryCode_ = getDefaultInstance().getReportCountryCode();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @param value The bytes for reportCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportCountryCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ reportCountryCode_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object id_ = "";
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return Whether the id field is set.
+ */
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return The id.
+ */
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return The bytes for id.
+ */
+ public com.google.protobuf.ByteString getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @param value The id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ id_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearId() {
+ id_ = getDefaultInstance().getId();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @param value The bytes for id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ id_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return Whether the offerId field is set.
+ */
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The offerId.
+ */
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The bytes for offerId.
+ */
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @param value The offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ offerId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOfferId() {
+ offerId_ = getDefaultInstance().getOfferId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @param value The bytes for offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ offerId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return Whether the brand field is set.
+ */
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return The brand.
+ */
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return The bytes for brand.
+ */
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @param value The brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrand(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ brand_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBrand() {
+ brand_ = getDefaultInstance().getBrand();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @param value The bytes for brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ brand_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return The categoryL1.
+ */
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return The bytes for categoryL1.
+ */
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @param value The categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL1_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL1() {
+ categoryL1_ = getDefaultInstance().getCategoryL1();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @param value The bytes for categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL1_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return The categoryL2.
+ */
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return The bytes for categoryL2.
+ */
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @param value The categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL2_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL2() {
+ categoryL2_ = getDefaultInstance().getCategoryL2();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @param value The bytes for categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL2_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return The categoryL3.
+ */
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return The bytes for categoryL3.
+ */
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @param value The categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL3_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL3() {
+ categoryL3_ = getDefaultInstance().getCategoryL3();
+ bitField0_ = (bitField0_ & ~0x00000080);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @param value The bytes for categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL3_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return The categoryL4.
+ */
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return The bytes for categoryL4.
+ */
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @param value The categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL4_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL4() {
+ categoryL4_ = getDefaultInstance().getCategoryL4();
+ bitField0_ = (bitField0_ & ~0x00000100);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @param value The bytes for categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL4_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return The categoryL5.
+ */
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return The bytes for categoryL5.
+ */
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @param value The categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL5_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL5() {
+ categoryL5_ = getDefaultInstance().getCategoryL5();
+ bitField0_ = (bitField0_ & ~0x00000200);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @param value The bytes for categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL5_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return The productTypeL1.
+ */
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @param value The productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL1_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL1() {
+ productTypeL1_ = getDefaultInstance().getProductTypeL1();
+ bitField0_ = (bitField0_ & ~0x00000400);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @param value The bytes for productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL1_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return The productTypeL2.
+ */
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @param value The productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL2_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL2() {
+ productTypeL2_ = getDefaultInstance().getProductTypeL2();
+ bitField0_ = (bitField0_ & ~0x00000800);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @param value The bytes for productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL2_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return The productTypeL3.
+ */
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @param value The productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL3_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL3() {
+ productTypeL3_ = getDefaultInstance().getProductTypeL3();
+ bitField0_ = (bitField0_ & ~0x00001000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @param value The bytes for productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL3_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return The productTypeL4.
+ */
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @param value The productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL4_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL4() {
+ productTypeL4_ = getDefaultInstance().getProductTypeL4();
+ bitField0_ = (bitField0_ & ~0x00002000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @param value The bytes for productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL4_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return The productTypeL5.
+ */
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @param value The productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL5_ = value;
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL5() {
+ productTypeL5_ = getDefaultInstance().getProductTypeL5();
+ bitField0_ = (bitField0_ & ~0x00004000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @param value The bytes for productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL5_ = value;
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price price_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ priceBuilder_;
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ *
+ * @return Whether the price field is set.
+ */
+ public boolean hasPrice() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ *
+ * @return The price.
+ */
+ public com.google.shopping.type.Price getPrice() {
+ if (priceBuilder_ == null) {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ } else {
+ return priceBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ public Builder setPrice(com.google.shopping.type.Price value) {
+ if (priceBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ price_ = value;
+ } else {
+ priceBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) {
+ if (priceBuilder_ == null) {
+ price_ = builderForValue.build();
+ } else {
+ priceBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ public Builder mergePrice(com.google.shopping.type.Price value) {
+ if (priceBuilder_ == null) {
+ if (((bitField0_ & 0x00008000) != 0)
+ && price_ != null
+ && price_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getPriceBuilder().mergeFrom(value);
+ } else {
+ price_ = value;
+ }
+ } else {
+ priceBuilder_.mergeFrom(value);
+ }
+ if (price_ != null) {
+ bitField0_ |= 0x00008000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ public Builder clearPrice() {
+ bitField0_ = (bitField0_ & ~0x00008000);
+ price_ = null;
+ if (priceBuilder_ != null) {
+ priceBuilder_.dispose();
+ priceBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ public com.google.shopping.type.Price.Builder getPriceBuilder() {
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return getPriceFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() {
+ if (priceBuilder_ != null) {
+ return priceBuilder_.getMessageOrBuilder();
+ } else {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getPriceFieldBuilder() {
+ if (priceBuilder_ == null) {
+ priceBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getPrice(), getParentForChildren(), isClean());
+ price_ = null;
+ }
+ return priceBuilder_;
+ }
+
+ private com.google.shopping.type.Price benchmarkPrice_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ benchmarkPriceBuilder_;
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ *
+ * @return Whether the benchmarkPrice field is set.
+ */
+ public boolean hasBenchmarkPrice() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ *
+ * @return The benchmarkPrice.
+ */
+ public com.google.shopping.type.Price getBenchmarkPrice() {
+ if (benchmarkPriceBuilder_ == null) {
+ return benchmarkPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : benchmarkPrice_;
+ } else {
+ return benchmarkPriceBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ public Builder setBenchmarkPrice(com.google.shopping.type.Price value) {
+ if (benchmarkPriceBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ benchmarkPrice_ = value;
+ } else {
+ benchmarkPriceBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ public Builder setBenchmarkPrice(com.google.shopping.type.Price.Builder builderForValue) {
+ if (benchmarkPriceBuilder_ == null) {
+ benchmarkPrice_ = builderForValue.build();
+ } else {
+ benchmarkPriceBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ public Builder mergeBenchmarkPrice(com.google.shopping.type.Price value) {
+ if (benchmarkPriceBuilder_ == null) {
+ if (((bitField0_ & 0x00010000) != 0)
+ && benchmarkPrice_ != null
+ && benchmarkPrice_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getBenchmarkPriceBuilder().mergeFrom(value);
+ } else {
+ benchmarkPrice_ = value;
+ }
+ } else {
+ benchmarkPriceBuilder_.mergeFrom(value);
+ }
+ if (benchmarkPrice_ != null) {
+ bitField0_ |= 0x00010000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ public Builder clearBenchmarkPrice() {
+ bitField0_ = (bitField0_ & ~0x00010000);
+ benchmarkPrice_ = null;
+ if (benchmarkPriceBuilder_ != null) {
+ benchmarkPriceBuilder_.dispose();
+ benchmarkPriceBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ public com.google.shopping.type.Price.Builder getBenchmarkPriceBuilder() {
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return getBenchmarkPriceFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ public com.google.shopping.type.PriceOrBuilder getBenchmarkPriceOrBuilder() {
+ if (benchmarkPriceBuilder_ != null) {
+ return benchmarkPriceBuilder_.getMessageOrBuilder();
+ } else {
+ return benchmarkPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : benchmarkPrice_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getBenchmarkPriceFieldBuilder() {
+ if (benchmarkPriceBuilder_ == null) {
+ benchmarkPriceBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getBenchmarkPrice(), getParentForChildren(), isClean());
+ benchmarkPrice_ = null;
+ }
+ return benchmarkPriceBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView)
+ private static final com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return Whether the reportCountryCode field is set.
+ */
+ boolean hasReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return The reportCountryCode.
+ */
+ java.lang.String getReportCountryCode();
+
+ /**
+ *
+ *
+ * + * Country of the price benchmark. Represented in the ISO 3166 format. + * + * Required in the `SELECT` clause. + *+ * + *
optional string report_country_code = 1;
+ *
+ * @return The bytes for reportCountryCode.
+ */
+ com.google.protobuf.ByteString getReportCountryCodeBytes();
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return Whether the id field is set.
+ */
+ boolean hasId();
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return The id.
+ */
+ java.lang.String getId();
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 2;
+ *
+ * @return The bytes for id.
+ */
+ com.google.protobuf.ByteString getIdBytes();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return Whether the offerId field is set.
+ */
+ boolean hasOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The offerId.
+ */
+ java.lang.String getOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The bytes for offerId.
+ */
+ com.google.protobuf.ByteString getOfferIdBytes();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 4;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return Whether the brand field is set.
+ */
+ boolean hasBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return The brand.
+ */
+ java.lang.String getBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 5;
+ *
+ * @return The bytes for brand.
+ */
+ com.google.protobuf.ByteString getBrandBytes();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ boolean hasCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return The categoryL1.
+ */
+ java.lang.String getCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 6;
+ *
+ * @return The bytes for categoryL1.
+ */
+ com.google.protobuf.ByteString getCategoryL1Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ boolean hasCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return The categoryL2.
+ */
+ java.lang.String getCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 7;
+ *
+ * @return The bytes for categoryL2.
+ */
+ com.google.protobuf.ByteString getCategoryL2Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ boolean hasCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return The categoryL3.
+ */
+ java.lang.String getCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 8;
+ *
+ * @return The bytes for categoryL3.
+ */
+ com.google.protobuf.ByteString getCategoryL3Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ boolean hasCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return The categoryL4.
+ */
+ java.lang.String getCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 9;
+ *
+ * @return The bytes for categoryL4.
+ */
+ com.google.protobuf.ByteString getCategoryL4Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ boolean hasCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return The categoryL5.
+ */
+ java.lang.String getCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 10;
+ *
+ * @return The bytes for categoryL5.
+ */
+ com.google.protobuf.ByteString getCategoryL5Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ boolean hasProductTypeL1();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return The productTypeL1.
+ */
+ java.lang.String getProductTypeL1();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 11;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ com.google.protobuf.ByteString getProductTypeL1Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ boolean hasProductTypeL2();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return The productTypeL2.
+ */
+ java.lang.String getProductTypeL2();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 12;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ com.google.protobuf.ByteString getProductTypeL2Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ boolean hasProductTypeL3();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return The productTypeL3.
+ */
+ java.lang.String getProductTypeL3();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 13;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ com.google.protobuf.ByteString getProductTypeL3Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ boolean hasProductTypeL4();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return The productTypeL4.
+ */
+ java.lang.String getProductTypeL4();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 14;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ com.google.protobuf.ByteString getProductTypeL4Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ boolean hasProductTypeL5();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return The productTypeL5.
+ */
+ java.lang.String getProductTypeL5();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 15;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ com.google.protobuf.ByteString getProductTypeL5Bytes();
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ *
+ * @return Whether the price field is set.
+ */
+ boolean hasPrice();
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ *
+ * @return The price.
+ */
+ com.google.shopping.type.Price getPrice();
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 16;
+ */
+ com.google.shopping.type.PriceOrBuilder getPriceOrBuilder();
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ *
+ * @return Whether the benchmarkPrice field is set.
+ */
+ boolean hasBenchmarkPrice();
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ *
+ * @return The benchmarkPrice.
+ */
+ com.google.shopping.type.Price getBenchmarkPrice();
+
+ /**
+ *
+ *
+ * + * Latest available price benchmark for the product's catalog in the benchmark + * country. + *+ * + *
.google.shopping.type.Price benchmark_price = 17;
+ */
+ com.google.shopping.type.PriceOrBuilder getBenchmarkPriceOrBuilder();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductView.java
new file mode 100644
index 000000000000..8e98ee223565
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/PriceInsightsProductView.java
@@ -0,0 +1,5165 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + * + * [Price insights](https://support.google.com/merchants/answer/11916926) + * report. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceInsightsProductView} + */ +public final class PriceInsightsProductView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) + PriceInsightsProductViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PriceInsightsProductView.newBuilder() to construct. + private PriceInsightsProductView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private PriceInsightsProductView() { + id_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + effectiveness_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new PriceInsightsProductView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.class, + com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder.class); + } + + /** + * + * + *
+ * Predicted effectiveness bucket. + * + * Effectiveness indicates which products would benefit most from price + * changes. This rating takes into consideration the performance boost + * predicted by adjusting the sale price and the difference between your + * current price and the suggested price. Price suggestions with `HIGH` + * effectiveness are predicted to drive the largest increase in performance. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness} + */ + public enum Effectiveness implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Effectiveness is unknown. + *+ * + *
EFFECTIVENESS_UNSPECIFIED = 0;
+ */
+ EFFECTIVENESS_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Effectiveness is low. + *+ * + *
LOW = 1;
+ */
+ LOW(1),
+ /**
+ *
+ *
+ * + * Effectiveness is medium. + *+ * + *
MEDIUM = 2;
+ */
+ MEDIUM(2),
+ /**
+ *
+ *
+ * + * Effectiveness is high. + *+ * + *
HIGH = 3;
+ */
+ HIGH(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Effectiveness is unknown. + *+ * + *
EFFECTIVENESS_UNSPECIFIED = 0;
+ */
+ public static final int EFFECTIVENESS_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Effectiveness is low. + *+ * + *
LOW = 1;
+ */
+ public static final int LOW_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Effectiveness is medium. + *+ * + *
MEDIUM = 2;
+ */
+ public static final int MEDIUM_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * Effectiveness is high. + *+ * + *
HIGH = 3;
+ */
+ public static final int HIGH_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static Effectiveness valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static Effectiveness forNumber(int value) {
+ switch (value) {
+ case 0:
+ return EFFECTIVENESS_UNSPECIFIED;
+ case 1:
+ return LOW;
+ case 2:
+ return MEDIUM;
+ case 3:
+ return HIGH;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return Whether the id field is set.
+ */
+ @java.lang.Override
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The id.
+ */
+ @java.lang.Override
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The bytes for id.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int OFFER_ID_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return Whether the offerId field is set.
+ */
+ @java.lang.Override
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return The offerId.
+ */
+ @java.lang.Override
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return The bytes for offerId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int BRAND_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return Whether the brand field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return The brand.
+ */
+ @java.lang.Override
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return The bytes for brand.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L1_FIELD_NUMBER = 5;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return The categoryL1.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return The bytes for categoryL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L2_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return The categoryL2.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return The bytes for categoryL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L3_FIELD_NUMBER = 7;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return The categoryL3.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return The bytes for categoryL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L4_FIELD_NUMBER = 8;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return The categoryL4.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return The bytes for categoryL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L5_FIELD_NUMBER = 9;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return The categoryL5.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return The bytes for categoryL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 10;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return The productTypeL1.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 11;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return The productTypeL2.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 12;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return The productTypeL3.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 13;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return The productTypeL4.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 14;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return The productTypeL5.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRICE_FIELD_NUMBER = 15;
+ private com.google.shopping.type.Price price_;
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ *
+ * @return Whether the price field is set.
+ */
+ @java.lang.Override
+ public boolean hasPrice() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ *
+ * @return The price.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getPrice() {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+
+ public static final int SUGGESTED_PRICE_FIELD_NUMBER = 16;
+ private com.google.shopping.type.Price suggestedPrice_;
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ *
+ * @return Whether the suggestedPrice field is set.
+ */
+ @java.lang.Override
+ public boolean hasSuggestedPrice() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ *
+ * @return The suggestedPrice.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getSuggestedPrice() {
+ return suggestedPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : suggestedPrice_;
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getSuggestedPriceOrBuilder() {
+ return suggestedPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : suggestedPrice_;
+ }
+
+ public static final int PREDICTED_IMPRESSIONS_CHANGE_FRACTION_FIELD_NUMBER = 17;
+ private double predictedImpressionsChangeFraction_ = 0D;
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @return Whether the predictedImpressionsChangeFraction field is set.
+ */
+ @java.lang.Override
+ public boolean hasPredictedImpressionsChangeFraction() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @return The predictedImpressionsChangeFraction.
+ */
+ @java.lang.Override
+ public double getPredictedImpressionsChangeFraction() {
+ return predictedImpressionsChangeFraction_;
+ }
+
+ public static final int PREDICTED_CLICKS_CHANGE_FRACTION_FIELD_NUMBER = 18;
+ private double predictedClicksChangeFraction_ = 0D;
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @return Whether the predictedClicksChangeFraction field is set.
+ */
+ @java.lang.Override
+ public boolean hasPredictedClicksChangeFraction() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @return The predictedClicksChangeFraction.
+ */
+ @java.lang.Override
+ public double getPredictedClicksChangeFraction() {
+ return predictedClicksChangeFraction_;
+ }
+
+ public static final int PREDICTED_CONVERSIONS_CHANGE_FRACTION_FIELD_NUMBER = 19;
+ private double predictedConversionsChangeFraction_ = 0D;
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @return Whether the predictedConversionsChangeFraction field is set.
+ */
+ @java.lang.Override
+ public boolean hasPredictedConversionsChangeFraction() {
+ return ((bitField0_ & 0x00040000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @return The predictedConversionsChangeFraction.
+ */
+ @java.lang.Override
+ public double getPredictedConversionsChangeFraction() {
+ return predictedConversionsChangeFraction_;
+ }
+
+ public static final int EFFECTIVENESS_FIELD_NUMBER = 22;
+ private int effectiveness_ = 0;
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @return The enum numeric value on the wire for effectiveness.
+ */
+ @java.lang.Override
+ public int getEffectivenessValue() {
+ return effectiveness_;
+ }
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @return The effectiveness.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ getEffectiveness() {
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness result =
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ .forNumber(effectiveness_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ .UNRECOGNIZED
+ : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, offerId_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, title_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, brand_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 6, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 7, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL5_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 10, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 11, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 12, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ output.writeMessage(15, getPrice());
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ output.writeMessage(16, getSuggestedPrice());
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ output.writeDouble(17, predictedImpressionsChangeFraction_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ output.writeDouble(18, predictedClicksChangeFraction_);
+ }
+ if (((bitField0_ & 0x00040000) != 0)) {
+ output.writeDouble(19, predictedConversionsChangeFraction_);
+ }
+ if (effectiveness_
+ != com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ .EFFECTIVENESS_UNSPECIFIED
+ .getNumber()) {
+ output.writeEnum(22, effectiveness_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, offerId_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, title_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, brand_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL5_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(15, getPrice());
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getSuggestedPrice());
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeDoubleSize(
+ 17, predictedImpressionsChangeFraction_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeDoubleSize(
+ 18, predictedClicksChangeFraction_);
+ }
+ if (((bitField0_ & 0x00040000) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeDoubleSize(
+ 19, predictedConversionsChangeFraction_);
+ }
+ if (effectiveness_
+ != com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ .EFFECTIVENESS_UNSPECIFIED
+ .getNumber()) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(22, effectiveness_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView other =
+ (com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView) obj;
+
+ if (hasId() != other.hasId()) return false;
+ if (hasId()) {
+ if (!getId().equals(other.getId())) return false;
+ }
+ if (hasOfferId() != other.hasOfferId()) return false;
+ if (hasOfferId()) {
+ if (!getOfferId().equals(other.getOfferId())) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasBrand() != other.hasBrand()) return false;
+ if (hasBrand()) {
+ if (!getBrand().equals(other.getBrand())) return false;
+ }
+ if (hasCategoryL1() != other.hasCategoryL1()) return false;
+ if (hasCategoryL1()) {
+ if (!getCategoryL1().equals(other.getCategoryL1())) return false;
+ }
+ if (hasCategoryL2() != other.hasCategoryL2()) return false;
+ if (hasCategoryL2()) {
+ if (!getCategoryL2().equals(other.getCategoryL2())) return false;
+ }
+ if (hasCategoryL3() != other.hasCategoryL3()) return false;
+ if (hasCategoryL3()) {
+ if (!getCategoryL3().equals(other.getCategoryL3())) return false;
+ }
+ if (hasCategoryL4() != other.hasCategoryL4()) return false;
+ if (hasCategoryL4()) {
+ if (!getCategoryL4().equals(other.getCategoryL4())) return false;
+ }
+ if (hasCategoryL5() != other.hasCategoryL5()) return false;
+ if (hasCategoryL5()) {
+ if (!getCategoryL5().equals(other.getCategoryL5())) return false;
+ }
+ if (hasProductTypeL1() != other.hasProductTypeL1()) return false;
+ if (hasProductTypeL1()) {
+ if (!getProductTypeL1().equals(other.getProductTypeL1())) return false;
+ }
+ if (hasProductTypeL2() != other.hasProductTypeL2()) return false;
+ if (hasProductTypeL2()) {
+ if (!getProductTypeL2().equals(other.getProductTypeL2())) return false;
+ }
+ if (hasProductTypeL3() != other.hasProductTypeL3()) return false;
+ if (hasProductTypeL3()) {
+ if (!getProductTypeL3().equals(other.getProductTypeL3())) return false;
+ }
+ if (hasProductTypeL4() != other.hasProductTypeL4()) return false;
+ if (hasProductTypeL4()) {
+ if (!getProductTypeL4().equals(other.getProductTypeL4())) return false;
+ }
+ if (hasProductTypeL5() != other.hasProductTypeL5()) return false;
+ if (hasProductTypeL5()) {
+ if (!getProductTypeL5().equals(other.getProductTypeL5())) return false;
+ }
+ if (hasPrice() != other.hasPrice()) return false;
+ if (hasPrice()) {
+ if (!getPrice().equals(other.getPrice())) return false;
+ }
+ if (hasSuggestedPrice() != other.hasSuggestedPrice()) return false;
+ if (hasSuggestedPrice()) {
+ if (!getSuggestedPrice().equals(other.getSuggestedPrice())) return false;
+ }
+ if (hasPredictedImpressionsChangeFraction() != other.hasPredictedImpressionsChangeFraction())
+ return false;
+ if (hasPredictedImpressionsChangeFraction()) {
+ if (java.lang.Double.doubleToLongBits(getPredictedImpressionsChangeFraction())
+ != java.lang.Double.doubleToLongBits(other.getPredictedImpressionsChangeFraction()))
+ return false;
+ }
+ if (hasPredictedClicksChangeFraction() != other.hasPredictedClicksChangeFraction())
+ return false;
+ if (hasPredictedClicksChangeFraction()) {
+ if (java.lang.Double.doubleToLongBits(getPredictedClicksChangeFraction())
+ != java.lang.Double.doubleToLongBits(other.getPredictedClicksChangeFraction()))
+ return false;
+ }
+ if (hasPredictedConversionsChangeFraction() != other.hasPredictedConversionsChangeFraction())
+ return false;
+ if (hasPredictedConversionsChangeFraction()) {
+ if (java.lang.Double.doubleToLongBits(getPredictedConversionsChangeFraction())
+ != java.lang.Double.doubleToLongBits(other.getPredictedConversionsChangeFraction()))
+ return false;
+ }
+ if (effectiveness_ != other.effectiveness_) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasId()) {
+ hash = (37 * hash) + ID_FIELD_NUMBER;
+ hash = (53 * hash) + getId().hashCode();
+ }
+ if (hasOfferId()) {
+ hash = (37 * hash) + OFFER_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getOfferId().hashCode();
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasBrand()) {
+ hash = (37 * hash) + BRAND_FIELD_NUMBER;
+ hash = (53 * hash) + getBrand().hashCode();
+ }
+ if (hasCategoryL1()) {
+ hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL1().hashCode();
+ }
+ if (hasCategoryL2()) {
+ hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL2().hashCode();
+ }
+ if (hasCategoryL3()) {
+ hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL3().hashCode();
+ }
+ if (hasCategoryL4()) {
+ hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL4().hashCode();
+ }
+ if (hasCategoryL5()) {
+ hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL5().hashCode();
+ }
+ if (hasProductTypeL1()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL1().hashCode();
+ }
+ if (hasProductTypeL2()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL2().hashCode();
+ }
+ if (hasProductTypeL3()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL3().hashCode();
+ }
+ if (hasProductTypeL4()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL4().hashCode();
+ }
+ if (hasProductTypeL5()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL5().hashCode();
+ }
+ if (hasPrice()) {
+ hash = (37 * hash) + PRICE_FIELD_NUMBER;
+ hash = (53 * hash) + getPrice().hashCode();
+ }
+ if (hasSuggestedPrice()) {
+ hash = (37 * hash) + SUGGESTED_PRICE_FIELD_NUMBER;
+ hash = (53 * hash) + getSuggestedPrice().hashCode();
+ }
+ if (hasPredictedImpressionsChangeFraction()) {
+ hash = (37 * hash) + PREDICTED_IMPRESSIONS_CHANGE_FRACTION_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getPredictedImpressionsChangeFraction()));
+ }
+ if (hasPredictedClicksChangeFraction()) {
+ hash = (37 * hash) + PREDICTED_CLICKS_CHANGE_FRACTION_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getPredictedClicksChangeFraction()));
+ }
+ if (hasPredictedConversionsChangeFraction()) {
+ hash = (37 * hash) + PREDICTED_CONVERSIONS_CHANGE_FRACTION_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getPredictedConversionsChangeFraction()));
+ }
+ hash = (37 * hash) + EFFECTIVENESS_FIELD_NUMBER;
+ hash = (53 * hash) + effectiveness_;
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + * + * [Price insights](https://support.google.com/merchants/answer/11916926) + * report. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.PriceInsightsProductView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return Whether the id field is set.
+ */
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The id.
+ */
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The bytes for id.
+ */
+ public com.google.protobuf.ByteString getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @param value The id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearId() {
+ id_ = getDefaultInstance().getId();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @param value The bytes for id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return Whether the offerId field is set.
+ */
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return The offerId.
+ */
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return The bytes for offerId.
+ */
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @param value The offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ offerId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOfferId() {
+ offerId_ = getDefaultInstance().getOfferId();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @param value The bytes for offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ offerId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return Whether the brand field is set.
+ */
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return The brand.
+ */
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return The bytes for brand.
+ */
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @param value The brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrand(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ brand_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBrand() {
+ brand_ = getDefaultInstance().getBrand();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @param value The bytes for brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ brand_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return The categoryL1.
+ */
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return The bytes for categoryL1.
+ */
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @param value The categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL1_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL1() {
+ categoryL1_ = getDefaultInstance().getCategoryL1();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @param value The bytes for categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL1_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return The categoryL2.
+ */
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return The bytes for categoryL2.
+ */
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @param value The categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL2_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL2() {
+ categoryL2_ = getDefaultInstance().getCategoryL2();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @param value The bytes for categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL2_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return The categoryL3.
+ */
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return The bytes for categoryL3.
+ */
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @param value The categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL3_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL3() {
+ categoryL3_ = getDefaultInstance().getCategoryL3();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @param value The bytes for categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL3_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return The categoryL4.
+ */
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return The bytes for categoryL4.
+ */
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @param value The categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL4_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL4() {
+ categoryL4_ = getDefaultInstance().getCategoryL4();
+ bitField0_ = (bitField0_ & ~0x00000080);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @param value The bytes for categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL4_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return The categoryL5.
+ */
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return The bytes for categoryL5.
+ */
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @param value The categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL5_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL5() {
+ categoryL5_ = getDefaultInstance().getCategoryL5();
+ bitField0_ = (bitField0_ & ~0x00000100);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @param value The bytes for categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL5_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return The productTypeL1.
+ */
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @param value The productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL1_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL1() {
+ productTypeL1_ = getDefaultInstance().getProductTypeL1();
+ bitField0_ = (bitField0_ & ~0x00000200);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @param value The bytes for productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL1_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return The productTypeL2.
+ */
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @param value The productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL2_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL2() {
+ productTypeL2_ = getDefaultInstance().getProductTypeL2();
+ bitField0_ = (bitField0_ & ~0x00000400);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @param value The bytes for productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL2_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return The productTypeL3.
+ */
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @param value The productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL3_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL3() {
+ productTypeL3_ = getDefaultInstance().getProductTypeL3();
+ bitField0_ = (bitField0_ & ~0x00000800);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @param value The bytes for productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL3_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return The productTypeL4.
+ */
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @param value The productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL4_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL4() {
+ productTypeL4_ = getDefaultInstance().getProductTypeL4();
+ bitField0_ = (bitField0_ & ~0x00001000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @param value The bytes for productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL4_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return The productTypeL5.
+ */
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @param value The productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL5_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL5() {
+ productTypeL5_ = getDefaultInstance().getProductTypeL5();
+ bitField0_ = (bitField0_ & ~0x00002000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @param value The bytes for productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL5_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price price_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ priceBuilder_;
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ *
+ * @return Whether the price field is set.
+ */
+ public boolean hasPrice() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ *
+ * @return The price.
+ */
+ public com.google.shopping.type.Price getPrice() {
+ if (priceBuilder_ == null) {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ } else {
+ return priceBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ public Builder setPrice(com.google.shopping.type.Price value) {
+ if (priceBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ price_ = value;
+ } else {
+ priceBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) {
+ if (priceBuilder_ == null) {
+ price_ = builderForValue.build();
+ } else {
+ priceBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ public Builder mergePrice(com.google.shopping.type.Price value) {
+ if (priceBuilder_ == null) {
+ if (((bitField0_ & 0x00004000) != 0)
+ && price_ != null
+ && price_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getPriceBuilder().mergeFrom(value);
+ } else {
+ price_ = value;
+ }
+ } else {
+ priceBuilder_.mergeFrom(value);
+ }
+ if (price_ != null) {
+ bitField0_ |= 0x00004000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ public Builder clearPrice() {
+ bitField0_ = (bitField0_ & ~0x00004000);
+ price_ = null;
+ if (priceBuilder_ != null) {
+ priceBuilder_.dispose();
+ priceBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ public com.google.shopping.type.Price.Builder getPriceBuilder() {
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return getPriceFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() {
+ if (priceBuilder_ != null) {
+ return priceBuilder_.getMessageOrBuilder();
+ } else {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getPriceFieldBuilder() {
+ if (priceBuilder_ == null) {
+ priceBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getPrice(), getParentForChildren(), isClean());
+ price_ = null;
+ }
+ return priceBuilder_;
+ }
+
+ private com.google.shopping.type.Price suggestedPrice_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ suggestedPriceBuilder_;
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ *
+ * @return Whether the suggestedPrice field is set.
+ */
+ public boolean hasSuggestedPrice() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ *
+ * @return The suggestedPrice.
+ */
+ public com.google.shopping.type.Price getSuggestedPrice() {
+ if (suggestedPriceBuilder_ == null) {
+ return suggestedPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : suggestedPrice_;
+ } else {
+ return suggestedPriceBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ public Builder setSuggestedPrice(com.google.shopping.type.Price value) {
+ if (suggestedPriceBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ suggestedPrice_ = value;
+ } else {
+ suggestedPriceBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ public Builder setSuggestedPrice(com.google.shopping.type.Price.Builder builderForValue) {
+ if (suggestedPriceBuilder_ == null) {
+ suggestedPrice_ = builderForValue.build();
+ } else {
+ suggestedPriceBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ public Builder mergeSuggestedPrice(com.google.shopping.type.Price value) {
+ if (suggestedPriceBuilder_ == null) {
+ if (((bitField0_ & 0x00008000) != 0)
+ && suggestedPrice_ != null
+ && suggestedPrice_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getSuggestedPriceBuilder().mergeFrom(value);
+ } else {
+ suggestedPrice_ = value;
+ }
+ } else {
+ suggestedPriceBuilder_.mergeFrom(value);
+ }
+ if (suggestedPrice_ != null) {
+ bitField0_ |= 0x00008000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ public Builder clearSuggestedPrice() {
+ bitField0_ = (bitField0_ & ~0x00008000);
+ suggestedPrice_ = null;
+ if (suggestedPriceBuilder_ != null) {
+ suggestedPriceBuilder_.dispose();
+ suggestedPriceBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ public com.google.shopping.type.Price.Builder getSuggestedPriceBuilder() {
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return getSuggestedPriceFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ public com.google.shopping.type.PriceOrBuilder getSuggestedPriceOrBuilder() {
+ if (suggestedPriceBuilder_ != null) {
+ return suggestedPriceBuilder_.getMessageOrBuilder();
+ } else {
+ return suggestedPrice_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : suggestedPrice_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getSuggestedPriceFieldBuilder() {
+ if (suggestedPriceBuilder_ == null) {
+ suggestedPriceBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getSuggestedPrice(), getParentForChildren(), isClean());
+ suggestedPrice_ = null;
+ }
+ return suggestedPriceBuilder_;
+ }
+
+ private double predictedImpressionsChangeFraction_;
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @return Whether the predictedImpressionsChangeFraction field is set.
+ */
+ @java.lang.Override
+ public boolean hasPredictedImpressionsChangeFraction() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @return The predictedImpressionsChangeFraction.
+ */
+ @java.lang.Override
+ public double getPredictedImpressionsChangeFraction() {
+ return predictedImpressionsChangeFraction_;
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @param value The predictedImpressionsChangeFraction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPredictedImpressionsChangeFraction(double value) {
+
+ predictedImpressionsChangeFraction_ = value;
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPredictedImpressionsChangeFraction() {
+ bitField0_ = (bitField0_ & ~0x00010000);
+ predictedImpressionsChangeFraction_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double predictedClicksChangeFraction_;
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @return Whether the predictedClicksChangeFraction field is set.
+ */
+ @java.lang.Override
+ public boolean hasPredictedClicksChangeFraction() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @return The predictedClicksChangeFraction.
+ */
+ @java.lang.Override
+ public double getPredictedClicksChangeFraction() {
+ return predictedClicksChangeFraction_;
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @param value The predictedClicksChangeFraction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPredictedClicksChangeFraction(double value) {
+
+ predictedClicksChangeFraction_ = value;
+ bitField0_ |= 0x00020000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPredictedClicksChangeFraction() {
+ bitField0_ = (bitField0_ & ~0x00020000);
+ predictedClicksChangeFraction_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double predictedConversionsChangeFraction_;
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @return Whether the predictedConversionsChangeFraction field is set.
+ */
+ @java.lang.Override
+ public boolean hasPredictedConversionsChangeFraction() {
+ return ((bitField0_ & 0x00040000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @return The predictedConversionsChangeFraction.
+ */
+ @java.lang.Override
+ public double getPredictedConversionsChangeFraction() {
+ return predictedConversionsChangeFraction_;
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @param value The predictedConversionsChangeFraction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPredictedConversionsChangeFraction(double value) {
+
+ predictedConversionsChangeFraction_ = value;
+ bitField0_ |= 0x00040000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPredictedConversionsChangeFraction() {
+ bitField0_ = (bitField0_ & ~0x00040000);
+ predictedConversionsChangeFraction_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private int effectiveness_ = 0;
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @return The enum numeric value on the wire for effectiveness.
+ */
+ @java.lang.Override
+ public int getEffectivenessValue() {
+ return effectiveness_;
+ }
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @param value The enum numeric value on the wire for effectiveness to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEffectivenessValue(int value) {
+ effectiveness_ = value;
+ bitField0_ |= 0x00080000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @return The effectiveness.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ getEffectiveness() {
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness result =
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ .forNumber(effectiveness_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @param value The effectiveness to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEffectiveness(
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00080000;
+ effectiveness_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearEffectiveness() {
+ bitField0_ = (bitField0_ & ~0x00080000);
+ effectiveness_ = 0;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.PriceInsightsProductView)
+ private static final com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return Whether the id field is set.
+ */
+ boolean hasId();
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The id.
+ */
+ java.lang.String getId();
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Can be used to join data with the + * `product_view` table. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The bytes for id.
+ */
+ com.google.protobuf.ByteString getIdBytes();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return Whether the offerId field is set.
+ */
+ boolean hasOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return The offerId.
+ */
+ java.lang.String getOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 2;
+ *
+ * @return The bytes for offerId.
+ */
+ com.google.protobuf.ByteString getOfferIdBytes();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 3;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return Whether the brand field is set.
+ */
+ boolean hasBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return The brand.
+ */
+ java.lang.String getBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 4;
+ *
+ * @return The bytes for brand.
+ */
+ com.google.protobuf.ByteString getBrandBytes();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ boolean hasCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return The categoryL1.
+ */
+ java.lang.String getCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 5;
+ *
+ * @return The bytes for categoryL1.
+ */
+ com.google.protobuf.ByteString getCategoryL1Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ boolean hasCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return The categoryL2.
+ */
+ java.lang.String getCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 6;
+ *
+ * @return The bytes for categoryL2.
+ */
+ com.google.protobuf.ByteString getCategoryL2Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ boolean hasCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return The categoryL3.
+ */
+ java.lang.String getCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 7;
+ *
+ * @return The bytes for categoryL3.
+ */
+ com.google.protobuf.ByteString getCategoryL3Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ boolean hasCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return The categoryL4.
+ */
+ java.lang.String getCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 8;
+ *
+ * @return The bytes for categoryL4.
+ */
+ com.google.protobuf.ByteString getCategoryL4Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ boolean hasCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return The categoryL5.
+ */
+ java.lang.String getCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 9;
+ *
+ * @return The bytes for categoryL5.
+ */
+ com.google.protobuf.ByteString getCategoryL5Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ boolean hasProductTypeL1();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return The productTypeL1.
+ */
+ java.lang.String getProductTypeL1();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 10;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ com.google.protobuf.ByteString getProductTypeL1Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ boolean hasProductTypeL2();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return The productTypeL2.
+ */
+ java.lang.String getProductTypeL2();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 11;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ com.google.protobuf.ByteString getProductTypeL2Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ boolean hasProductTypeL3();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return The productTypeL3.
+ */
+ java.lang.String getProductTypeL3();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 12;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ com.google.protobuf.ByteString getProductTypeL3Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ boolean hasProductTypeL4();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return The productTypeL4.
+ */
+ java.lang.String getProductTypeL4();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 13;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ com.google.protobuf.ByteString getProductTypeL4Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ boolean hasProductTypeL5();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return The productTypeL5.
+ */
+ java.lang.String getProductTypeL5();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 14;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ com.google.protobuf.ByteString getProductTypeL5Bytes();
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ *
+ * @return Whether the price field is set.
+ */
+ boolean hasPrice();
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ *
+ * @return The price.
+ */
+ com.google.shopping.type.Price getPrice();
+
+ /**
+ *
+ *
+ * + * Current price of the product. + *+ * + *
.google.shopping.type.Price price = 15;
+ */
+ com.google.shopping.type.PriceOrBuilder getPriceOrBuilder();
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ *
+ * @return Whether the suggestedPrice field is set.
+ */
+ boolean hasSuggestedPrice();
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ *
+ * @return The suggestedPrice.
+ */
+ com.google.shopping.type.Price getSuggestedPrice();
+
+ /**
+ *
+ *
+ * + * Latest suggested price for the product. + *+ * + *
.google.shopping.type.Price suggested_price = 16;
+ */
+ com.google.shopping.type.PriceOrBuilder getSuggestedPriceOrBuilder();
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @return Whether the predictedImpressionsChangeFraction field is set.
+ */
+ boolean hasPredictedImpressionsChangeFraction();
+
+ /**
+ *
+ *
+ * + * Predicted change in impressions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in impressions. + *+ * + *
optional double predicted_impressions_change_fraction = 17;
+ *
+ * @return The predictedImpressionsChangeFraction.
+ */
+ double getPredictedImpressionsChangeFraction();
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @return Whether the predictedClicksChangeFraction field is set.
+ */
+ boolean hasPredictedClicksChangeFraction();
+
+ /**
+ *
+ *
+ * + * Predicted change in clicks as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in clicks. + *+ * + *
optional double predicted_clicks_change_fraction = 18;
+ *
+ * @return The predictedClicksChangeFraction.
+ */
+ double getPredictedClicksChangeFraction();
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @return Whether the predictedConversionsChangeFraction field is set.
+ */
+ boolean hasPredictedConversionsChangeFraction();
+
+ /**
+ *
+ *
+ * + * Predicted change in conversions as a fraction after introducing the + * suggested price compared to current active price. For example, 0.05 is a 5% + * predicted increase in conversions). + *+ * + *
optional double predicted_conversions_change_fraction = 19;
+ *
+ * @return The predictedConversionsChangeFraction.
+ */
+ double getPredictedConversionsChangeFraction();
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @return The enum numeric value on the wire for effectiveness.
+ */
+ int getEffectivenessValue();
+
+ /**
+ *
+ *
+ * + * The predicted effectiveness of applying the price suggestion, bucketed. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness effectiveness = 22;
+ *
+ *
+ * @return The effectiveness.
+ */
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Effectiveness
+ getEffectiveness();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceView.java
new file mode 100644
index 000000000000..3527fb35256a
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductPerformanceView.java
@@ -0,0 +1,6854 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + * + * Product performance data for your account, including performance metrics (for + * example, `clicks`) and dimensions according to which performance metrics are + * segmented (for example, `offer_id`). Values of product dimensions, such as + * `offer_id`, reflect the state of a product at the time of the impression. + * + * Segment fields cannot be selected in queries without also selecting at least + * one metric field. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductPerformanceView} + */ +public final class ProductPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductPerformanceView) + ProductPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ProductPerformanceView.newBuilder() to construct. + private ProductPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private ProductPerformanceView() { + marketingMethod_ = 0; + customerCountryCode_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + customLabel0_ = ""; + customLabel1_ = ""; + customLabel2_ = ""; + customLabel3_ = ""; + customLabel4_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ProductPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder.class); + } + + private int bitField0_; + public static final int MARKETING_METHOD_FIELD_NUMBER = 1; + private int marketingMethod_ = 0; + + /** + * + * + *
+ * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return Whether the marketingMethod field is set.
+ */
+ @java.lang.Override
+ public boolean hasMarketingMethod() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for marketingMethod.
+ */
+ @java.lang.Override
+ public int getMarketingMethodValue() {
+ return marketingMethod_;
+ }
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return The marketingMethod.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum
+ getMarketingMethod() {
+ com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum result =
+ com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum.forNumber(
+ marketingMethod_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int DATE_FIELD_NUMBER = 2;
+ private com.google.type.Date date_;
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int WEEK_FIELD_NUMBER = 3;
+ private com.google.type.Date week_;
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ *
+ * @return Whether the week field is set.
+ */
+ @java.lang.Override
+ public boolean hasWeek() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ *
+ * @return The week.
+ */
+ @java.lang.Override
+ public com.google.type.Date getWeek() {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getWeekOrBuilder() {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ }
+
+ public static final int CUSTOMER_COUNTRY_CODE_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object customerCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return Whether the customerCountryCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomerCountryCode() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return The customerCountryCode.
+ */
+ @java.lang.Override
+ public java.lang.String getCustomerCountryCode() {
+ java.lang.Object ref = customerCountryCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customerCountryCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return The bytes for customerCountryCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCustomerCountryCodeBytes() {
+ java.lang.Object ref = customerCountryCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customerCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int OFFER_ID_FIELD_NUMBER = 5;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return Whether the offerId field is set.
+ */
+ @java.lang.Override
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return The offerId.
+ */
+ @java.lang.Override
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return The bytes for offerId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int BRAND_FIELD_NUMBER = 7;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return Whether the brand field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return The brand.
+ */
+ @java.lang.Override
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return The bytes for brand.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L1_FIELD_NUMBER = 8;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The categoryL1.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The bytes for categoryL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L2_FIELD_NUMBER = 9;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The categoryL2.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The bytes for categoryL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L3_FIELD_NUMBER = 10;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The categoryL3.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The bytes for categoryL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L4_FIELD_NUMBER = 11;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The categoryL4.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The bytes for categoryL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L5_FIELD_NUMBER = 12;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The categoryL5.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The bytes for categoryL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 13;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return The productTypeL1.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 14;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return The productTypeL2.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 15;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return The productTypeL3.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 16;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return The productTypeL4.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 17;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return The productTypeL5.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CUSTOM_LABEL0_FIELD_NUMBER = 18;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object customLabel0_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return Whether the customLabel0 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomLabel0() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return The customLabel0.
+ */
+ @java.lang.Override
+ public java.lang.String getCustomLabel0() {
+ java.lang.Object ref = customLabel0_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel0_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return The bytes for customLabel0.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCustomLabel0Bytes() {
+ java.lang.Object ref = customLabel0_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel0_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CUSTOM_LABEL1_FIELD_NUMBER = 19;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object customLabel1_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return Whether the customLabel1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomLabel1() {
+ return ((bitField0_ & 0x00040000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return The customLabel1.
+ */
+ @java.lang.Override
+ public java.lang.String getCustomLabel1() {
+ java.lang.Object ref = customLabel1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return The bytes for customLabel1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCustomLabel1Bytes() {
+ java.lang.Object ref = customLabel1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CUSTOM_LABEL2_FIELD_NUMBER = 20;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object customLabel2_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return Whether the customLabel2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomLabel2() {
+ return ((bitField0_ & 0x00080000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return The customLabel2.
+ */
+ @java.lang.Override
+ public java.lang.String getCustomLabel2() {
+ java.lang.Object ref = customLabel2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return The bytes for customLabel2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCustomLabel2Bytes() {
+ java.lang.Object ref = customLabel2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CUSTOM_LABEL3_FIELD_NUMBER = 21;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object customLabel3_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return Whether the customLabel3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomLabel3() {
+ return ((bitField0_ & 0x00100000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return The customLabel3.
+ */
+ @java.lang.Override
+ public java.lang.String getCustomLabel3() {
+ java.lang.Object ref = customLabel3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return The bytes for customLabel3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCustomLabel3Bytes() {
+ java.lang.Object ref = customLabel3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CUSTOM_LABEL4_FIELD_NUMBER = 22;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object customLabel4_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return Whether the customLabel4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomLabel4() {
+ return ((bitField0_ & 0x00200000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return The customLabel4.
+ */
+ @java.lang.Override
+ public java.lang.String getCustomLabel4() {
+ java.lang.Object ref = customLabel4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return The bytes for customLabel4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCustomLabel4Bytes() {
+ java.lang.Object ref = customLabel4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CLICKS_FIELD_NUMBER = 23;
+ private long clicks_ = 0L;
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00400000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ public static final int IMPRESSIONS_FIELD_NUMBER = 24;
+ private long impressions_ = 0L;
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @return Whether the impressions field is set.
+ */
+ @java.lang.Override
+ public boolean hasImpressions() {
+ return ((bitField0_ & 0x00800000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @return The impressions.
+ */
+ @java.lang.Override
+ public long getImpressions() {
+ return impressions_;
+ }
+
+ public static final int CLICK_THROUGH_RATE_FIELD_NUMBER = 25;
+ private double clickThroughRate_ = 0D;
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @return Whether the clickThroughRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasClickThroughRate() {
+ return ((bitField0_ & 0x01000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @return The clickThroughRate.
+ */
+ @java.lang.Override
+ public double getClickThroughRate() {
+ return clickThroughRate_;
+ }
+
+ public static final int CONVERSIONS_FIELD_NUMBER = 26;
+ private double conversions_ = 0D;
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @return Whether the conversions field is set.
+ */
+ @java.lang.Override
+ public boolean hasConversions() {
+ return ((bitField0_ & 0x02000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @return The conversions.
+ */
+ @java.lang.Override
+ public double getConversions() {
+ return conversions_;
+ }
+
+ public static final int CONVERSION_VALUE_FIELD_NUMBER = 27;
+ private com.google.shopping.type.Price conversionValue_;
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ *
+ * @return Whether the conversionValue field is set.
+ */
+ @java.lang.Override
+ public boolean hasConversionValue() {
+ return ((bitField0_ & 0x04000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ *
+ * @return The conversionValue.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getConversionValue() {
+ return conversionValue_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : conversionValue_;
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getConversionValueOrBuilder() {
+ return conversionValue_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : conversionValue_;
+ }
+
+ public static final int CONVERSION_RATE_FIELD_NUMBER = 28;
+ private double conversionRate_ = 0D;
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @return Whether the conversionRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasConversionRate() {
+ return ((bitField0_ & 0x08000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @return The conversionRate.
+ */
+ @java.lang.Override
+ public double getConversionRate() {
+ return conversionRate_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeEnum(1, marketingMethod_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeMessage(2, getDate());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeMessage(3, getWeek());
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, customerCountryCode_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, offerId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 6, title_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 7, brand_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 11, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 12, categoryL5_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 15, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 16, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 17, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 18, customLabel0_);
+ }
+ if (((bitField0_ & 0x00040000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 19, customLabel1_);
+ }
+ if (((bitField0_ & 0x00080000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 20, customLabel2_);
+ }
+ if (((bitField0_ & 0x00100000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 21, customLabel3_);
+ }
+ if (((bitField0_ & 0x00200000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 22, customLabel4_);
+ }
+ if (((bitField0_ & 0x00400000) != 0)) {
+ output.writeInt64(23, clicks_);
+ }
+ if (((bitField0_ & 0x00800000) != 0)) {
+ output.writeInt64(24, impressions_);
+ }
+ if (((bitField0_ & 0x01000000) != 0)) {
+ output.writeDouble(25, clickThroughRate_);
+ }
+ if (((bitField0_ & 0x02000000) != 0)) {
+ output.writeDouble(26, conversions_);
+ }
+ if (((bitField0_ & 0x04000000) != 0)) {
+ output.writeMessage(27, getConversionValue());
+ }
+ if (((bitField0_ & 0x08000000) != 0)) {
+ output.writeDouble(28, conversionRate_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, marketingMethod_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDate());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getWeek());
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, customerCountryCode_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, offerId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, title_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, brand_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, categoryL5_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, customLabel0_);
+ }
+ if (((bitField0_ & 0x00040000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, customLabel1_);
+ }
+ if (((bitField0_ & 0x00080000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, customLabel2_);
+ }
+ if (((bitField0_ & 0x00100000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, customLabel3_);
+ }
+ if (((bitField0_ & 0x00200000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, customLabel4_);
+ }
+ if (((bitField0_ & 0x00400000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(23, clicks_);
+ }
+ if (((bitField0_ & 0x00800000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(24, impressions_);
+ }
+ if (((bitField0_ & 0x01000000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(25, clickThroughRate_);
+ }
+ if (((bitField0_ & 0x02000000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(26, conversions_);
+ }
+ if (((bitField0_ & 0x04000000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, getConversionValue());
+ }
+ if (((bitField0_ & 0x08000000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeDoubleSize(28, conversionRate_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView other =
+ (com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView) obj;
+
+ if (hasMarketingMethod() != other.hasMarketingMethod()) return false;
+ if (hasMarketingMethod()) {
+ if (marketingMethod_ != other.marketingMethod_) return false;
+ }
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasWeek() != other.hasWeek()) return false;
+ if (hasWeek()) {
+ if (!getWeek().equals(other.getWeek())) return false;
+ }
+ if (hasCustomerCountryCode() != other.hasCustomerCountryCode()) return false;
+ if (hasCustomerCountryCode()) {
+ if (!getCustomerCountryCode().equals(other.getCustomerCountryCode())) return false;
+ }
+ if (hasOfferId() != other.hasOfferId()) return false;
+ if (hasOfferId()) {
+ if (!getOfferId().equals(other.getOfferId())) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasBrand() != other.hasBrand()) return false;
+ if (hasBrand()) {
+ if (!getBrand().equals(other.getBrand())) return false;
+ }
+ if (hasCategoryL1() != other.hasCategoryL1()) return false;
+ if (hasCategoryL1()) {
+ if (!getCategoryL1().equals(other.getCategoryL1())) return false;
+ }
+ if (hasCategoryL2() != other.hasCategoryL2()) return false;
+ if (hasCategoryL2()) {
+ if (!getCategoryL2().equals(other.getCategoryL2())) return false;
+ }
+ if (hasCategoryL3() != other.hasCategoryL3()) return false;
+ if (hasCategoryL3()) {
+ if (!getCategoryL3().equals(other.getCategoryL3())) return false;
+ }
+ if (hasCategoryL4() != other.hasCategoryL4()) return false;
+ if (hasCategoryL4()) {
+ if (!getCategoryL4().equals(other.getCategoryL4())) return false;
+ }
+ if (hasCategoryL5() != other.hasCategoryL5()) return false;
+ if (hasCategoryL5()) {
+ if (!getCategoryL5().equals(other.getCategoryL5())) return false;
+ }
+ if (hasProductTypeL1() != other.hasProductTypeL1()) return false;
+ if (hasProductTypeL1()) {
+ if (!getProductTypeL1().equals(other.getProductTypeL1())) return false;
+ }
+ if (hasProductTypeL2() != other.hasProductTypeL2()) return false;
+ if (hasProductTypeL2()) {
+ if (!getProductTypeL2().equals(other.getProductTypeL2())) return false;
+ }
+ if (hasProductTypeL3() != other.hasProductTypeL3()) return false;
+ if (hasProductTypeL3()) {
+ if (!getProductTypeL3().equals(other.getProductTypeL3())) return false;
+ }
+ if (hasProductTypeL4() != other.hasProductTypeL4()) return false;
+ if (hasProductTypeL4()) {
+ if (!getProductTypeL4().equals(other.getProductTypeL4())) return false;
+ }
+ if (hasProductTypeL5() != other.hasProductTypeL5()) return false;
+ if (hasProductTypeL5()) {
+ if (!getProductTypeL5().equals(other.getProductTypeL5())) return false;
+ }
+ if (hasCustomLabel0() != other.hasCustomLabel0()) return false;
+ if (hasCustomLabel0()) {
+ if (!getCustomLabel0().equals(other.getCustomLabel0())) return false;
+ }
+ if (hasCustomLabel1() != other.hasCustomLabel1()) return false;
+ if (hasCustomLabel1()) {
+ if (!getCustomLabel1().equals(other.getCustomLabel1())) return false;
+ }
+ if (hasCustomLabel2() != other.hasCustomLabel2()) return false;
+ if (hasCustomLabel2()) {
+ if (!getCustomLabel2().equals(other.getCustomLabel2())) return false;
+ }
+ if (hasCustomLabel3() != other.hasCustomLabel3()) return false;
+ if (hasCustomLabel3()) {
+ if (!getCustomLabel3().equals(other.getCustomLabel3())) return false;
+ }
+ if (hasCustomLabel4() != other.hasCustomLabel4()) return false;
+ if (hasCustomLabel4()) {
+ if (!getCustomLabel4().equals(other.getCustomLabel4())) return false;
+ }
+ if (hasClicks() != other.hasClicks()) return false;
+ if (hasClicks()) {
+ if (getClicks() != other.getClicks()) return false;
+ }
+ if (hasImpressions() != other.hasImpressions()) return false;
+ if (hasImpressions()) {
+ if (getImpressions() != other.getImpressions()) return false;
+ }
+ if (hasClickThroughRate() != other.hasClickThroughRate()) return false;
+ if (hasClickThroughRate()) {
+ if (java.lang.Double.doubleToLongBits(getClickThroughRate())
+ != java.lang.Double.doubleToLongBits(other.getClickThroughRate())) return false;
+ }
+ if (hasConversions() != other.hasConversions()) return false;
+ if (hasConversions()) {
+ if (java.lang.Double.doubleToLongBits(getConversions())
+ != java.lang.Double.doubleToLongBits(other.getConversions())) return false;
+ }
+ if (hasConversionValue() != other.hasConversionValue()) return false;
+ if (hasConversionValue()) {
+ if (!getConversionValue().equals(other.getConversionValue())) return false;
+ }
+ if (hasConversionRate() != other.hasConversionRate()) return false;
+ if (hasConversionRate()) {
+ if (java.lang.Double.doubleToLongBits(getConversionRate())
+ != java.lang.Double.doubleToLongBits(other.getConversionRate())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasMarketingMethod()) {
+ hash = (37 * hash) + MARKETING_METHOD_FIELD_NUMBER;
+ hash = (53 * hash) + marketingMethod_;
+ }
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasWeek()) {
+ hash = (37 * hash) + WEEK_FIELD_NUMBER;
+ hash = (53 * hash) + getWeek().hashCode();
+ }
+ if (hasCustomerCountryCode()) {
+ hash = (37 * hash) + CUSTOMER_COUNTRY_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomerCountryCode().hashCode();
+ }
+ if (hasOfferId()) {
+ hash = (37 * hash) + OFFER_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getOfferId().hashCode();
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasBrand()) {
+ hash = (37 * hash) + BRAND_FIELD_NUMBER;
+ hash = (53 * hash) + getBrand().hashCode();
+ }
+ if (hasCategoryL1()) {
+ hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL1().hashCode();
+ }
+ if (hasCategoryL2()) {
+ hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL2().hashCode();
+ }
+ if (hasCategoryL3()) {
+ hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL3().hashCode();
+ }
+ if (hasCategoryL4()) {
+ hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL4().hashCode();
+ }
+ if (hasCategoryL5()) {
+ hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL5().hashCode();
+ }
+ if (hasProductTypeL1()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL1().hashCode();
+ }
+ if (hasProductTypeL2()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL2().hashCode();
+ }
+ if (hasProductTypeL3()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL3().hashCode();
+ }
+ if (hasProductTypeL4()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL4().hashCode();
+ }
+ if (hasProductTypeL5()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL5().hashCode();
+ }
+ if (hasCustomLabel0()) {
+ hash = (37 * hash) + CUSTOM_LABEL0_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomLabel0().hashCode();
+ }
+ if (hasCustomLabel1()) {
+ hash = (37 * hash) + CUSTOM_LABEL1_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomLabel1().hashCode();
+ }
+ if (hasCustomLabel2()) {
+ hash = (37 * hash) + CUSTOM_LABEL2_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomLabel2().hashCode();
+ }
+ if (hasCustomLabel3()) {
+ hash = (37 * hash) + CUSTOM_LABEL3_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomLabel3().hashCode();
+ }
+ if (hasCustomLabel4()) {
+ hash = (37 * hash) + CUSTOM_LABEL4_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomLabel4().hashCode();
+ }
+ if (hasClicks()) {
+ hash = (37 * hash) + CLICKS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks());
+ }
+ if (hasImpressions()) {
+ hash = (37 * hash) + IMPRESSIONS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getImpressions());
+ }
+ if (hasClickThroughRate()) {
+ hash = (37 * hash) + CLICK_THROUGH_RATE_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getClickThroughRate()));
+ }
+ if (hasConversions()) {
+ hash = (37 * hash) + CONVERSIONS_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getConversions()));
+ }
+ if (hasConversionValue()) {
+ hash = (37 * hash) + CONVERSION_VALUE_FIELD_NUMBER;
+ hash = (53 * hash) + getConversionValue().hashCode();
+ }
+ if (hasConversionRate()) {
+ hash = (37 * hash) + CONVERSION_RATE_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getConversionRate()));
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + * + * Product performance data for your account, including performance metrics (for + * example, `clicks`) and dimensions according to which performance metrics are + * segmented (for example, `offer_id`). Values of product dimensions, such as + * `offer_id`, reflect the state of a product at the time of the impression. + * + * Segment fields cannot be selected in queries without also selecting at least + * one metric field. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return Whether the marketingMethod field is set.
+ */
+ @java.lang.Override
+ public boolean hasMarketingMethod() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for marketingMethod.
+ */
+ @java.lang.Override
+ public int getMarketingMethodValue() {
+ return marketingMethod_;
+ }
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @param value The enum numeric value on the wire for marketingMethod to set.
+ * @return This builder for chaining.
+ */
+ public Builder setMarketingMethodValue(int value) {
+ marketingMethod_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return The marketingMethod.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum
+ getMarketingMethod() {
+ com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum result =
+ com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum
+ .forNumber(marketingMethod_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @param value The marketingMethod to set.
+ * @return This builder for chaining.
+ */
+ public Builder setMarketingMethod(
+ com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ marketingMethod_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearMarketingMethod() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ marketingMethod_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private com.google.type.Date date_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ dateBuilder_;
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private com.google.type.Date week_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ weekBuilder_;
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ *
+ * @return Whether the week field is set.
+ */
+ public boolean hasWeek() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ *
+ * @return The week.
+ */
+ public com.google.type.Date getWeek() {
+ if (weekBuilder_ == null) {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ } else {
+ return weekBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ public Builder setWeek(com.google.type.Date value) {
+ if (weekBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ week_ = value;
+ } else {
+ weekBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ public Builder setWeek(com.google.type.Date.Builder builderForValue) {
+ if (weekBuilder_ == null) {
+ week_ = builderForValue.build();
+ } else {
+ weekBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ public Builder mergeWeek(com.google.type.Date value) {
+ if (weekBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) != 0)
+ && week_ != null
+ && week_ != com.google.type.Date.getDefaultInstance()) {
+ getWeekBuilder().mergeFrom(value);
+ } else {
+ week_ = value;
+ }
+ } else {
+ weekBuilder_.mergeFrom(value);
+ }
+ if (week_ != null) {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ public Builder clearWeek() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ week_ = null;
+ if (weekBuilder_ != null) {
+ weekBuilder_.dispose();
+ weekBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ public com.google.type.Date.Builder getWeekBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getWeekFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ public com.google.type.DateOrBuilder getWeekOrBuilder() {
+ if (weekBuilder_ != null) {
+ return weekBuilder_.getMessageOrBuilder();
+ } else {
+ return week_ == null ? com.google.type.Date.getDefaultInstance() : week_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getWeekFieldBuilder() {
+ if (weekBuilder_ == null) {
+ weekBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getWeek(), getParentForChildren(), isClean());
+ week_ = null;
+ }
+ return weekBuilder_;
+ }
+
+ private java.lang.Object customerCountryCode_ = "";
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return Whether the customerCountryCode field is set.
+ */
+ public boolean hasCustomerCountryCode() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return The customerCountryCode.
+ */
+ public java.lang.String getCustomerCountryCode() {
+ java.lang.Object ref = customerCountryCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customerCountryCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return The bytes for customerCountryCode.
+ */
+ public com.google.protobuf.ByteString getCustomerCountryCodeBytes() {
+ java.lang.Object ref = customerCountryCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customerCountryCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @param value The customerCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomerCountryCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ customerCountryCode_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCustomerCountryCode() {
+ customerCountryCode_ = getDefaultInstance().getCustomerCountryCode();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @param value The bytes for customerCountryCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomerCountryCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ customerCountryCode_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return Whether the offerId field is set.
+ */
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return The offerId.
+ */
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return The bytes for offerId.
+ */
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @param value The offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ offerId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOfferId() {
+ offerId_ = getDefaultInstance().getOfferId();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @param value The bytes for offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ offerId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return Whether the brand field is set.
+ */
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return The brand.
+ */
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return The bytes for brand.
+ */
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @param value The brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrand(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ brand_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBrand() {
+ brand_ = getDefaultInstance().getBrand();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @param value The bytes for brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ brand_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The categoryL1.
+ */
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The bytes for categoryL1.
+ */
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @param value The categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL1_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL1() {
+ categoryL1_ = getDefaultInstance().getCategoryL1();
+ bitField0_ = (bitField0_ & ~0x00000080);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @param value The bytes for categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL1_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The categoryL2.
+ */
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The bytes for categoryL2.
+ */
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @param value The categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL2_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL2() {
+ categoryL2_ = getDefaultInstance().getCategoryL2();
+ bitField0_ = (bitField0_ & ~0x00000100);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @param value The bytes for categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL2_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The categoryL3.
+ */
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The bytes for categoryL3.
+ */
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @param value The categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL3_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL3() {
+ categoryL3_ = getDefaultInstance().getCategoryL3();
+ bitField0_ = (bitField0_ & ~0x00000200);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @param value The bytes for categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL3_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The categoryL4.
+ */
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The bytes for categoryL4.
+ */
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @param value The categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL4_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL4() {
+ categoryL4_ = getDefaultInstance().getCategoryL4();
+ bitField0_ = (bitField0_ & ~0x00000400);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @param value The bytes for categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL4_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The categoryL5.
+ */
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The bytes for categoryL5.
+ */
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @param value The categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL5_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL5() {
+ categoryL5_ = getDefaultInstance().getCategoryL5();
+ bitField0_ = (bitField0_ & ~0x00000800);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @param value The bytes for categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL5_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return The productTypeL1.
+ */
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @param value The productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL1_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL1() {
+ productTypeL1_ = getDefaultInstance().getProductTypeL1();
+ bitField0_ = (bitField0_ & ~0x00001000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @param value The bytes for productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL1_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return The productTypeL2.
+ */
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @param value The productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL2_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL2() {
+ productTypeL2_ = getDefaultInstance().getProductTypeL2();
+ bitField0_ = (bitField0_ & ~0x00002000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @param value The bytes for productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL2_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return The productTypeL3.
+ */
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @param value The productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL3_ = value;
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL3() {
+ productTypeL3_ = getDefaultInstance().getProductTypeL3();
+ bitField0_ = (bitField0_ & ~0x00004000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @param value The bytes for productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL3_ = value;
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return The productTypeL4.
+ */
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @param value The productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL4_ = value;
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL4() {
+ productTypeL4_ = getDefaultInstance().getProductTypeL4();
+ bitField0_ = (bitField0_ & ~0x00008000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @param value The bytes for productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL4_ = value;
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return The productTypeL5.
+ */
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @param value The productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL5_ = value;
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL5() {
+ productTypeL5_ = getDefaultInstance().getProductTypeL5();
+ bitField0_ = (bitField0_ & ~0x00010000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @param value The bytes for productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL5_ = value;
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object customLabel0_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return Whether the customLabel0 field is set.
+ */
+ public boolean hasCustomLabel0() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return The customLabel0.
+ */
+ public java.lang.String getCustomLabel0() {
+ java.lang.Object ref = customLabel0_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel0_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return The bytes for customLabel0.
+ */
+ public com.google.protobuf.ByteString getCustomLabel0Bytes() {
+ java.lang.Object ref = customLabel0_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel0_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @param value The customLabel0 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel0(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ customLabel0_ = value;
+ bitField0_ |= 0x00020000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCustomLabel0() {
+ customLabel0_ = getDefaultInstance().getCustomLabel0();
+ bitField0_ = (bitField0_ & ~0x00020000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @param value The bytes for customLabel0 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel0Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ customLabel0_ = value;
+ bitField0_ |= 0x00020000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object customLabel1_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return Whether the customLabel1 field is set.
+ */
+ public boolean hasCustomLabel1() {
+ return ((bitField0_ & 0x00040000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return The customLabel1.
+ */
+ public java.lang.String getCustomLabel1() {
+ java.lang.Object ref = customLabel1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return The bytes for customLabel1.
+ */
+ public com.google.protobuf.ByteString getCustomLabel1Bytes() {
+ java.lang.Object ref = customLabel1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @param value The customLabel1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ customLabel1_ = value;
+ bitField0_ |= 0x00040000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCustomLabel1() {
+ customLabel1_ = getDefaultInstance().getCustomLabel1();
+ bitField0_ = (bitField0_ & ~0x00040000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @param value The bytes for customLabel1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ customLabel1_ = value;
+ bitField0_ |= 0x00040000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object customLabel2_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return Whether the customLabel2 field is set.
+ */
+ public boolean hasCustomLabel2() {
+ return ((bitField0_ & 0x00080000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return The customLabel2.
+ */
+ public java.lang.String getCustomLabel2() {
+ java.lang.Object ref = customLabel2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return The bytes for customLabel2.
+ */
+ public com.google.protobuf.ByteString getCustomLabel2Bytes() {
+ java.lang.Object ref = customLabel2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @param value The customLabel2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ customLabel2_ = value;
+ bitField0_ |= 0x00080000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCustomLabel2() {
+ customLabel2_ = getDefaultInstance().getCustomLabel2();
+ bitField0_ = (bitField0_ & ~0x00080000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @param value The bytes for customLabel2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ customLabel2_ = value;
+ bitField0_ |= 0x00080000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object customLabel3_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return Whether the customLabel3 field is set.
+ */
+ public boolean hasCustomLabel3() {
+ return ((bitField0_ & 0x00100000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return The customLabel3.
+ */
+ public java.lang.String getCustomLabel3() {
+ java.lang.Object ref = customLabel3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return The bytes for customLabel3.
+ */
+ public com.google.protobuf.ByteString getCustomLabel3Bytes() {
+ java.lang.Object ref = customLabel3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @param value The customLabel3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ customLabel3_ = value;
+ bitField0_ |= 0x00100000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCustomLabel3() {
+ customLabel3_ = getDefaultInstance().getCustomLabel3();
+ bitField0_ = (bitField0_ & ~0x00100000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @param value The bytes for customLabel3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ customLabel3_ = value;
+ bitField0_ |= 0x00100000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object customLabel4_ = "";
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return Whether the customLabel4 field is set.
+ */
+ public boolean hasCustomLabel4() {
+ return ((bitField0_ & 0x00200000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return The customLabel4.
+ */
+ public java.lang.String getCustomLabel4() {
+ java.lang.Object ref = customLabel4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ customLabel4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return The bytes for customLabel4.
+ */
+ public com.google.protobuf.ByteString getCustomLabel4Bytes() {
+ java.lang.Object ref = customLabel4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ customLabel4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @param value The customLabel4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ customLabel4_ = value;
+ bitField0_ |= 0x00200000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCustomLabel4() {
+ customLabel4_ = getDefaultInstance().getCustomLabel4();
+ bitField0_ = (bitField0_ & ~0x00200000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @param value The bytes for customLabel4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCustomLabel4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ customLabel4_ = value;
+ bitField0_ |= 0x00200000;
+ onChanged();
+ return this;
+ }
+
+ private long clicks_;
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00400000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @param value The clicks to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClicks(long value) {
+
+ clicks_ = value;
+ bitField0_ |= 0x00400000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClicks() {
+ bitField0_ = (bitField0_ & ~0x00400000);
+ clicks_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long impressions_;
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @return Whether the impressions field is set.
+ */
+ @java.lang.Override
+ public boolean hasImpressions() {
+ return ((bitField0_ & 0x00800000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @return The impressions.
+ */
+ @java.lang.Override
+ public long getImpressions() {
+ return impressions_;
+ }
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @param value The impressions to set.
+ * @return This builder for chaining.
+ */
+ public Builder setImpressions(long value) {
+
+ impressions_ = value;
+ bitField0_ |= 0x00800000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearImpressions() {
+ bitField0_ = (bitField0_ & ~0x00800000);
+ impressions_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private double clickThroughRate_;
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @return Whether the clickThroughRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasClickThroughRate() {
+ return ((bitField0_ & 0x01000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @return The clickThroughRate.
+ */
+ @java.lang.Override
+ public double getClickThroughRate() {
+ return clickThroughRate_;
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @param value The clickThroughRate to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClickThroughRate(double value) {
+
+ clickThroughRate_ = value;
+ bitField0_ |= 0x01000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClickThroughRate() {
+ bitField0_ = (bitField0_ & ~0x01000000);
+ clickThroughRate_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double conversions_;
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @return Whether the conversions field is set.
+ */
+ @java.lang.Override
+ public boolean hasConversions() {
+ return ((bitField0_ & 0x02000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @return The conversions.
+ */
+ @java.lang.Override
+ public double getConversions() {
+ return conversions_;
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @param value The conversions to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConversions(double value) {
+
+ conversions_ = value;
+ bitField0_ |= 0x02000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearConversions() {
+ bitField0_ = (bitField0_ & ~0x02000000);
+ conversions_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price conversionValue_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ conversionValueBuilder_;
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ *
+ * @return Whether the conversionValue field is set.
+ */
+ public boolean hasConversionValue() {
+ return ((bitField0_ & 0x04000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ *
+ * @return The conversionValue.
+ */
+ public com.google.shopping.type.Price getConversionValue() {
+ if (conversionValueBuilder_ == null) {
+ return conversionValue_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : conversionValue_;
+ } else {
+ return conversionValueBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ public Builder setConversionValue(com.google.shopping.type.Price value) {
+ if (conversionValueBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ conversionValue_ = value;
+ } else {
+ conversionValueBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x04000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ public Builder setConversionValue(com.google.shopping.type.Price.Builder builderForValue) {
+ if (conversionValueBuilder_ == null) {
+ conversionValue_ = builderForValue.build();
+ } else {
+ conversionValueBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x04000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ public Builder mergeConversionValue(com.google.shopping.type.Price value) {
+ if (conversionValueBuilder_ == null) {
+ if (((bitField0_ & 0x04000000) != 0)
+ && conversionValue_ != null
+ && conversionValue_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getConversionValueBuilder().mergeFrom(value);
+ } else {
+ conversionValue_ = value;
+ }
+ } else {
+ conversionValueBuilder_.mergeFrom(value);
+ }
+ if (conversionValue_ != null) {
+ bitField0_ |= 0x04000000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ public Builder clearConversionValue() {
+ bitField0_ = (bitField0_ & ~0x04000000);
+ conversionValue_ = null;
+ if (conversionValueBuilder_ != null) {
+ conversionValueBuilder_.dispose();
+ conversionValueBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ public com.google.shopping.type.Price.Builder getConversionValueBuilder() {
+ bitField0_ |= 0x04000000;
+ onChanged();
+ return getConversionValueFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ public com.google.shopping.type.PriceOrBuilder getConversionValueOrBuilder() {
+ if (conversionValueBuilder_ != null) {
+ return conversionValueBuilder_.getMessageOrBuilder();
+ } else {
+ return conversionValue_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : conversionValue_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getConversionValueFieldBuilder() {
+ if (conversionValueBuilder_ == null) {
+ conversionValueBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getConversionValue(), getParentForChildren(), isClean());
+ conversionValue_ = null;
+ }
+ return conversionValueBuilder_;
+ }
+
+ private double conversionRate_;
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @return Whether the conversionRate field is set.
+ */
+ @java.lang.Override
+ public boolean hasConversionRate() {
+ return ((bitField0_ & 0x08000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @return The conversionRate.
+ */
+ @java.lang.Override
+ public double getConversionRate() {
+ return conversionRate_;
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @param value The conversionRate to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConversionRate(double value) {
+
+ conversionRate_ = value;
+ bitField0_ |= 0x08000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearConversionRate() {
+ bitField0_ = (bitField0_ & ~0x08000000);
+ conversionRate_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.ProductPerformanceView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductPerformanceView)
+ private static final com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return Whether the marketingMethod field is set.
+ */
+ boolean hasMarketingMethod();
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for marketingMethod.
+ */
+ int getMarketingMethodValue();
+
+ /**
+ *
+ *
+ * + * Marketing method to which metrics apply. Segment. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum marketing_method = 1;
+ *
+ *
+ * @return The marketingMethod.
+ */
+ com.google.shopping.merchant.reports.v1alpha.MarketingMethod.MarketingMethodEnum
+ getMarketingMethod();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 2;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ *
+ * @return Whether the week field is set.
+ */
+ boolean hasWeek();
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ *
+ * @return The week.
+ */
+ com.google.type.Date getWeek();
+
+ /**
+ *
+ *
+ * + * First day of the week (Monday) of the metrics date in the merchant + * timezone. Segment. + *+ * + *
.google.type.Date week = 3;
+ */
+ com.google.type.DateOrBuilder getWeekOrBuilder();
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return Whether the customerCountryCode field is set.
+ */
+ boolean hasCustomerCountryCode();
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return The customerCountryCode.
+ */
+ java.lang.String getCustomerCountryCode();
+
+ /**
+ *
+ *
+ * + * Code of the country where the customer is located at the time of the event. + * Represented in the ISO 3166 format. Segment. + * + * If the customer country cannot be determined, a special 'ZZ' code is + * returned. + *+ * + *
optional string customer_country_code = 4;
+ *
+ * @return The bytes for customerCountryCode.
+ */
+ com.google.protobuf.ByteString getCustomerCountryCodeBytes();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return Whether the offerId field is set.
+ */
+ boolean hasOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return The offerId.
+ */
+ java.lang.String getOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. Segment. + *+ * + *
optional string offer_id = 5;
+ *
+ * @return The bytes for offerId.
+ */
+ com.google.protobuf.ByteString getOfferIdBytes();
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. Segment. + *+ * + *
optional string title = 6;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return Whether the brand field is set.
+ */
+ boolean hasBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return The brand.
+ */
+ java.lang.String getBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. Segment. + *+ * + *
optional string brand = 7;
+ *
+ * @return The bytes for brand.
+ */
+ com.google.protobuf.ByteString getBrandBytes();
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ boolean hasCategoryL1();
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The categoryL1.
+ */
+ java.lang.String getCategoryL1();
+
+ /**
+ *
+ *
+ * + * [Product category (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l1 = 8;
+ *
+ * @return The bytes for categoryL1.
+ */
+ com.google.protobuf.ByteString getCategoryL1Bytes();
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ boolean hasCategoryL2();
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The categoryL2.
+ */
+ java.lang.String getCategoryL2();
+
+ /**
+ *
+ *
+ * + * [Product category (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l2 = 9;
+ *
+ * @return The bytes for categoryL2.
+ */
+ com.google.protobuf.ByteString getCategoryL2Bytes();
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ boolean hasCategoryL3();
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The categoryL3.
+ */
+ java.lang.String getCategoryL3();
+
+ /**
+ *
+ *
+ * + * [Product category (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l3 = 10;
+ *
+ * @return The bytes for categoryL3.
+ */
+ com.google.protobuf.ByteString getCategoryL3Bytes();
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ boolean hasCategoryL4();
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The categoryL4.
+ */
+ java.lang.String getCategoryL4();
+
+ /**
+ *
+ *
+ * + * [Product category (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l4 = 11;
+ *
+ * @return The bytes for categoryL4.
+ */
+ com.google.protobuf.ByteString getCategoryL4Bytes();
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ boolean hasCategoryL5();
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The categoryL5.
+ */
+ java.lang.String getCategoryL5();
+
+ /**
+ *
+ *
+ * + * [Product category (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in Google's product taxonomy. Segment. + *+ * + *
optional string category_l5 = 12;
+ *
+ * @return The bytes for categoryL5.
+ */
+ com.google.protobuf.ByteString getCategoryL5Bytes();
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ boolean hasProductTypeL1();
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return The productTypeL1.
+ */
+ java.lang.String getProductTypeL1();
+
+ /**
+ *
+ *
+ * + * [Product type (1st + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l1 = 13;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ com.google.protobuf.ByteString getProductTypeL1Bytes();
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ boolean hasProductTypeL2();
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return The productTypeL2.
+ */
+ java.lang.String getProductTypeL2();
+
+ /**
+ *
+ *
+ * + * [Product type (2nd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l2 = 14;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ com.google.protobuf.ByteString getProductTypeL2Bytes();
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ boolean hasProductTypeL3();
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return The productTypeL3.
+ */
+ java.lang.String getProductTypeL3();
+
+ /**
+ *
+ *
+ * + * [Product type (3rd + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l3 = 15;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ com.google.protobuf.ByteString getProductTypeL3Bytes();
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ boolean hasProductTypeL4();
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return The productTypeL4.
+ */
+ java.lang.String getProductTypeL4();
+
+ /**
+ *
+ *
+ * + * [Product type (4th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l4 = 16;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ com.google.protobuf.ByteString getProductTypeL4Bytes();
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ boolean hasProductTypeL5();
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return The productTypeL5.
+ */
+ java.lang.String getProductTypeL5();
+
+ /**
+ *
+ *
+ * + * [Product type (5th + * level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type) + * in merchant's own product taxonomy. Segment. + *+ * + *
optional string product_type_l5 = 17;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ com.google.protobuf.ByteString getProductTypeL5Bytes();
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return Whether the customLabel0 field is set.
+ */
+ boolean hasCustomLabel0();
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return The customLabel0.
+ */
+ java.lang.String getCustomLabel0();
+
+ /**
+ *
+ *
+ * + * Custom label 0 for custom grouping of products. Segment. + *+ * + *
optional string custom_label0 = 18;
+ *
+ * @return The bytes for customLabel0.
+ */
+ com.google.protobuf.ByteString getCustomLabel0Bytes();
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return Whether the customLabel1 field is set.
+ */
+ boolean hasCustomLabel1();
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return The customLabel1.
+ */
+ java.lang.String getCustomLabel1();
+
+ /**
+ *
+ *
+ * + * Custom label 1 for custom grouping of products. Segment. + *+ * + *
optional string custom_label1 = 19;
+ *
+ * @return The bytes for customLabel1.
+ */
+ com.google.protobuf.ByteString getCustomLabel1Bytes();
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return Whether the customLabel2 field is set.
+ */
+ boolean hasCustomLabel2();
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return The customLabel2.
+ */
+ java.lang.String getCustomLabel2();
+
+ /**
+ *
+ *
+ * + * Custom label 2 for custom grouping of products. Segment. + *+ * + *
optional string custom_label2 = 20;
+ *
+ * @return The bytes for customLabel2.
+ */
+ com.google.protobuf.ByteString getCustomLabel2Bytes();
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return Whether the customLabel3 field is set.
+ */
+ boolean hasCustomLabel3();
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return The customLabel3.
+ */
+ java.lang.String getCustomLabel3();
+
+ /**
+ *
+ *
+ * + * Custom label 3 for custom grouping of products. Segment. + *+ * + *
optional string custom_label3 = 21;
+ *
+ * @return The bytes for customLabel3.
+ */
+ com.google.protobuf.ByteString getCustomLabel3Bytes();
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return Whether the customLabel4 field is set.
+ */
+ boolean hasCustomLabel4();
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return The customLabel4.
+ */
+ java.lang.String getCustomLabel4();
+
+ /**
+ *
+ *
+ * + * Custom label 4 for custom grouping of products. Segment. + *+ * + *
optional string custom_label4 = 22;
+ *
+ * @return The bytes for customLabel4.
+ */
+ com.google.protobuf.ByteString getCustomLabel4Bytes();
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @return Whether the clicks field is set.
+ */
+ boolean hasClicks();
+
+ /**
+ *
+ *
+ * + * Number of clicks. Metric. + *+ * + *
optional int64 clicks = 23;
+ *
+ * @return The clicks.
+ */
+ long getClicks();
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @return Whether the impressions field is set.
+ */
+ boolean hasImpressions();
+
+ /**
+ *
+ *
+ * + * Number of times merchant's products are shown. Metric. + *+ * + *
optional int64 impressions = 24;
+ *
+ * @return The impressions.
+ */
+ long getImpressions();
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @return Whether the clickThroughRate field is set.
+ */
+ boolean hasClickThroughRate();
+
+ /**
+ *
+ *
+ * + * Click-through rate - the number of clicks merchant's products receive + * (clicks) divided by the number of times the products are shown + * (impressions). Metric. + *+ * + *
optional double click_through_rate = 25;
+ *
+ * @return The clickThroughRate.
+ */
+ double getClickThroughRate();
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @return Whether the conversions field is set.
+ */
+ boolean hasConversions();
+
+ /**
+ *
+ *
+ * + * Number of conversions attributed to the product, reported on the conversion + * date. Depending on the attribution model, a conversion might be distributed + * across multiple clicks, where each click gets its own credit assigned. This + * metric is a sum of all such credits. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversions = 26;
+ *
+ * @return The conversions.
+ */
+ double getConversions();
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ *
+ * @return Whether the conversionValue field is set.
+ */
+ boolean hasConversionValue();
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ *
+ * @return The conversionValue.
+ */
+ com.google.shopping.type.Price getConversionValue();
+
+ /**
+ *
+ *
+ * + * Value of conversions attributed to the product, reported on the conversion + * date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
.google.shopping.type.Price conversion_value = 27;
+ */
+ com.google.shopping.type.PriceOrBuilder getConversionValueOrBuilder();
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @return Whether the conversionRate field is set.
+ */
+ boolean hasConversionRate();
+
+ /**
+ *
+ *
+ * + * Number of conversions divided by the number of clicks, reported on the + * impression date. Metric. + * + * Available only for the `FREE` traffic source. + *+ * + *
optional double conversion_rate = 28;
+ *
+ * @return The conversionRate.
+ */
+ double getConversionRate();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductView.java
new file mode 100644
index 000000000000..8cd8acf30045
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ProductView.java
@@ -0,0 +1,14317 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + * + * Products in the current inventory. Products in this table are the same as in + * Products sub-API but not all product attributes from Products sub-API are + * available for query in this table. In contrast to Products sub-API, this + * table allows to filter the returned list of products by product attributes. + * To retrieve a single product by `id` or list all products, Products sub-API + * should be used. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView} + */ +public final class ProductView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView) + ProductViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ProductView.newBuilder() to construct. + private ProductView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private ProductView() { + id_ = ""; + channel_ = 0; + languageCode_ = ""; + feedLabel_ = ""; + offerId_ = ""; + title_ = ""; + brand_ = ""; + categoryL1_ = ""; + categoryL2_ = ""; + categoryL3_ = ""; + categoryL4_ = ""; + categoryL5_ = ""; + productTypeL1_ = ""; + productTypeL2_ = ""; + productTypeL3_ = ""; + productTypeL4_ = ""; + productTypeL5_ = ""; + condition_ = ""; + availability_ = ""; + shippingLabel_ = ""; + gtin_ = com.google.protobuf.LazyStringArrayList.emptyList(); + itemGroupId_ = ""; + thumbnailLink_ = ""; + aggregatedReportingContextStatus_ = 0; + itemIssues_ = java.util.Collections.emptyList(); + clickPotential_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ProductView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.Builder.class); + } + + /** + * + * + *
+ * Status of the product aggregated for all reporting contexts. + * + * Here's an example of how the aggregated status is computed: + * + * Free listings | Shopping ads | Status + * --------------|--------------|------------------------------ + * Approved | Approved | ELIGIBLE + * Approved | Pending | ELIGIBLE + * Approved | Disapproved | ELIGIBLE_LIMITED + * Pending | Pending | PENDING + * Disapproved | Disapproved | NOT_ELIGIBLE_OR_DISAPPROVED + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus} + */ + public enum AggregatedReportingContextStatus implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0;
+ */
+ AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Product is not eligible or is disapproved for all reporting contexts. + *+ * + *
NOT_ELIGIBLE_OR_DISAPPROVED = 1;
+ */
+ NOT_ELIGIBLE_OR_DISAPPROVED(1),
+ /**
+ *
+ *
+ * + * Product's status is pending in all reporting contexts. + *+ * + *
PENDING = 2;
+ */
+ PENDING(2),
+ /**
+ *
+ *
+ * + * Product is eligible for some (but not all) reporting contexts. + *+ * + *
ELIGIBLE_LIMITED = 3;
+ */
+ ELIGIBLE_LIMITED(3),
+ /**
+ *
+ *
+ * + * Product is eligible for all reporting contexts. + *+ * + *
ELIGIBLE = 4;
+ */
+ ELIGIBLE(4),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0;
+ */
+ public static final int AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Product is not eligible or is disapproved for all reporting contexts. + *+ * + *
NOT_ELIGIBLE_OR_DISAPPROVED = 1;
+ */
+ public static final int NOT_ELIGIBLE_OR_DISAPPROVED_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Product's status is pending in all reporting contexts. + *+ * + *
PENDING = 2;
+ */
+ public static final int PENDING_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * Product is eligible for some (but not all) reporting contexts. + *+ * + *
ELIGIBLE_LIMITED = 3;
+ */
+ public static final int ELIGIBLE_LIMITED_VALUE = 3;
+
+ /**
+ *
+ *
+ * + * Product is eligible for all reporting contexts. + *+ * + *
ELIGIBLE = 4;
+ */
+ public static final int ELIGIBLE_VALUE = 4;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static AggregatedReportingContextStatus valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static AggregatedReportingContextStatus forNumber(int value) {
+ switch (value) {
+ case 0:
+ return AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED;
+ case 1:
+ return NOT_ELIGIBLE_OR_DISAPPROVED;
+ case 2:
+ return PENDING;
+ case 3:
+ return ELIGIBLE_LIMITED;
+ case 4:
+ return ELIGIBLE;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * A product's [click + * potential](https://support.google.com/merchants/answer/188488) estimates + * its performance potential compared to highest performing products of the + * merchant. Click potential of a product helps merchants to prioritize which + * products to fix and helps them understand how products are performing + * against their potential. + *+ * + * Protobuf enum {@code google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential} + */ + public enum ClickPotential implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Unknown predicted clicks impact. + *+ * + *
CLICK_POTENTIAL_UNSPECIFIED = 0;
+ */
+ CLICK_POTENTIAL_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Potential to receive a low number of clicks compared to the highest + * performing products of the merchant. + *+ * + *
LOW = 1;
+ */
+ LOW(1),
+ /**
+ *
+ *
+ * + * Potential to receive a moderate number of clicks compared to the highest + * performing products of the merchant. + *+ * + *
MEDIUM = 2;
+ */
+ MEDIUM(2),
+ /**
+ *
+ *
+ * + * Potential to receive a similar number of clicks as the highest performing + * products of the merchant. + *+ * + *
HIGH = 3;
+ */
+ HIGH(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Unknown predicted clicks impact. + *+ * + *
CLICK_POTENTIAL_UNSPECIFIED = 0;
+ */
+ public static final int CLICK_POTENTIAL_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Potential to receive a low number of clicks compared to the highest + * performing products of the merchant. + *+ * + *
LOW = 1;
+ */
+ public static final int LOW_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Potential to receive a moderate number of clicks compared to the highest + * performing products of the merchant. + *+ * + *
MEDIUM = 2;
+ */
+ public static final int MEDIUM_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * Potential to receive a similar number of clicks as the highest performing + * products of the merchant. + *+ * + *
HIGH = 3;
+ */
+ public static final int HIGH_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ClickPotential valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static ClickPotential forNumber(int value) {
+ switch (value) {
+ case 0:
+ return CLICK_POTENTIAL_UNSPECIFIED;
+ case 1:
+ return LOW;
+ case 2:
+ return MEDIUM;
+ case 3:
+ return HIGH;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Item issue type. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ *
+ * @return Whether the type field is set.
+ */
+ boolean hasType();
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ *
+ * @return The type.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType getType();
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueTypeOrBuilder
+ getTypeOrBuilder();
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ *
+ * @return Whether the severity field is set.
+ */
+ boolean hasSeverity();
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ *
+ * @return The severity.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ getSeverity();
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverityOrBuilder
+ getSeverityOrBuilder();
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return Whether the resolution field is set.
+ */
+ boolean hasResolution();
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return The enum numeric value on the wire for resolution.
+ */
+ int getResolutionValue();
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return The resolution.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ getResolution();
+ }
+
+ /**
+ *
+ *
+ * + * Item issue associated with the product. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue} + */ + public static final class ItemIssue extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) + ItemIssueOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ItemIssue.newBuilder() to construct. + private ItemIssue(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private ItemIssue() { + resolution_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ItemIssue(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder.class); + } + + /** + * + * + *
+ * How to resolve the issue. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution} + */ + public enum ItemIssueResolution implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
ITEM_ISSUE_RESOLUTION_UNSPECIFIED = 0;
+ */
+ ITEM_ISSUE_RESOLUTION_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * The merchant has to fix the issue. + *+ * + *
MERCHANT_ACTION = 1;
+ */
+ MERCHANT_ACTION(1),
+ /**
+ *
+ *
+ * + * The issue will be resolved automatically (for example, image crawl) or + * through a Google review. No merchant action is required now. Resolution + * might lead to another issue (for example, if crawl fails). + *+ * + *
PENDING_PROCESSING = 2;
+ */
+ PENDING_PROCESSING(2),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
ITEM_ISSUE_RESOLUTION_UNSPECIFIED = 0;
+ */
+ public static final int ITEM_ISSUE_RESOLUTION_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * The merchant has to fix the issue. + *+ * + *
MERCHANT_ACTION = 1;
+ */
+ public static final int MERCHANT_ACTION_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * The issue will be resolved automatically (for example, image crawl) or + * through a Google review. No merchant action is required now. Resolution + * might lead to another issue (for example, if crawl fails). + *+ * + *
PENDING_PROCESSING = 2;
+ */
+ public static final int PENDING_PROCESSING_VALUE = 2;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ItemIssueResolution valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static ItemIssueResolution forNumber(int value) {
+ switch (value) {
+ case 0:
+ return ITEM_ISSUE_RESOLUTION_UNSPECIFIED;
+ case 1:
+ return MERCHANT_ACTION;
+ case 2:
+ return PENDING_PROCESSING;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return Whether the code field is set.
+ */
+ boolean hasCode();
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return The code.
+ */
+ java.lang.String getCode();
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return The bytes for code.
+ */
+ com.google.protobuf.ByteString getCodeBytes();
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return Whether the canonicalAttribute field is set.
+ */
+ boolean hasCanonicalAttribute();
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return The canonicalAttribute.
+ */
+ java.lang.String getCanonicalAttribute();
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return The bytes for canonicalAttribute.
+ */
+ com.google.protobuf.ByteString getCanonicalAttributeBytes();
+ }
+
+ /**
+ *
+ *
+ * + * Issue type. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType} + */ + public static final class ItemIssueType extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) + ItemIssueTypeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ItemIssueType.newBuilder() to construct. + private ItemIssueType(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private ItemIssueType() { + code_ = ""; + canonicalAttribute_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ItemIssueType(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType + .Builder.class); + } + + private int bitField0_; + public static final int CODE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object code_ = ""; + + /** + * + * + *
+ * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return Whether the code field is set.
+ */
+ @java.lang.Override
+ public boolean hasCode() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return The code.
+ */
+ @java.lang.Override
+ public java.lang.String getCode() {
+ java.lang.Object ref = code_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ code_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return The bytes for code.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCodeBytes() {
+ java.lang.Object ref = code_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ code_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CANONICAL_ATTRIBUTE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object canonicalAttribute_ = "";
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return Whether the canonicalAttribute field is set.
+ */
+ @java.lang.Override
+ public boolean hasCanonicalAttribute() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return The canonicalAttribute.
+ */
+ @java.lang.Override
+ public java.lang.String getCanonicalAttribute() {
+ java.lang.Object ref = canonicalAttribute_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ canonicalAttribute_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return The bytes for canonicalAttribute.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCanonicalAttributeBytes() {
+ java.lang.Object ref = canonicalAttribute_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ canonicalAttribute_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, code_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, canonicalAttribute_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, code_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, canonicalAttribute_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType other =
+ (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType) obj;
+
+ if (hasCode() != other.hasCode()) return false;
+ if (hasCode()) {
+ if (!getCode().equals(other.getCode())) return false;
+ }
+ if (hasCanonicalAttribute() != other.hasCanonicalAttribute()) return false;
+ if (hasCanonicalAttribute()) {
+ if (!getCanonicalAttribute().equals(other.getCanonicalAttribute())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasCode()) {
+ hash = (37 * hash) + CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getCode().hashCode();
+ }
+ if (hasCanonicalAttribute()) {
+ hash = (37 * hash) + CANONICAL_ATTRIBUTE_FIELD_NUMBER;
+ hash = (53 * hash) + getCanonicalAttribute().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Issue type. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return Whether the code field is set.
+ */
+ public boolean hasCode() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return The code.
+ */
+ public java.lang.String getCode() {
+ java.lang.Object ref = code_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ code_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return The bytes for code.
+ */
+ public com.google.protobuf.ByteString getCodeBytes() {
+ java.lang.Object ref = code_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ code_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @param value The code to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ code_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCode() {
+ code_ = getDefaultInstance().getCode();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Error code of the issue, equivalent to the `code` of [Product + * issues](https://developers.google.com/shopping-content/guides/product-issues). + *+ * + *
optional string code = 1;
+ *
+ * @param value The bytes for code to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ code_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object canonicalAttribute_ = "";
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return Whether the canonicalAttribute field is set.
+ */
+ public boolean hasCanonicalAttribute() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return The canonicalAttribute.
+ */
+ public java.lang.String getCanonicalAttribute() {
+ java.lang.Object ref = canonicalAttribute_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ canonicalAttribute_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return The bytes for canonicalAttribute.
+ */
+ public com.google.protobuf.ByteString getCanonicalAttributeBytes() {
+ java.lang.Object ref = canonicalAttribute_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ canonicalAttribute_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @param value The canonicalAttribute to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCanonicalAttribute(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ canonicalAttribute_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCanonicalAttribute() {
+ canonicalAttribute_ = getDefaultInstance().getCanonicalAttribute();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Canonical attribute name for attribute-specific issues. + *+ * + *
optional string canonical_attribute = 2;
+ *
+ * @param value The bytes for canonicalAttribute to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCanonicalAttributeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ canonicalAttribute_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType)
+ private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueType
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ java.util.List<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext>
+ getSeverityPerReportingContextList();
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ getSeverityPerReportingContext(int index);
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ int getSeverityPerReportingContextCount();
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ java.util.List<
+ ? extends
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder>
+ getSeverityPerReportingContextOrBuilderList();
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContextOrBuilder
+ getSeverityPerReportingContextOrBuilder(int index);
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return Whether the aggregatedSeverity field is set.
+ */
+ boolean hasAggregatedSeverity();
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for aggregatedSeverity.
+ */
+ int getAggregatedSeverityValue();
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return The aggregatedSeverity.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity
+ getAggregatedSeverity();
+ }
+
+ /**
+ *
+ *
+ * + * How the issue affects the serving of the product. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity} + */ + public static final class ItemIssueSeverity extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity) + ItemIssueSeverityOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ItemIssueSeverity.newBuilder() to construct. + private ItemIssueSeverity(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private ItemIssueSeverity() { + severityPerReportingContext_ = java.util.Collections.emptyList(); + aggregatedSeverity_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ItemIssueSeverity(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity + .Builder.class); + } + + /** + * + * + *
+ * Issue severity aggregated for all reporting contexts. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity} + */ + public enum AggregatedIssueSeverity implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED = 0;
+ */
+ AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Issue disapproves the product in at least one reporting context. + *+ * + *
DISAPPROVED = 1;
+ */
+ DISAPPROVED(1),
+ /**
+ *
+ *
+ * + * Issue demotes the product in all reporting contexts it affects. + *+ * + *
DEMOTED = 2;
+ */
+ DEMOTED(2),
+ /**
+ *
+ *
+ * + * Issue resolution is `PENDING_PROCESSING`. + *+ * + *
PENDING = 3;
+ */
+ PENDING(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED = 0;
+ */
+ public static final int AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Issue disapproves the product in at least one reporting context. + *+ * + *
DISAPPROVED = 1;
+ */
+ public static final int DISAPPROVED_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Issue demotes the product in all reporting contexts it affects. + *+ * + *
DEMOTED = 2;
+ */
+ public static final int DEMOTED_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * Issue resolution is `PENDING_PROCESSING`. + *+ * + *
PENDING = 3;
+ */
+ public static final int PENDING_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static AggregatedIssueSeverity valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static AggregatedIssueSeverity forNumber(int value) {
+ switch (value) {
+ case 0:
+ return AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED;
+ case 1:
+ return DISAPPROVED;
+ case 2:
+ return DEMOTED;
+ case 3:
+ return PENDING;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return Whether the reportingContext field is set.
+ */
+ boolean hasReportingContext();
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for reportingContext.
+ */
+ int getReportingContextValue();
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return The reportingContext.
+ */
+ com.google.shopping.type.ReportingContext.ReportingContextEnum getReportingContext();
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @return A list containing the disapprovedCountries.
+ */
+ java.util.List+ * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @return The count of disapprovedCountries.
+ */
+ int getDisapprovedCountriesCount();
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param index The index of the element to return.
+ * @return The disapprovedCountries at the given index.
+ */
+ java.lang.String getDisapprovedCountries(int index);
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the disapprovedCountries at the given index.
+ */
+ com.google.protobuf.ByteString getDisapprovedCountriesBytes(int index);
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @return A list containing the demotedCountries.
+ */
+ java.util.List+ * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @return The count of demotedCountries.
+ */
+ int getDemotedCountriesCount();
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param index The index of the element to return.
+ * @return The demotedCountries at the given index.
+ */
+ java.lang.String getDemotedCountries(int index);
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the demotedCountries at the given index.
+ */
+ com.google.protobuf.ByteString getDemotedCountriesBytes(int index);
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext} + */ + public static final class IssueSeverityPerReportingContext + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext) + IssueSeverityPerReportingContextOrBuilder { + private static final long serialVersionUID = 0L; + + // Use IssueSeverityPerReportingContext.newBuilder() to construct. + private IssueSeverityPerReportingContext( + com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private IssueSeverityPerReportingContext() { + reportingContext_ = 0; + disapprovedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + demotedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new IssueSeverityPerReportingContext(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.class, + com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue + .ItemIssueSeverity.IssueSeverityPerReportingContext.Builder.class); + } + + private int bitField0_; + public static final int REPORTING_CONTEXT_FIELD_NUMBER = 1; + private int reportingContext_ = 0; + + /** + * + * + *
+ * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return Whether the reportingContext field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportingContext() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for reportingContext.
+ */
+ @java.lang.Override
+ public int getReportingContextValue() {
+ return reportingContext_;
+ }
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return The reportingContext.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.ReportingContext.ReportingContextEnum
+ getReportingContext() {
+ com.google.shopping.type.ReportingContext.ReportingContextEnum result =
+ com.google.shopping.type.ReportingContext.ReportingContextEnum.forNumber(
+ reportingContext_);
+ return result == null
+ ? com.google.shopping.type.ReportingContext.ReportingContextEnum.UNRECOGNIZED
+ : result;
+ }
+
+ public static final int DISAPPROVED_COUNTRIES_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList disapprovedCountries_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @return A list containing the disapprovedCountries.
+ */
+ public com.google.protobuf.ProtocolStringList getDisapprovedCountriesList() {
+ return disapprovedCountries_;
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @return The count of disapprovedCountries.
+ */
+ public int getDisapprovedCountriesCount() {
+ return disapprovedCountries_.size();
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param index The index of the element to return.
+ * @return The disapprovedCountries at the given index.
+ */
+ public java.lang.String getDisapprovedCountries(int index) {
+ return disapprovedCountries_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the disapprovedCountries at the given index.
+ */
+ public com.google.protobuf.ByteString getDisapprovedCountriesBytes(int index) {
+ return disapprovedCountries_.getByteString(index);
+ }
+
+ public static final int DEMOTED_COUNTRIES_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList demotedCountries_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @return A list containing the demotedCountries.
+ */
+ public com.google.protobuf.ProtocolStringList getDemotedCountriesList() {
+ return demotedCountries_;
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @return The count of demotedCountries.
+ */
+ public int getDemotedCountriesCount() {
+ return demotedCountries_.size();
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param index The index of the element to return.
+ * @return The demotedCountries at the given index.
+ */
+ public java.lang.String getDemotedCountries(int index) {
+ return demotedCountries_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the demotedCountries at the given index.
+ */
+ public com.google.protobuf.ByteString getDemotedCountriesBytes(int index) {
+ return demotedCountries_.getByteString(index);
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeEnum(1, reportingContext_);
+ }
+ for (int i = 0; i < disapprovedCountries_.size(); i++) {
+ com.google.protobuf.GeneratedMessageV3.writeString(
+ output, 2, disapprovedCountries_.getRaw(i));
+ }
+ for (int i = 0; i < demotedCountries_.size(); i++) {
+ com.google.protobuf.GeneratedMessageV3.writeString(
+ output, 3, demotedCountries_.getRaw(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, reportingContext_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < disapprovedCountries_.size(); i++) {
+ dataSize += computeStringSizeNoTag(disapprovedCountries_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getDisapprovedCountriesList().size();
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < demotedCountries_.size(); i++) {
+ dataSize += computeStringSizeNoTag(demotedCountries_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getDemotedCountriesList().size();
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ other =
+ (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext)
+ obj;
+
+ if (hasReportingContext() != other.hasReportingContext()) return false;
+ if (hasReportingContext()) {
+ if (reportingContext_ != other.reportingContext_) return false;
+ }
+ if (!getDisapprovedCountriesList().equals(other.getDisapprovedCountriesList()))
+ return false;
+ if (!getDemotedCountriesList().equals(other.getDemotedCountriesList())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasReportingContext()) {
+ hash = (37 * hash) + REPORTING_CONTEXT_FIELD_NUMBER;
+ hash = (53 * hash) + reportingContext_;
+ }
+ if (getDisapprovedCountriesCount() > 0) {
+ hash = (37 * hash) + DISAPPROVED_COUNTRIES_FIELD_NUMBER;
+ hash = (53 * hash) + getDisapprovedCountriesList().hashCode();
+ }
+ if (getDemotedCountriesCount() > 0) {
+ hash = (37 * hash) + DEMOTED_COUNTRIES_FIELD_NUMBER;
+ hash = (53 * hash) + getDemotedCountriesList().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return Whether the reportingContext field is set.
+ */
+ @java.lang.Override
+ public boolean hasReportingContext() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for reportingContext.
+ */
+ @java.lang.Override
+ public int getReportingContextValue() {
+ return reportingContext_;
+ }
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @param value The enum numeric value on the wire for reportingContext to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportingContextValue(int value) {
+ reportingContext_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return The reportingContext.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.ReportingContext.ReportingContextEnum
+ getReportingContext() {
+ com.google.shopping.type.ReportingContext.ReportingContextEnum result =
+ com.google.shopping.type.ReportingContext.ReportingContextEnum.forNumber(
+ reportingContext_);
+ return result == null
+ ? com.google.shopping.type.ReportingContext.ReportingContextEnum.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @param value The reportingContext to set.
+ * @return This builder for chaining.
+ */
+ public Builder setReportingContext(
+ com.google.shopping.type.ReportingContext.ReportingContextEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ reportingContext_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Reporting context the issue applies to. + *+ * + *
+ * optional .google.shopping.type.ReportingContext.ReportingContextEnum reporting_context = 1;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearReportingContext() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ reportingContext_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList disapprovedCountries_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensureDisapprovedCountriesIsMutable() {
+ if (!disapprovedCountries_.isModifiable()) {
+ disapprovedCountries_ =
+ new com.google.protobuf.LazyStringArrayList(disapprovedCountries_);
+ }
+ bitField0_ |= 0x00000002;
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @return A list containing the disapprovedCountries.
+ */
+ public com.google.protobuf.ProtocolStringList getDisapprovedCountriesList() {
+ disapprovedCountries_.makeImmutable();
+ return disapprovedCountries_;
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @return The count of disapprovedCountries.
+ */
+ public int getDisapprovedCountriesCount() {
+ return disapprovedCountries_.size();
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param index The index of the element to return.
+ * @return The disapprovedCountries at the given index.
+ */
+ public java.lang.String getDisapprovedCountries(int index) {
+ return disapprovedCountries_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the disapprovedCountries at the given index.
+ */
+ public com.google.protobuf.ByteString getDisapprovedCountriesBytes(int index) {
+ return disapprovedCountries_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param index The index to set the value at.
+ * @param value The disapprovedCountries to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDisapprovedCountries(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureDisapprovedCountriesIsMutable();
+ disapprovedCountries_.set(index, value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param value The disapprovedCountries to add.
+ * @return This builder for chaining.
+ */
+ public Builder addDisapprovedCountries(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureDisapprovedCountriesIsMutable();
+ disapprovedCountries_.add(value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param values The disapprovedCountries to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllDisapprovedCountries(java.lang.Iterable+ * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDisapprovedCountries() {
+ disapprovedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of disapproved countries in the reporting context, represented + * in ISO 3166 format. + *+ * + *
repeated string disapproved_countries = 2;
+ *
+ * @param value The bytes of the disapprovedCountries to add.
+ * @return This builder for chaining.
+ */
+ public Builder addDisapprovedCountriesBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureDisapprovedCountriesIsMutable();
+ disapprovedCountries_.add(value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList demotedCountries_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensureDemotedCountriesIsMutable() {
+ if (!demotedCountries_.isModifiable()) {
+ demotedCountries_ = new com.google.protobuf.LazyStringArrayList(demotedCountries_);
+ }
+ bitField0_ |= 0x00000004;
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @return A list containing the demotedCountries.
+ */
+ public com.google.protobuf.ProtocolStringList getDemotedCountriesList() {
+ demotedCountries_.makeImmutable();
+ return demotedCountries_;
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @return The count of demotedCountries.
+ */
+ public int getDemotedCountriesCount() {
+ return demotedCountries_.size();
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param index The index of the element to return.
+ * @return The demotedCountries at the given index.
+ */
+ public java.lang.String getDemotedCountries(int index) {
+ return demotedCountries_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the demotedCountries at the given index.
+ */
+ public com.google.protobuf.ByteString getDemotedCountriesBytes(int index) {
+ return demotedCountries_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param index The index to set the value at.
+ * @param value The demotedCountries to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDemotedCountries(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureDemotedCountriesIsMutable();
+ demotedCountries_.set(index, value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param value The demotedCountries to add.
+ * @return This builder for chaining.
+ */
+ public Builder addDemotedCountries(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureDemotedCountriesIsMutable();
+ demotedCountries_.add(value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param values The demotedCountries to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllDemotedCountries(java.lang.Iterable+ * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDemotedCountries() {
+ demotedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of demoted countries in the reporting context, represented in + * ISO 3166 format. + *+ * + *
repeated string demoted_countries = 3;
+ *
+ * @param value The bytes of the demotedCountries to add.
+ * @return This builder for chaining.
+ */
+ public Builder addDemotedCountriesBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureDemotedCountriesIsMutable();
+ demotedCountries_.add(value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext)
+ private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ @java.lang.Override
+ public java.util.List<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext>
+ getSeverityPerReportingContextList() {
+ return severityPerReportingContext_;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ @java.lang.Override
+ public java.util.List<
+ ? extends
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder>
+ getSeverityPerReportingContextOrBuilderList() {
+ return severityPerReportingContext_;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ @java.lang.Override
+ public int getSeverityPerReportingContextCount() {
+ return severityPerReportingContext_.size();
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ getSeverityPerReportingContext(int index) {
+ return severityPerReportingContext_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContextOrBuilder
+ getSeverityPerReportingContextOrBuilder(int index) {
+ return severityPerReportingContext_.get(index);
+ }
+
+ public static final int AGGREGATED_SEVERITY_FIELD_NUMBER = 2;
+ private int aggregatedSeverity_ = 0;
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return Whether the aggregatedSeverity field is set.
+ */
+ @java.lang.Override
+ public boolean hasAggregatedSeverity() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for aggregatedSeverity.
+ */
+ @java.lang.Override
+ public int getAggregatedSeverityValue() {
+ return aggregatedSeverity_;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return The aggregatedSeverity.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity
+ getAggregatedSeverity() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity
+ result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity.forNumber(aggregatedSeverity_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity.UNRECOGNIZED
+ : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ for (int i = 0; i < severityPerReportingContext_.size(); i++) {
+ output.writeMessage(1, severityPerReportingContext_.get(i));
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeEnum(2, aggregatedSeverity_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < severityPerReportingContext_.size(); i++) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 1, severityPerReportingContext_.get(i));
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, aggregatedSeverity_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity other =
+ (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity)
+ obj;
+
+ if (!getSeverityPerReportingContextList()
+ .equals(other.getSeverityPerReportingContextList())) return false;
+ if (hasAggregatedSeverity() != other.hasAggregatedSeverity()) return false;
+ if (hasAggregatedSeverity()) {
+ if (aggregatedSeverity_ != other.aggregatedSeverity_) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getSeverityPerReportingContextCount() > 0) {
+ hash = (37 * hash) + SEVERITY_PER_REPORTING_CONTEXT_FIELD_NUMBER;
+ hash = (53 * hash) + getSeverityPerReportingContextList().hashCode();
+ }
+ if (hasAggregatedSeverity()) {
+ hash = (37 * hash) + AGGREGATED_SEVERITY_FIELD_NUMBER;
+ hash = (53 * hash) + aggregatedSeverity_;
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * How the issue affects the serving of the product. + *+ * + * Protobuf type {@code + * google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public java.util.List<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext>
+ getSeverityPerReportingContextList() {
+ if (severityPerReportingContextBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(severityPerReportingContext_);
+ } else {
+ return severityPerReportingContextBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public int getSeverityPerReportingContextCount() {
+ if (severityPerReportingContextBuilder_ == null) {
+ return severityPerReportingContext_.size();
+ } else {
+ return severityPerReportingContextBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ getSeverityPerReportingContext(int index) {
+ if (severityPerReportingContextBuilder_ == null) {
+ return severityPerReportingContext_.get(index);
+ } else {
+ return severityPerReportingContextBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder setSeverityPerReportingContext(
+ int index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ value) {
+ if (severityPerReportingContextBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSeverityPerReportingContextIsMutable();
+ severityPerReportingContext_.set(index, value);
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder setSeverityPerReportingContext(
+ int index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder
+ builderForValue) {
+ if (severityPerReportingContextBuilder_ == null) {
+ ensureSeverityPerReportingContextIsMutable();
+ severityPerReportingContext_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder addSeverityPerReportingContext(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ value) {
+ if (severityPerReportingContextBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSeverityPerReportingContextIsMutable();
+ severityPerReportingContext_.add(value);
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder addSeverityPerReportingContext(
+ int index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext
+ value) {
+ if (severityPerReportingContextBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSeverityPerReportingContextIsMutable();
+ severityPerReportingContext_.add(index, value);
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder addSeverityPerReportingContext(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder
+ builderForValue) {
+ if (severityPerReportingContextBuilder_ == null) {
+ ensureSeverityPerReportingContextIsMutable();
+ severityPerReportingContext_.add(builderForValue.build());
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder addSeverityPerReportingContext(
+ int index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder
+ builderForValue) {
+ if (severityPerReportingContextBuilder_ == null) {
+ ensureSeverityPerReportingContextIsMutable();
+ severityPerReportingContext_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder addAllSeverityPerReportingContext(
+ java.lang.Iterable<
+ ? extends
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext>
+ values) {
+ if (severityPerReportingContextBuilder_ == null) {
+ ensureSeverityPerReportingContextIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, severityPerReportingContext_);
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder clearSeverityPerReportingContext() {
+ if (severityPerReportingContextBuilder_ == null) {
+ severityPerReportingContext_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public Builder removeSeverityPerReportingContext(int index) {
+ if (severityPerReportingContextBuilder_ == null) {
+ ensureSeverityPerReportingContextIsMutable();
+ severityPerReportingContext_.remove(index);
+ onChanged();
+ } else {
+ severityPerReportingContextBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder
+ getSeverityPerReportingContextBuilder(int index) {
+ return getSeverityPerReportingContextFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContextOrBuilder
+ getSeverityPerReportingContextOrBuilder(int index) {
+ if (severityPerReportingContextBuilder_ == null) {
+ return severityPerReportingContext_.get(index);
+ } else {
+ return severityPerReportingContextBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public java.util.List<
+ ? extends
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder>
+ getSeverityPerReportingContextOrBuilderList() {
+ if (severityPerReportingContextBuilder_ != null) {
+ return severityPerReportingContextBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(severityPerReportingContext_);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder
+ addSeverityPerReportingContextBuilder() {
+ return getSeverityPerReportingContextFieldBuilder()
+ .addBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder
+ addSeverityPerReportingContextBuilder(int index) {
+ return getSeverityPerReportingContextFieldBuilder()
+ .addBuilder(
+ index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * Issue severity per reporting context. + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.IssueSeverityPerReportingContext severity_per_reporting_context = 1;
+ *
+ */
+ public java.util.List<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder>
+ getSeverityPerReportingContextBuilderList() {
+ return getSeverityPerReportingContextFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContext.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .IssueSeverityPerReportingContextOrBuilder>
+ getSeverityPerReportingContextFieldBuilder() {
+ if (severityPerReportingContextBuilder_ == null) {
+ severityPerReportingContextBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContext.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.IssueSeverityPerReportingContextOrBuilder>(
+ severityPerReportingContext_,
+ ((bitField0_ & 0x00000001) != 0),
+ getParentForChildren(),
+ isClean());
+ severityPerReportingContext_ = null;
+ }
+ return severityPerReportingContextBuilder_;
+ }
+
+ private int aggregatedSeverity_ = 0;
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return Whether the aggregatedSeverity field is set.
+ */
+ @java.lang.Override
+ public boolean hasAggregatedSeverity() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return The enum numeric value on the wire for aggregatedSeverity.
+ */
+ @java.lang.Override
+ public int getAggregatedSeverityValue() {
+ return aggregatedSeverity_;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @param value The enum numeric value on the wire for aggregatedSeverity to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAggregatedSeverityValue(int value) {
+ aggregatedSeverity_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return The aggregatedSeverity.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity
+ getAggregatedSeverity() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity
+ result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.AggregatedIssueSeverity.forNumber(aggregatedSeverity_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @param value The aggregatedSeverity to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAggregatedSeverity(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .AggregatedIssueSeverity
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ aggregatedSeverity_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated severity of the issue for all reporting contexts it affects. + * + * **This field can be used for filtering the results.** + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverity aggregated_severity = 2;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearAggregatedSeverity() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ aggregatedSeverity_ = 0;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity)
+ private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Item issue type. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ *
+ * @return Whether the type field is set.
+ */
+ @java.lang.Override
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ *
+ * @return The type.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ getType() {
+ return type_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ .getDefaultInstance()
+ : type_;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueTypeOrBuilder
+ getTypeOrBuilder() {
+ return type_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ .getDefaultInstance()
+ : type_;
+ }
+
+ public static final int SEVERITY_FIELD_NUMBER = 2;
+ private com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ severity_;
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ *
+ * @return Whether the severity field is set.
+ */
+ @java.lang.Override
+ public boolean hasSeverity() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ *
+ * @return The severity.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ getSeverity() {
+ return severity_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .getDefaultInstance()
+ : severity_;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverityOrBuilder
+ getSeverityOrBuilder() {
+ return severity_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .getDefaultInstance()
+ : severity_;
+ }
+
+ public static final int RESOLUTION_FIELD_NUMBER = 3;
+ private int resolution_ = 0;
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return Whether the resolution field is set.
+ */
+ @java.lang.Override
+ public boolean hasResolution() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return The enum numeric value on the wire for resolution.
+ */
+ @java.lang.Override
+ public int getResolutionValue() {
+ return resolution_;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return The resolution.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ getResolution() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ .forNumber(resolution_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ .UNRECOGNIZED
+ : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getType());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeMessage(2, getSeverity());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeEnum(3, resolution_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getType());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSeverity());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, resolution_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue other =
+ (com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue) obj;
+
+ if (hasType() != other.hasType()) return false;
+ if (hasType()) {
+ if (!getType().equals(other.getType())) return false;
+ }
+ if (hasSeverity() != other.hasSeverity()) return false;
+ if (hasSeverity()) {
+ if (!getSeverity().equals(other.getSeverity())) return false;
+ }
+ if (hasResolution() != other.hasResolution()) return false;
+ if (hasResolution()) {
+ if (resolution_ != other.resolution_) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasType()) {
+ hash = (37 * hash) + TYPE_FIELD_NUMBER;
+ hash = (53 * hash) + getType().hashCode();
+ }
+ if (hasSeverity()) {
+ hash = (37 * hash) + SEVERITY_FIELD_NUMBER;
+ hash = (53 * hash) + getSeverity().hashCode();
+ }
+ if (hasResolution()) {
+ hash = (37 * hash) + RESOLUTION_FIELD_NUMBER;
+ hash = (53 * hash) + resolution_;
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue associated with the product. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ *
+ * @return Whether the type field is set.
+ */
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ *
+ * @return The type.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ getType() {
+ if (typeBuilder_ == null) {
+ return type_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ .getDefaultInstance()
+ : type_;
+ } else {
+ return typeBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ public Builder setType(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType value) {
+ if (typeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ type_ = value;
+ } else {
+ typeBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ public Builder setType(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType.Builder
+ builderForValue) {
+ if (typeBuilder_ == null) {
+ type_ = builderForValue.build();
+ } else {
+ typeBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ public Builder mergeType(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType value) {
+ if (typeBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && type_ != null
+ && type_
+ != com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueType.getDefaultInstance()) {
+ getTypeBuilder().mergeFrom(value);
+ } else {
+ type_ = value;
+ }
+ } else {
+ typeBuilder_.mergeFrom(value);
+ }
+ if (type_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ public Builder clearType() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ type_ = null;
+ if (typeBuilder_ != null) {
+ typeBuilder_.dispose();
+ typeBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ .Builder
+ getTypeBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getTypeFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueTypeOrBuilder
+ getTypeOrBuilder() {
+ if (typeBuilder_ != null) {
+ return typeBuilder_.getMessageOrBuilder();
+ } else {
+ return type_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ .getDefaultInstance()
+ : type_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Item issue type. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType type = 1;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueTypeOrBuilder>
+ getTypeFieldBuilder() {
+ if (typeBuilder_ == null) {
+ typeBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueTypeOrBuilder>(getType(), getParentForChildren(), isClean());
+ type_ = null;
+ }
+ return typeBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ severity_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverityOrBuilder>
+ severityBuilder_;
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ *
+ * @return Whether the severity field is set.
+ */
+ public boolean hasSeverity() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ *
+ * @return The severity.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ getSeverity() {
+ if (severityBuilder_ == null) {
+ return severity_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .getDefaultInstance()
+ : severity_;
+ } else {
+ return severityBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ public Builder setSeverity(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ value) {
+ if (severityBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ severity_ = value;
+ } else {
+ severityBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ public Builder setSeverity(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .Builder
+ builderForValue) {
+ if (severityBuilder_ == null) {
+ severity_ = builderForValue.build();
+ } else {
+ severityBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ public Builder mergeSeverity(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ value) {
+ if (severityBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)
+ && severity_ != null
+ && severity_
+ != com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.getDefaultInstance()) {
+ getSeverityBuilder().mergeFrom(value);
+ } else {
+ severity_ = value;
+ }
+ } else {
+ severityBuilder_.mergeFrom(value);
+ }
+ if (severity_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ public Builder clearSeverity() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ severity_ = null;
+ if (severityBuilder_ != null) {
+ severityBuilder_.dispose();
+ severityBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .Builder
+ getSeverityBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getSeverityFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverityOrBuilder
+ getSeverityOrBuilder() {
+ if (severityBuilder_ != null) {
+ return severityBuilder_.getMessageOrBuilder();
+ } else {
+ return severity_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .getDefaultInstance()
+ : severity_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Item issue severity. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity severity = 2;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverityOrBuilder>
+ getSeverityFieldBuilder() {
+ if (severityBuilder_ == null) {
+ severityBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverity.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueSeverityOrBuilder>(
+ getSeverity(), getParentForChildren(), isClean());
+ severity_ = null;
+ }
+ return severityBuilder_;
+ }
+
+ private int resolution_ = 0;
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return Whether the resolution field is set.
+ */
+ @java.lang.Override
+ public boolean hasResolution() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return The enum numeric value on the wire for resolution.
+ */
+ @java.lang.Override
+ public int getResolutionValue() {
+ return resolution_;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @param value The enum numeric value on the wire for resolution to set.
+ * @return This builder for chaining.
+ */
+ public Builder setResolutionValue(int value) {
+ resolution_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return The resolution.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ getResolution() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .ItemIssueResolution.forNumber(resolution_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @param value The resolution to set.
+ * @return This builder for chaining.
+ */
+ public Builder setResolution(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ resolution_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item issue resolution. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueResolution resolution = 3;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearResolution() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ resolution_ = 0;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue)
+ private static final com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return Whether the id field is set.
+ */
+ @java.lang.Override
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The id.
+ */
+ @java.lang.Override
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The bytes for id.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CHANNEL_FIELD_NUMBER = 28;
+ private int channel_ = 0;
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return Whether the channel field is set.
+ */
+ @java.lang.Override
+ public boolean hasChannel() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return The enum numeric value on the wire for channel.
+ */
+ @java.lang.Override
+ public int getChannelValue() {
+ return channel_;
+ }
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return The channel.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Channel.ChannelEnum getChannel() {
+ com.google.shopping.type.Channel.ChannelEnum result =
+ com.google.shopping.type.Channel.ChannelEnum.forNumber(channel_);
+ return result == null ? com.google.shopping.type.Channel.ChannelEnum.UNRECOGNIZED : result;
+ }
+
+ public static final int LANGUAGE_CODE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object languageCode_ = "";
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return Whether the languageCode field is set.
+ */
+ @java.lang.Override
+ public boolean hasLanguageCode() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return The languageCode.
+ */
+ @java.lang.Override
+ public java.lang.String getLanguageCode() {
+ java.lang.Object ref = languageCode_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ languageCode_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return The bytes for languageCode.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getLanguageCodeBytes() {
+ java.lang.Object ref = languageCode_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ languageCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int FEED_LABEL_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object feedLabel_ = "";
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return Whether the feedLabel field is set.
+ */
+ @java.lang.Override
+ public boolean hasFeedLabel() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return The feedLabel.
+ */
+ @java.lang.Override
+ public java.lang.String getFeedLabel() {
+ java.lang.Object ref = feedLabel_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ feedLabel_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return The bytes for feedLabel.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getFeedLabelBytes() {
+ java.lang.Object ref = feedLabel_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ feedLabel_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int OFFER_ID_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return Whether the offerId field is set.
+ */
+ @java.lang.Override
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return The offerId.
+ */
+ @java.lang.Override
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return The bytes for offerId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 5;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int BRAND_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return Whether the brand field is set.
+ */
+ @java.lang.Override
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return The brand.
+ */
+ @java.lang.Override
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return The bytes for brand.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L1_FIELD_NUMBER = 7;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return The categoryL1.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return The bytes for categoryL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L2_FIELD_NUMBER = 8;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return The categoryL2.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return The bytes for categoryL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L3_FIELD_NUMBER = 9;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return The categoryL3.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return The bytes for categoryL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L4_FIELD_NUMBER = 10;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return The categoryL4.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return The bytes for categoryL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CATEGORY_L5_FIELD_NUMBER = 11;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return The categoryL5.
+ */
+ @java.lang.Override
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return The bytes for categoryL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L1_FIELD_NUMBER = 12;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return The productTypeL1.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L2_FIELD_NUMBER = 13;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return The productTypeL2.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L3_FIELD_NUMBER = 14;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return The productTypeL3.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L4_FIELD_NUMBER = 15;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return The productTypeL4.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRODUCT_TYPE_L5_FIELD_NUMBER = 16;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return The productTypeL5.
+ */
+ @java.lang.Override
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PRICE_FIELD_NUMBER = 17;
+ private com.google.shopping.type.Price price_;
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ *
+ * @return Whether the price field is set.
+ */
+ @java.lang.Override
+ public boolean hasPrice() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ *
+ * @return The price.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getPrice() {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+
+ public static final int CONDITION_FIELD_NUMBER = 18;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object condition_ = "";
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return Whether the condition field is set.
+ */
+ @java.lang.Override
+ public boolean hasCondition() {
+ return ((bitField0_ & 0x00040000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return The condition.
+ */
+ @java.lang.Override
+ public java.lang.String getCondition() {
+ java.lang.Object ref = condition_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ condition_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return The bytes for condition.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getConditionBytes() {
+ java.lang.Object ref = condition_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ condition_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int AVAILABILITY_FIELD_NUMBER = 19;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object availability_ = "";
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return Whether the availability field is set.
+ */
+ @java.lang.Override
+ public boolean hasAvailability() {
+ return ((bitField0_ & 0x00080000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return The availability.
+ */
+ @java.lang.Override
+ public java.lang.String getAvailability() {
+ java.lang.Object ref = availability_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ availability_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return The bytes for availability.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getAvailabilityBytes() {
+ java.lang.Object ref = availability_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ availability_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int SHIPPING_LABEL_FIELD_NUMBER = 20;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object shippingLabel_ = "";
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return Whether the shippingLabel field is set.
+ */
+ @java.lang.Override
+ public boolean hasShippingLabel() {
+ return ((bitField0_ & 0x00100000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return The shippingLabel.
+ */
+ @java.lang.Override
+ public java.lang.String getShippingLabel() {
+ java.lang.Object ref = shippingLabel_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ shippingLabel_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return The bytes for shippingLabel.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getShippingLabelBytes() {
+ java.lang.Object ref = shippingLabel_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ shippingLabel_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int GTIN_FIELD_NUMBER = 21;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList gtin_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @return A list containing the gtin.
+ */
+ public com.google.protobuf.ProtocolStringList getGtinList() {
+ return gtin_;
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @return The count of gtin.
+ */
+ public int getGtinCount() {
+ return gtin_.size();
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param index The index of the element to return.
+ * @return The gtin at the given index.
+ */
+ public java.lang.String getGtin(int index) {
+ return gtin_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the gtin at the given index.
+ */
+ public com.google.protobuf.ByteString getGtinBytes(int index) {
+ return gtin_.getByteString(index);
+ }
+
+ public static final int ITEM_GROUP_ID_FIELD_NUMBER = 22;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object itemGroupId_ = "";
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return Whether the itemGroupId field is set.
+ */
+ @java.lang.Override
+ public boolean hasItemGroupId() {
+ return ((bitField0_ & 0x00200000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return The itemGroupId.
+ */
+ @java.lang.Override
+ public java.lang.String getItemGroupId() {
+ java.lang.Object ref = itemGroupId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ itemGroupId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return The bytes for itemGroupId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getItemGroupIdBytes() {
+ java.lang.Object ref = itemGroupId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ itemGroupId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int THUMBNAIL_LINK_FIELD_NUMBER = 23;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object thumbnailLink_ = "";
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return Whether the thumbnailLink field is set.
+ */
+ @java.lang.Override
+ public boolean hasThumbnailLink() {
+ return ((bitField0_ & 0x00400000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return The thumbnailLink.
+ */
+ @java.lang.Override
+ public java.lang.String getThumbnailLink() {
+ java.lang.Object ref = thumbnailLink_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ thumbnailLink_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return The bytes for thumbnailLink.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getThumbnailLinkBytes() {
+ java.lang.Object ref = thumbnailLink_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ thumbnailLink_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CREATION_TIME_FIELD_NUMBER = 24;
+ private com.google.protobuf.Timestamp creationTime_;
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ *
+ * @return Whether the creationTime field is set.
+ */
+ @java.lang.Override
+ public boolean hasCreationTime() {
+ return ((bitField0_ & 0x00800000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ *
+ * @return The creationTime.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Timestamp getCreationTime() {
+ return creationTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : creationTime_;
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ @java.lang.Override
+ public com.google.protobuf.TimestampOrBuilder getCreationTimeOrBuilder() {
+ return creationTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : creationTime_;
+ }
+
+ public static final int EXPIRATION_DATE_FIELD_NUMBER = 25;
+ private com.google.type.Date expirationDate_;
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ *
+ * @return Whether the expirationDate field is set.
+ */
+ @java.lang.Override
+ public boolean hasExpirationDate() {
+ return ((bitField0_ & 0x01000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ *
+ * @return The expirationDate.
+ */
+ @java.lang.Override
+ public com.google.type.Date getExpirationDate() {
+ return expirationDate_ == null ? com.google.type.Date.getDefaultInstance() : expirationDate_;
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getExpirationDateOrBuilder() {
+ return expirationDate_ == null ? com.google.type.Date.getDefaultInstance() : expirationDate_;
+ }
+
+ public static final int AGGREGATED_REPORTING_CONTEXT_STATUS_FIELD_NUMBER = 26;
+ private int aggregatedReportingContextStatus_ = 0;
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return Whether the aggregatedReportingContextStatus field is set.
+ */
+ @java.lang.Override
+ public boolean hasAggregatedReportingContextStatus() {
+ return ((bitField0_ & 0x02000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return The enum numeric value on the wire for aggregatedReportingContextStatus.
+ */
+ @java.lang.Override
+ public int getAggregatedReportingContextStatusValue() {
+ return aggregatedReportingContextStatus_;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return The aggregatedReportingContextStatus.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus
+ getAggregatedReportingContextStatus() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus
+ result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView
+ .AggregatedReportingContextStatus.forNumber(aggregatedReportingContextStatus_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus
+ .UNRECOGNIZED
+ : result;
+ }
+
+ public static final int ITEM_ISSUES_FIELD_NUMBER = 27;
+
+ @SuppressWarnings("serial")
+ private java.util.List+ * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ @java.lang.Override
+ public java.util.List+ * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ @java.lang.Override
+ public java.util.List<
+ ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder>
+ getItemIssuesOrBuilderList() {
+ return itemIssues_;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ @java.lang.Override
+ public int getItemIssuesCount() {
+ return itemIssues_.size();
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue getItemIssues(
+ int index) {
+ return itemIssues_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder
+ getItemIssuesOrBuilder(int index) {
+ return itemIssues_.get(index);
+ }
+
+ public static final int CLICK_POTENTIAL_FIELD_NUMBER = 29;
+ private int clickPotential_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @return The enum numeric value on the wire for clickPotential.
+ */
+ @java.lang.Override
+ public int getClickPotentialValue() {
+ return clickPotential_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @return The clickPotential.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential
+ getClickPotential() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.forNumber(
+ clickPotential_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.UNRECOGNIZED
+ : result;
+ }
+
+ public static final int CLICK_POTENTIAL_RANK_FIELD_NUMBER = 30;
+ private long clickPotentialRank_ = 0L;
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @return Whether the clickPotentialRank field is set.
+ */
+ @java.lang.Override
+ public boolean hasClickPotentialRank() {
+ return ((bitField0_ & 0x04000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @return The clickPotentialRank.
+ */
+ @java.lang.Override
+ public long getClickPotentialRank() {
+ return clickPotentialRank_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, languageCode_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, feedLabel_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, offerId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, title_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 6, brand_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 7, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 8, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 9, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 10, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 11, categoryL5_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 12, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 13, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 14, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 15, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 16, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ output.writeMessage(17, getPrice());
+ }
+ if (((bitField0_ & 0x00040000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 18, condition_);
+ }
+ if (((bitField0_ & 0x00080000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 19, availability_);
+ }
+ if (((bitField0_ & 0x00100000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 20, shippingLabel_);
+ }
+ for (int i = 0; i < gtin_.size(); i++) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 21, gtin_.getRaw(i));
+ }
+ if (((bitField0_ & 0x00200000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 22, itemGroupId_);
+ }
+ if (((bitField0_ & 0x00400000) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 23, thumbnailLink_);
+ }
+ if (((bitField0_ & 0x00800000) != 0)) {
+ output.writeMessage(24, getCreationTime());
+ }
+ if (((bitField0_ & 0x01000000) != 0)) {
+ output.writeMessage(25, getExpirationDate());
+ }
+ if (((bitField0_ & 0x02000000) != 0)) {
+ output.writeEnum(26, aggregatedReportingContextStatus_);
+ }
+ for (int i = 0; i < itemIssues_.size(); i++) {
+ output.writeMessage(27, itemIssues_.get(i));
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeEnum(28, channel_);
+ }
+ if (clickPotential_
+ != com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential
+ .CLICK_POTENTIAL_UNSPECIFIED
+ .getNumber()) {
+ output.writeEnum(29, clickPotential_);
+ }
+ if (((bitField0_ & 0x04000000) != 0)) {
+ output.writeInt64(30, clickPotentialRank_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, languageCode_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, feedLabel_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, offerId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, title_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, brand_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, categoryL1_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, categoryL2_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, categoryL3_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, categoryL4_);
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, categoryL5_);
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, productTypeL1_);
+ }
+ if (((bitField0_ & 0x00002000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, productTypeL2_);
+ }
+ if (((bitField0_ & 0x00004000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, productTypeL3_);
+ }
+ if (((bitField0_ & 0x00008000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, productTypeL4_);
+ }
+ if (((bitField0_ & 0x00010000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, productTypeL5_);
+ }
+ if (((bitField0_ & 0x00020000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(17, getPrice());
+ }
+ if (((bitField0_ & 0x00040000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, condition_);
+ }
+ if (((bitField0_ & 0x00080000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, availability_);
+ }
+ if (((bitField0_ & 0x00100000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, shippingLabel_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < gtin_.size(); i++) {
+ dataSize += computeStringSizeNoTag(gtin_.getRaw(i));
+ }
+ size += dataSize;
+ size += 2 * getGtinList().size();
+ }
+ if (((bitField0_ & 0x00200000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, itemGroupId_);
+ }
+ if (((bitField0_ & 0x00400000) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, thumbnailLink_);
+ }
+ if (((bitField0_ & 0x00800000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(24, getCreationTime());
+ }
+ if (((bitField0_ & 0x01000000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(25, getExpirationDate());
+ }
+ if (((bitField0_ & 0x02000000) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeEnumSize(
+ 26, aggregatedReportingContextStatus_);
+ }
+ for (int i = 0; i < itemIssues_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, itemIssues_.get(i));
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(28, channel_);
+ }
+ if (clickPotential_
+ != com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential
+ .CLICK_POTENTIAL_UNSPECIFIED
+ .getNumber()) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(29, clickPotential_);
+ }
+ if (((bitField0_ & 0x04000000) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(30, clickPotentialRank_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.ProductView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.ProductView other =
+ (com.google.shopping.merchant.reports.v1alpha.ProductView) obj;
+
+ if (hasId() != other.hasId()) return false;
+ if (hasId()) {
+ if (!getId().equals(other.getId())) return false;
+ }
+ if (hasChannel() != other.hasChannel()) return false;
+ if (hasChannel()) {
+ if (channel_ != other.channel_) return false;
+ }
+ if (hasLanguageCode() != other.hasLanguageCode()) return false;
+ if (hasLanguageCode()) {
+ if (!getLanguageCode().equals(other.getLanguageCode())) return false;
+ }
+ if (hasFeedLabel() != other.hasFeedLabel()) return false;
+ if (hasFeedLabel()) {
+ if (!getFeedLabel().equals(other.getFeedLabel())) return false;
+ }
+ if (hasOfferId() != other.hasOfferId()) return false;
+ if (hasOfferId()) {
+ if (!getOfferId().equals(other.getOfferId())) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasBrand() != other.hasBrand()) return false;
+ if (hasBrand()) {
+ if (!getBrand().equals(other.getBrand())) return false;
+ }
+ if (hasCategoryL1() != other.hasCategoryL1()) return false;
+ if (hasCategoryL1()) {
+ if (!getCategoryL1().equals(other.getCategoryL1())) return false;
+ }
+ if (hasCategoryL2() != other.hasCategoryL2()) return false;
+ if (hasCategoryL2()) {
+ if (!getCategoryL2().equals(other.getCategoryL2())) return false;
+ }
+ if (hasCategoryL3() != other.hasCategoryL3()) return false;
+ if (hasCategoryL3()) {
+ if (!getCategoryL3().equals(other.getCategoryL3())) return false;
+ }
+ if (hasCategoryL4() != other.hasCategoryL4()) return false;
+ if (hasCategoryL4()) {
+ if (!getCategoryL4().equals(other.getCategoryL4())) return false;
+ }
+ if (hasCategoryL5() != other.hasCategoryL5()) return false;
+ if (hasCategoryL5()) {
+ if (!getCategoryL5().equals(other.getCategoryL5())) return false;
+ }
+ if (hasProductTypeL1() != other.hasProductTypeL1()) return false;
+ if (hasProductTypeL1()) {
+ if (!getProductTypeL1().equals(other.getProductTypeL1())) return false;
+ }
+ if (hasProductTypeL2() != other.hasProductTypeL2()) return false;
+ if (hasProductTypeL2()) {
+ if (!getProductTypeL2().equals(other.getProductTypeL2())) return false;
+ }
+ if (hasProductTypeL3() != other.hasProductTypeL3()) return false;
+ if (hasProductTypeL3()) {
+ if (!getProductTypeL3().equals(other.getProductTypeL3())) return false;
+ }
+ if (hasProductTypeL4() != other.hasProductTypeL4()) return false;
+ if (hasProductTypeL4()) {
+ if (!getProductTypeL4().equals(other.getProductTypeL4())) return false;
+ }
+ if (hasProductTypeL5() != other.hasProductTypeL5()) return false;
+ if (hasProductTypeL5()) {
+ if (!getProductTypeL5().equals(other.getProductTypeL5())) return false;
+ }
+ if (hasPrice() != other.hasPrice()) return false;
+ if (hasPrice()) {
+ if (!getPrice().equals(other.getPrice())) return false;
+ }
+ if (hasCondition() != other.hasCondition()) return false;
+ if (hasCondition()) {
+ if (!getCondition().equals(other.getCondition())) return false;
+ }
+ if (hasAvailability() != other.hasAvailability()) return false;
+ if (hasAvailability()) {
+ if (!getAvailability().equals(other.getAvailability())) return false;
+ }
+ if (hasShippingLabel() != other.hasShippingLabel()) return false;
+ if (hasShippingLabel()) {
+ if (!getShippingLabel().equals(other.getShippingLabel())) return false;
+ }
+ if (!getGtinList().equals(other.getGtinList())) return false;
+ if (hasItemGroupId() != other.hasItemGroupId()) return false;
+ if (hasItemGroupId()) {
+ if (!getItemGroupId().equals(other.getItemGroupId())) return false;
+ }
+ if (hasThumbnailLink() != other.hasThumbnailLink()) return false;
+ if (hasThumbnailLink()) {
+ if (!getThumbnailLink().equals(other.getThumbnailLink())) return false;
+ }
+ if (hasCreationTime() != other.hasCreationTime()) return false;
+ if (hasCreationTime()) {
+ if (!getCreationTime().equals(other.getCreationTime())) return false;
+ }
+ if (hasExpirationDate() != other.hasExpirationDate()) return false;
+ if (hasExpirationDate()) {
+ if (!getExpirationDate().equals(other.getExpirationDate())) return false;
+ }
+ if (hasAggregatedReportingContextStatus() != other.hasAggregatedReportingContextStatus())
+ return false;
+ if (hasAggregatedReportingContextStatus()) {
+ if (aggregatedReportingContextStatus_ != other.aggregatedReportingContextStatus_)
+ return false;
+ }
+ if (!getItemIssuesList().equals(other.getItemIssuesList())) return false;
+ if (clickPotential_ != other.clickPotential_) return false;
+ if (hasClickPotentialRank() != other.hasClickPotentialRank()) return false;
+ if (hasClickPotentialRank()) {
+ if (getClickPotentialRank() != other.getClickPotentialRank()) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasId()) {
+ hash = (37 * hash) + ID_FIELD_NUMBER;
+ hash = (53 * hash) + getId().hashCode();
+ }
+ if (hasChannel()) {
+ hash = (37 * hash) + CHANNEL_FIELD_NUMBER;
+ hash = (53 * hash) + channel_;
+ }
+ if (hasLanguageCode()) {
+ hash = (37 * hash) + LANGUAGE_CODE_FIELD_NUMBER;
+ hash = (53 * hash) + getLanguageCode().hashCode();
+ }
+ if (hasFeedLabel()) {
+ hash = (37 * hash) + FEED_LABEL_FIELD_NUMBER;
+ hash = (53 * hash) + getFeedLabel().hashCode();
+ }
+ if (hasOfferId()) {
+ hash = (37 * hash) + OFFER_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getOfferId().hashCode();
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasBrand()) {
+ hash = (37 * hash) + BRAND_FIELD_NUMBER;
+ hash = (53 * hash) + getBrand().hashCode();
+ }
+ if (hasCategoryL1()) {
+ hash = (37 * hash) + CATEGORY_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL1().hashCode();
+ }
+ if (hasCategoryL2()) {
+ hash = (37 * hash) + CATEGORY_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL2().hashCode();
+ }
+ if (hasCategoryL3()) {
+ hash = (37 * hash) + CATEGORY_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL3().hashCode();
+ }
+ if (hasCategoryL4()) {
+ hash = (37 * hash) + CATEGORY_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL4().hashCode();
+ }
+ if (hasCategoryL5()) {
+ hash = (37 * hash) + CATEGORY_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getCategoryL5().hashCode();
+ }
+ if (hasProductTypeL1()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L1_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL1().hashCode();
+ }
+ if (hasProductTypeL2()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L2_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL2().hashCode();
+ }
+ if (hasProductTypeL3()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L3_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL3().hashCode();
+ }
+ if (hasProductTypeL4()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L4_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL4().hashCode();
+ }
+ if (hasProductTypeL5()) {
+ hash = (37 * hash) + PRODUCT_TYPE_L5_FIELD_NUMBER;
+ hash = (53 * hash) + getProductTypeL5().hashCode();
+ }
+ if (hasPrice()) {
+ hash = (37 * hash) + PRICE_FIELD_NUMBER;
+ hash = (53 * hash) + getPrice().hashCode();
+ }
+ if (hasCondition()) {
+ hash = (37 * hash) + CONDITION_FIELD_NUMBER;
+ hash = (53 * hash) + getCondition().hashCode();
+ }
+ if (hasAvailability()) {
+ hash = (37 * hash) + AVAILABILITY_FIELD_NUMBER;
+ hash = (53 * hash) + getAvailability().hashCode();
+ }
+ if (hasShippingLabel()) {
+ hash = (37 * hash) + SHIPPING_LABEL_FIELD_NUMBER;
+ hash = (53 * hash) + getShippingLabel().hashCode();
+ }
+ if (getGtinCount() > 0) {
+ hash = (37 * hash) + GTIN_FIELD_NUMBER;
+ hash = (53 * hash) + getGtinList().hashCode();
+ }
+ if (hasItemGroupId()) {
+ hash = (37 * hash) + ITEM_GROUP_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getItemGroupId().hashCode();
+ }
+ if (hasThumbnailLink()) {
+ hash = (37 * hash) + THUMBNAIL_LINK_FIELD_NUMBER;
+ hash = (53 * hash) + getThumbnailLink().hashCode();
+ }
+ if (hasCreationTime()) {
+ hash = (37 * hash) + CREATION_TIME_FIELD_NUMBER;
+ hash = (53 * hash) + getCreationTime().hashCode();
+ }
+ if (hasExpirationDate()) {
+ hash = (37 * hash) + EXPIRATION_DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getExpirationDate().hashCode();
+ }
+ if (hasAggregatedReportingContextStatus()) {
+ hash = (37 * hash) + AGGREGATED_REPORTING_CONTEXT_STATUS_FIELD_NUMBER;
+ hash = (53 * hash) + aggregatedReportingContextStatus_;
+ }
+ if (getItemIssuesCount() > 0) {
+ hash = (37 * hash) + ITEM_ISSUES_FIELD_NUMBER;
+ hash = (53 * hash) + getItemIssuesList().hashCode();
+ }
+ hash = (37 * hash) + CLICK_POTENTIAL_FIELD_NUMBER;
+ hash = (53 * hash) + clickPotential_;
+ if (hasClickPotentialRank()) {
+ hash = (37 * hash) + CLICK_POTENTIAL_RANK_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClickPotentialRank());
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + * + * Products in the current inventory. Products in this table are the same as in + * Products sub-API but not all product attributes from Products sub-API are + * available for query in this table. In contrast to Products sub-API, this + * table allows to filter the returned list of products by product attributes. + * To retrieve a single product by `id` or list all products, Products sub-API + * should be used. + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ProductView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return Whether the id field is set.
+ */
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The id.
+ */
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The bytes for id.
+ */
+ public com.google.protobuf.ByteString getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @param value The id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearId() {
+ id_ = getDefaultInstance().getId();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @param value The bytes for id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private int channel_ = 0;
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return Whether the channel field is set.
+ */
+ @java.lang.Override
+ public boolean hasChannel() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return The enum numeric value on the wire for channel.
+ */
+ @java.lang.Override
+ public int getChannelValue() {
+ return channel_;
+ }
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @param value The enum numeric value on the wire for channel to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannelValue(int value) {
+ channel_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return The channel.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Channel.ChannelEnum getChannel() {
+ com.google.shopping.type.Channel.ChannelEnum result =
+ com.google.shopping.type.Channel.ChannelEnum.forNumber(channel_);
+ return result == null ? com.google.shopping.type.Channel.ChannelEnum.UNRECOGNIZED : result;
+ }
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @param value The channel to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannel(com.google.shopping.type.Channel.ChannelEnum value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ channel_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearChannel() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ channel_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object languageCode_ = "";
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return Whether the languageCode field is set.
+ */
+ public boolean hasLanguageCode() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return The languageCode.
+ */
+ public java.lang.String getLanguageCode() {
+ java.lang.Object ref = languageCode_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ languageCode_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return The bytes for languageCode.
+ */
+ public com.google.protobuf.ByteString getLanguageCodeBytes() {
+ java.lang.Object ref = languageCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ languageCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @param value The languageCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLanguageCode(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ languageCode_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearLanguageCode() {
+ languageCode_ = getDefaultInstance().getLanguageCode();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @param value The bytes for languageCode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ languageCode_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object feedLabel_ = "";
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return Whether the feedLabel field is set.
+ */
+ public boolean hasFeedLabel() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return The feedLabel.
+ */
+ public java.lang.String getFeedLabel() {
+ java.lang.Object ref = feedLabel_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ feedLabel_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return The bytes for feedLabel.
+ */
+ public com.google.protobuf.ByteString getFeedLabelBytes() {
+ java.lang.Object ref = feedLabel_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ feedLabel_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @param value The feedLabel to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFeedLabel(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ feedLabel_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearFeedLabel() {
+ feedLabel_ = getDefaultInstance().getFeedLabel();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @param value The bytes for feedLabel to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFeedLabelBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ feedLabel_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return Whether the offerId field is set.
+ */
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return The offerId.
+ */
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return The bytes for offerId.
+ */
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @param value The offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ offerId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOfferId() {
+ offerId_ = getDefaultInstance().getOfferId();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @param value The bytes for offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ offerId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object brand_ = "";
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return Whether the brand field is set.
+ */
+ public boolean hasBrand() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return The brand.
+ */
+ public java.lang.String getBrand() {
+ java.lang.Object ref = brand_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ brand_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return The bytes for brand.
+ */
+ public com.google.protobuf.ByteString getBrandBytes() {
+ java.lang.Object ref = brand_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ brand_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @param value The brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrand(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ brand_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBrand() {
+ brand_ = getDefaultInstance().getBrand();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @param value The bytes for brand to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBrandBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ brand_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ public boolean hasCategoryL1() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return The categoryL1.
+ */
+ public java.lang.String getCategoryL1() {
+ java.lang.Object ref = categoryL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return The bytes for categoryL1.
+ */
+ public com.google.protobuf.ByteString getCategoryL1Bytes() {
+ java.lang.Object ref = categoryL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @param value The categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL1_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL1() {
+ categoryL1_ = getDefaultInstance().getCategoryL1();
+ bitField0_ = (bitField0_ & ~0x00000080);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @param value The bytes for categoryL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL1_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ public boolean hasCategoryL2() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return The categoryL2.
+ */
+ public java.lang.String getCategoryL2() {
+ java.lang.Object ref = categoryL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return The bytes for categoryL2.
+ */
+ public com.google.protobuf.ByteString getCategoryL2Bytes() {
+ java.lang.Object ref = categoryL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @param value The categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL2_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL2() {
+ categoryL2_ = getDefaultInstance().getCategoryL2();
+ bitField0_ = (bitField0_ & ~0x00000100);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @param value The bytes for categoryL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL2_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ public boolean hasCategoryL3() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return The categoryL3.
+ */
+ public java.lang.String getCategoryL3() {
+ java.lang.Object ref = categoryL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return The bytes for categoryL3.
+ */
+ public com.google.protobuf.ByteString getCategoryL3Bytes() {
+ java.lang.Object ref = categoryL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @param value The categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL3_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL3() {
+ categoryL3_ = getDefaultInstance().getCategoryL3();
+ bitField0_ = (bitField0_ & ~0x00000200);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @param value The bytes for categoryL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL3_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ public boolean hasCategoryL4() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return The categoryL4.
+ */
+ public java.lang.String getCategoryL4() {
+ java.lang.Object ref = categoryL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return The bytes for categoryL4.
+ */
+ public com.google.protobuf.ByteString getCategoryL4Bytes() {
+ java.lang.Object ref = categoryL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @param value The categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL4_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL4() {
+ categoryL4_ = getDefaultInstance().getCategoryL4();
+ bitField0_ = (bitField0_ & ~0x00000400);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @param value The bytes for categoryL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL4_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object categoryL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ public boolean hasCategoryL5() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return The categoryL5.
+ */
+ public java.lang.String getCategoryL5() {
+ java.lang.Object ref = categoryL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ categoryL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return The bytes for categoryL5.
+ */
+ public com.google.protobuf.ByteString getCategoryL5Bytes() {
+ java.lang.Object ref = categoryL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ categoryL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @param value The categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ categoryL5_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCategoryL5() {
+ categoryL5_ = getDefaultInstance().getCategoryL5();
+ bitField0_ = (bitField0_ & ~0x00000800);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @param value The bytes for categoryL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCategoryL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ categoryL5_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL1_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ public boolean hasProductTypeL1() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return The productTypeL1.
+ */
+ public java.lang.String getProductTypeL1() {
+ java.lang.Object ref = productTypeL1_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL1_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ public com.google.protobuf.ByteString getProductTypeL1Bytes() {
+ java.lang.Object ref = productTypeL1_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL1_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @param value The productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL1_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL1() {
+ productTypeL1_ = getDefaultInstance().getProductTypeL1();
+ bitField0_ = (bitField0_ & ~0x00001000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @param value The bytes for productTypeL1 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL1Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL1_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL2_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ public boolean hasProductTypeL2() {
+ return ((bitField0_ & 0x00002000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return The productTypeL2.
+ */
+ public java.lang.String getProductTypeL2() {
+ java.lang.Object ref = productTypeL2_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL2_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ public com.google.protobuf.ByteString getProductTypeL2Bytes() {
+ java.lang.Object ref = productTypeL2_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL2_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @param value The productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL2_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL2() {
+ productTypeL2_ = getDefaultInstance().getProductTypeL2();
+ bitField0_ = (bitField0_ & ~0x00002000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @param value The bytes for productTypeL2 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL2Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL2_ = value;
+ bitField0_ |= 0x00002000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL3_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ public boolean hasProductTypeL3() {
+ return ((bitField0_ & 0x00004000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return The productTypeL3.
+ */
+ public java.lang.String getProductTypeL3() {
+ java.lang.Object ref = productTypeL3_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL3_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ public com.google.protobuf.ByteString getProductTypeL3Bytes() {
+ java.lang.Object ref = productTypeL3_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL3_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @param value The productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL3_ = value;
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL3() {
+ productTypeL3_ = getDefaultInstance().getProductTypeL3();
+ bitField0_ = (bitField0_ & ~0x00004000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @param value The bytes for productTypeL3 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL3Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL3_ = value;
+ bitField0_ |= 0x00004000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL4_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ public boolean hasProductTypeL4() {
+ return ((bitField0_ & 0x00008000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return The productTypeL4.
+ */
+ public java.lang.String getProductTypeL4() {
+ java.lang.Object ref = productTypeL4_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL4_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ public com.google.protobuf.ByteString getProductTypeL4Bytes() {
+ java.lang.Object ref = productTypeL4_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL4_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @param value The productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL4_ = value;
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL4() {
+ productTypeL4_ = getDefaultInstance().getProductTypeL4();
+ bitField0_ = (bitField0_ & ~0x00008000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @param value The bytes for productTypeL4 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL4Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL4_ = value;
+ bitField0_ |= 0x00008000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object productTypeL5_ = "";
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ public boolean hasProductTypeL5() {
+ return ((bitField0_ & 0x00010000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return The productTypeL5.
+ */
+ public java.lang.String getProductTypeL5() {
+ java.lang.Object ref = productTypeL5_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ productTypeL5_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ public com.google.protobuf.ByteString getProductTypeL5Bytes() {
+ java.lang.Object ref = productTypeL5_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ productTypeL5_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @param value The productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productTypeL5_ = value;
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProductTypeL5() {
+ productTypeL5_ = getDefaultInstance().getProductTypeL5();
+ bitField0_ = (bitField0_ & ~0x00010000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @param value The bytes for productTypeL5 to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProductTypeL5Bytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ productTypeL5_ = value;
+ bitField0_ |= 0x00010000;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price price_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ priceBuilder_;
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ *
+ * @return Whether the price field is set.
+ */
+ public boolean hasPrice() {
+ return ((bitField0_ & 0x00020000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ *
+ * @return The price.
+ */
+ public com.google.shopping.type.Price getPrice() {
+ if (priceBuilder_ == null) {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ } else {
+ return priceBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ public Builder setPrice(com.google.shopping.type.Price value) {
+ if (priceBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ price_ = value;
+ } else {
+ priceBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00020000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) {
+ if (priceBuilder_ == null) {
+ price_ = builderForValue.build();
+ } else {
+ priceBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00020000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ public Builder mergePrice(com.google.shopping.type.Price value) {
+ if (priceBuilder_ == null) {
+ if (((bitField0_ & 0x00020000) != 0)
+ && price_ != null
+ && price_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getPriceBuilder().mergeFrom(value);
+ } else {
+ price_ = value;
+ }
+ } else {
+ priceBuilder_.mergeFrom(value);
+ }
+ if (price_ != null) {
+ bitField0_ |= 0x00020000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ public Builder clearPrice() {
+ bitField0_ = (bitField0_ & ~0x00020000);
+ price_ = null;
+ if (priceBuilder_ != null) {
+ priceBuilder_.dispose();
+ priceBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ public com.google.shopping.type.Price.Builder getPriceBuilder() {
+ bitField0_ |= 0x00020000;
+ onChanged();
+ return getPriceFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() {
+ if (priceBuilder_ != null) {
+ return priceBuilder_.getMessageOrBuilder();
+ } else {
+ return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getPriceFieldBuilder() {
+ if (priceBuilder_ == null) {
+ priceBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getPrice(), getParentForChildren(), isClean());
+ price_ = null;
+ }
+ return priceBuilder_;
+ }
+
+ private java.lang.Object condition_ = "";
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return Whether the condition field is set.
+ */
+ public boolean hasCondition() {
+ return ((bitField0_ & 0x00040000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return The condition.
+ */
+ public java.lang.String getCondition() {
+ java.lang.Object ref = condition_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ condition_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return The bytes for condition.
+ */
+ public com.google.protobuf.ByteString getConditionBytes() {
+ java.lang.Object ref = condition_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ condition_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @param value The condition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCondition(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ condition_ = value;
+ bitField0_ |= 0x00040000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCondition() {
+ condition_ = getDefaultInstance().getCondition();
+ bitField0_ = (bitField0_ & ~0x00040000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @param value The bytes for condition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConditionBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ condition_ = value;
+ bitField0_ |= 0x00040000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object availability_ = "";
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return Whether the availability field is set.
+ */
+ public boolean hasAvailability() {
+ return ((bitField0_ & 0x00080000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return The availability.
+ */
+ public java.lang.String getAvailability() {
+ java.lang.Object ref = availability_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ availability_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return The bytes for availability.
+ */
+ public com.google.protobuf.ByteString getAvailabilityBytes() {
+ java.lang.Object ref = availability_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ availability_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @param value The availability to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAvailability(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ availability_ = value;
+ bitField0_ |= 0x00080000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearAvailability() {
+ availability_ = getDefaultInstance().getAvailability();
+ bitField0_ = (bitField0_ & ~0x00080000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @param value The bytes for availability to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAvailabilityBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ availability_ = value;
+ bitField0_ |= 0x00080000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object shippingLabel_ = "";
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return Whether the shippingLabel field is set.
+ */
+ public boolean hasShippingLabel() {
+ return ((bitField0_ & 0x00100000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return The shippingLabel.
+ */
+ public java.lang.String getShippingLabel() {
+ java.lang.Object ref = shippingLabel_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ shippingLabel_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return The bytes for shippingLabel.
+ */
+ public com.google.protobuf.ByteString getShippingLabelBytes() {
+ java.lang.Object ref = shippingLabel_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ shippingLabel_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @param value The shippingLabel to set.
+ * @return This builder for chaining.
+ */
+ public Builder setShippingLabel(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ shippingLabel_ = value;
+ bitField0_ |= 0x00100000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearShippingLabel() {
+ shippingLabel_ = getDefaultInstance().getShippingLabel();
+ bitField0_ = (bitField0_ & ~0x00100000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @param value The bytes for shippingLabel to set.
+ * @return This builder for chaining.
+ */
+ public Builder setShippingLabelBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ shippingLabel_ = value;
+ bitField0_ |= 0x00100000;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList gtin_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensureGtinIsMutable() {
+ if (!gtin_.isModifiable()) {
+ gtin_ = new com.google.protobuf.LazyStringArrayList(gtin_);
+ }
+ bitField0_ |= 0x00200000;
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @return A list containing the gtin.
+ */
+ public com.google.protobuf.ProtocolStringList getGtinList() {
+ gtin_.makeImmutable();
+ return gtin_;
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @return The count of gtin.
+ */
+ public int getGtinCount() {
+ return gtin_.size();
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param index The index of the element to return.
+ * @return The gtin at the given index.
+ */
+ public java.lang.String getGtin(int index) {
+ return gtin_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the gtin at the given index.
+ */
+ public com.google.protobuf.ByteString getGtinBytes(int index) {
+ return gtin_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param index The index to set the value at.
+ * @param value The gtin to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGtin(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureGtinIsMutable();
+ gtin_.set(index, value);
+ bitField0_ |= 0x00200000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param value The gtin to add.
+ * @return This builder for chaining.
+ */
+ public Builder addGtin(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureGtinIsMutable();
+ gtin_.add(value);
+ bitField0_ |= 0x00200000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param values The gtin to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllGtin(java.lang.Iterable+ * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearGtin() {
+ gtin_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00200000);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param value The bytes of the gtin to add.
+ * @return This builder for chaining.
+ */
+ public Builder addGtinBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureGtinIsMutable();
+ gtin_.add(value);
+ bitField0_ |= 0x00200000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object itemGroupId_ = "";
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return Whether the itemGroupId field is set.
+ */
+ public boolean hasItemGroupId() {
+ return ((bitField0_ & 0x00400000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return The itemGroupId.
+ */
+ public java.lang.String getItemGroupId() {
+ java.lang.Object ref = itemGroupId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ itemGroupId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return The bytes for itemGroupId.
+ */
+ public com.google.protobuf.ByteString getItemGroupIdBytes() {
+ java.lang.Object ref = itemGroupId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ itemGroupId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @param value The itemGroupId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setItemGroupId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ itemGroupId_ = value;
+ bitField0_ |= 0x00400000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearItemGroupId() {
+ itemGroupId_ = getDefaultInstance().getItemGroupId();
+ bitField0_ = (bitField0_ & ~0x00400000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @param value The bytes for itemGroupId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setItemGroupIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ itemGroupId_ = value;
+ bitField0_ |= 0x00400000;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object thumbnailLink_ = "";
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return Whether the thumbnailLink field is set.
+ */
+ public boolean hasThumbnailLink() {
+ return ((bitField0_ & 0x00800000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return The thumbnailLink.
+ */
+ public java.lang.String getThumbnailLink() {
+ java.lang.Object ref = thumbnailLink_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ thumbnailLink_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return The bytes for thumbnailLink.
+ */
+ public com.google.protobuf.ByteString getThumbnailLinkBytes() {
+ java.lang.Object ref = thumbnailLink_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ thumbnailLink_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @param value The thumbnailLink to set.
+ * @return This builder for chaining.
+ */
+ public Builder setThumbnailLink(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ thumbnailLink_ = value;
+ bitField0_ |= 0x00800000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearThumbnailLink() {
+ thumbnailLink_ = getDefaultInstance().getThumbnailLink();
+ bitField0_ = (bitField0_ & ~0x00800000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @param value The bytes for thumbnailLink to set.
+ * @return This builder for chaining.
+ */
+ public Builder setThumbnailLinkBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ thumbnailLink_ = value;
+ bitField0_ |= 0x00800000;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.Timestamp creationTime_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ creationTimeBuilder_;
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ *
+ * @return Whether the creationTime field is set.
+ */
+ public boolean hasCreationTime() {
+ return ((bitField0_ & 0x01000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ *
+ * @return The creationTime.
+ */
+ public com.google.protobuf.Timestamp getCreationTime() {
+ if (creationTimeBuilder_ == null) {
+ return creationTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : creationTime_;
+ } else {
+ return creationTimeBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ public Builder setCreationTime(com.google.protobuf.Timestamp value) {
+ if (creationTimeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ creationTime_ = value;
+ } else {
+ creationTimeBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x01000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ public Builder setCreationTime(com.google.protobuf.Timestamp.Builder builderForValue) {
+ if (creationTimeBuilder_ == null) {
+ creationTime_ = builderForValue.build();
+ } else {
+ creationTimeBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x01000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ public Builder mergeCreationTime(com.google.protobuf.Timestamp value) {
+ if (creationTimeBuilder_ == null) {
+ if (((bitField0_ & 0x01000000) != 0)
+ && creationTime_ != null
+ && creationTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+ getCreationTimeBuilder().mergeFrom(value);
+ } else {
+ creationTime_ = value;
+ }
+ } else {
+ creationTimeBuilder_.mergeFrom(value);
+ }
+ if (creationTime_ != null) {
+ bitField0_ |= 0x01000000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ public Builder clearCreationTime() {
+ bitField0_ = (bitField0_ & ~0x01000000);
+ creationTime_ = null;
+ if (creationTimeBuilder_ != null) {
+ creationTimeBuilder_.dispose();
+ creationTimeBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ public com.google.protobuf.Timestamp.Builder getCreationTimeBuilder() {
+ bitField0_ |= 0x01000000;
+ onChanged();
+ return getCreationTimeFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ public com.google.protobuf.TimestampOrBuilder getCreationTimeOrBuilder() {
+ if (creationTimeBuilder_ != null) {
+ return creationTimeBuilder_.getMessageOrBuilder();
+ } else {
+ return creationTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : creationTime_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ getCreationTimeFieldBuilder() {
+ if (creationTimeBuilder_ == null) {
+ creationTimeBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>(
+ getCreationTime(), getParentForChildren(), isClean());
+ creationTime_ = null;
+ }
+ return creationTimeBuilder_;
+ }
+
+ private com.google.type.Date expirationDate_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ expirationDateBuilder_;
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ *
+ * @return Whether the expirationDate field is set.
+ */
+ public boolean hasExpirationDate() {
+ return ((bitField0_ & 0x02000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ *
+ * @return The expirationDate.
+ */
+ public com.google.type.Date getExpirationDate() {
+ if (expirationDateBuilder_ == null) {
+ return expirationDate_ == null
+ ? com.google.type.Date.getDefaultInstance()
+ : expirationDate_;
+ } else {
+ return expirationDateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ public Builder setExpirationDate(com.google.type.Date value) {
+ if (expirationDateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ expirationDate_ = value;
+ } else {
+ expirationDateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x02000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ public Builder setExpirationDate(com.google.type.Date.Builder builderForValue) {
+ if (expirationDateBuilder_ == null) {
+ expirationDate_ = builderForValue.build();
+ } else {
+ expirationDateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x02000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ public Builder mergeExpirationDate(com.google.type.Date value) {
+ if (expirationDateBuilder_ == null) {
+ if (((bitField0_ & 0x02000000) != 0)
+ && expirationDate_ != null
+ && expirationDate_ != com.google.type.Date.getDefaultInstance()) {
+ getExpirationDateBuilder().mergeFrom(value);
+ } else {
+ expirationDate_ = value;
+ }
+ } else {
+ expirationDateBuilder_.mergeFrom(value);
+ }
+ if (expirationDate_ != null) {
+ bitField0_ |= 0x02000000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ public Builder clearExpirationDate() {
+ bitField0_ = (bitField0_ & ~0x02000000);
+ expirationDate_ = null;
+ if (expirationDateBuilder_ != null) {
+ expirationDateBuilder_.dispose();
+ expirationDateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ public com.google.type.Date.Builder getExpirationDateBuilder() {
+ bitField0_ |= 0x02000000;
+ onChanged();
+ return getExpirationDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ public com.google.type.DateOrBuilder getExpirationDateOrBuilder() {
+ if (expirationDateBuilder_ != null) {
+ return expirationDateBuilder_.getMessageOrBuilder();
+ } else {
+ return expirationDate_ == null
+ ? com.google.type.Date.getDefaultInstance()
+ : expirationDate_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getExpirationDateFieldBuilder() {
+ if (expirationDateBuilder_ == null) {
+ expirationDateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getExpirationDate(), getParentForChildren(), isClean());
+ expirationDate_ = null;
+ }
+ return expirationDateBuilder_;
+ }
+
+ private int aggregatedReportingContextStatus_ = 0;
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return Whether the aggregatedReportingContextStatus field is set.
+ */
+ @java.lang.Override
+ public boolean hasAggregatedReportingContextStatus() {
+ return ((bitField0_ & 0x04000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return The enum numeric value on the wire for aggregatedReportingContextStatus.
+ */
+ @java.lang.Override
+ public int getAggregatedReportingContextStatusValue() {
+ return aggregatedReportingContextStatus_;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @param value The enum numeric value on the wire for aggregatedReportingContextStatus to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAggregatedReportingContextStatusValue(int value) {
+ aggregatedReportingContextStatus_ = value;
+ bitField0_ |= 0x04000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return The aggregatedReportingContextStatus.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus
+ getAggregatedReportingContextStatus() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus
+ result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView
+ .AggregatedReportingContextStatus.forNumber(aggregatedReportingContextStatus_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView
+ .AggregatedReportingContextStatus.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @param value The aggregatedReportingContextStatus to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAggregatedReportingContextStatus(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x04000000;
+ aggregatedReportingContextStatus_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearAggregatedReportingContextStatus() {
+ bitField0_ = (bitField0_ & ~0x04000000);
+ aggregatedReportingContextStatus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.util.List+ * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public java.util.List+ * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public int getItemIssuesCount() {
+ if (itemIssuesBuilder_ == null) {
+ return itemIssues_.size();
+ } else {
+ return itemIssuesBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue getItemIssues(
+ int index) {
+ if (itemIssuesBuilder_ == null) {
+ return itemIssues_.get(index);
+ } else {
+ return itemIssuesBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder setItemIssues(
+ int index, com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue value) {
+ if (itemIssuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureItemIssuesIsMutable();
+ itemIssues_.set(index, value);
+ onChanged();
+ } else {
+ itemIssuesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder setItemIssues(
+ int index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder
+ builderForValue) {
+ if (itemIssuesBuilder_ == null) {
+ ensureItemIssuesIsMutable();
+ itemIssues_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ itemIssuesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder addItemIssues(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue value) {
+ if (itemIssuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureItemIssuesIsMutable();
+ itemIssues_.add(value);
+ onChanged();
+ } else {
+ itemIssuesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder addItemIssues(
+ int index, com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue value) {
+ if (itemIssuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureItemIssuesIsMutable();
+ itemIssues_.add(index, value);
+ onChanged();
+ } else {
+ itemIssuesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder addItemIssues(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder
+ builderForValue) {
+ if (itemIssuesBuilder_ == null) {
+ ensureItemIssuesIsMutable();
+ itemIssues_.add(builderForValue.build());
+ onChanged();
+ } else {
+ itemIssuesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder addItemIssues(
+ int index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder
+ builderForValue) {
+ if (itemIssuesBuilder_ == null) {
+ ensureItemIssuesIsMutable();
+ itemIssues_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ itemIssuesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder addAllItemIssues(
+ java.lang.Iterable<
+ ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue>
+ values) {
+ if (itemIssuesBuilder_ == null) {
+ ensureItemIssuesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, itemIssues_);
+ onChanged();
+ } else {
+ itemIssuesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder clearItemIssues() {
+ if (itemIssuesBuilder_ == null) {
+ itemIssues_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x08000000);
+ onChanged();
+ } else {
+ itemIssuesBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public Builder removeItemIssues(int index) {
+ if (itemIssuesBuilder_ == null) {
+ ensureItemIssuesIsMutable();
+ itemIssues_.remove(index);
+ onChanged();
+ } else {
+ itemIssuesBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder
+ getItemIssuesBuilder(int index) {
+ return getItemIssuesFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder
+ getItemIssuesOrBuilder(int index) {
+ if (itemIssuesBuilder_ == null) {
+ return itemIssues_.get(index);
+ } else {
+ return itemIssuesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public java.util.List<
+ ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder>
+ getItemIssuesOrBuilderList() {
+ if (itemIssuesBuilder_ != null) {
+ return itemIssuesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(itemIssues_);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder
+ addItemIssuesBuilder() {
+ return getItemIssuesFieldBuilder()
+ .addBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder
+ addItemIssuesBuilder(int index) {
+ return getItemIssuesFieldBuilder()
+ .addBuilder(
+ index,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ public java.util.List<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder>
+ getItemIssuesBuilderList() {
+ return getItemIssuesFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder>
+ getItemIssuesFieldBuilder() {
+ if (itemIssuesBuilder_ == null) {
+ itemIssuesBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder>(
+ itemIssues_, ((bitField0_ & 0x08000000) != 0), getParentForChildren(), isClean());
+ itemIssues_ = null;
+ }
+ return itemIssuesBuilder_;
+ }
+
+ private int clickPotential_ = 0;
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @return The enum numeric value on the wire for clickPotential.
+ */
+ @java.lang.Override
+ public int getClickPotentialValue() {
+ return clickPotential_;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @param value The enum numeric value on the wire for clickPotential to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClickPotentialValue(int value) {
+ clickPotential_ = value;
+ bitField0_ |= 0x10000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @return The clickPotential.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential
+ getClickPotential() {
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential result =
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.forNumber(
+ clickPotential_);
+ return result == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @param value The clickPotential to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClickPotential(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x10000000;
+ clickPotential_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClickPotential() {
+ bitField0_ = (bitField0_ & ~0x10000000);
+ clickPotential_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private long clickPotentialRank_;
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @return Whether the clickPotentialRank field is set.
+ */
+ @java.lang.Override
+ public boolean hasClickPotentialRank() {
+ return ((bitField0_ & 0x20000000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @return The clickPotentialRank.
+ */
+ @java.lang.Override
+ public long getClickPotentialRank() {
+ return clickPotentialRank_;
+ }
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @param value The clickPotentialRank to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClickPotentialRank(long value) {
+
+ clickPotentialRank_ = value;
+ bitField0_ |= 0x20000000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClickPotentialRank() {
+ bitField0_ = (bitField0_ & ~0x20000000);
+ clickPotentialRank_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.ProductView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ProductView)
+ private static final com.google.shopping.merchant.reports.v1alpha.ProductView DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ProductView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ProductView getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return Whether the id field is set.
+ */
+ boolean hasId();
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The id.
+ */
+ java.lang.String getId();
+
+ /**
+ *
+ *
+ * + * REST ID of the product, in the form of + * `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate + * on products take this as their `name` parameter. + * + * Required in the `SELECT` clause. + *+ * + *
optional string id = 1;
+ *
+ * @return The bytes for id.
+ */
+ com.google.protobuf.ByteString getIdBytes();
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return Whether the channel field is set.
+ */
+ boolean hasChannel();
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return The enum numeric value on the wire for channel.
+ */
+ int getChannelValue();
+
+ /**
+ *
+ *
+ * + * Channel of the product. Can be `ONLINE` or `LOCAL`. + *+ * + *
optional .google.shopping.type.Channel.ChannelEnum channel = 28;
+ *
+ * @return The channel.
+ */
+ com.google.shopping.type.Channel.ChannelEnum getChannel();
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return Whether the languageCode field is set.
+ */
+ boolean hasLanguageCode();
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return The languageCode.
+ */
+ java.lang.String getLanguageCode();
+
+ /**
+ *
+ *
+ * + * Language code of the product in BCP 47 format. + *+ * + *
optional string language_code = 2;
+ *
+ * @return The bytes for languageCode.
+ */
+ com.google.protobuf.ByteString getLanguageCodeBytes();
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return Whether the feedLabel field is set.
+ */
+ boolean hasFeedLabel();
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return The feedLabel.
+ */
+ java.lang.String getFeedLabel();
+
+ /**
+ *
+ *
+ * + * Feed label of the product. + *+ * + *
optional string feed_label = 3;
+ *
+ * @return The bytes for feedLabel.
+ */
+ com.google.protobuf.ByteString getFeedLabelBytes();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return Whether the offerId field is set.
+ */
+ boolean hasOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return The offerId.
+ */
+ java.lang.String getOfferId();
+
+ /**
+ *
+ *
+ * + * Merchant-provided id of the product. + *+ * + *
optional string offer_id = 4;
+ *
+ * @return The bytes for offerId.
+ */
+ com.google.protobuf.ByteString getOfferIdBytes();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * Title of the product. + *+ * + *
optional string title = 5;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return Whether the brand field is set.
+ */
+ boolean hasBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return The brand.
+ */
+ java.lang.String getBrand();
+
+ /**
+ *
+ *
+ * + * Brand of the product. + *+ * + *
optional string brand = 6;
+ *
+ * @return The bytes for brand.
+ */
+ com.google.protobuf.ByteString getBrandBytes();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return Whether the categoryL1 field is set.
+ */
+ boolean hasCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return The categoryL1.
+ */
+ java.lang.String getCategoryL1();
+
+ /**
+ *
+ *
+ * + * Product category (1st level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l1 = 7;
+ *
+ * @return The bytes for categoryL1.
+ */
+ com.google.protobuf.ByteString getCategoryL1Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return Whether the categoryL2 field is set.
+ */
+ boolean hasCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return The categoryL2.
+ */
+ java.lang.String getCategoryL2();
+
+ /**
+ *
+ *
+ * + * Product category (2nd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l2 = 8;
+ *
+ * @return The bytes for categoryL2.
+ */
+ com.google.protobuf.ByteString getCategoryL2Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return Whether the categoryL3 field is set.
+ */
+ boolean hasCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return The categoryL3.
+ */
+ java.lang.String getCategoryL3();
+
+ /**
+ *
+ *
+ * + * Product category (3rd level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l3 = 9;
+ *
+ * @return The bytes for categoryL3.
+ */
+ com.google.protobuf.ByteString getCategoryL3Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return Whether the categoryL4 field is set.
+ */
+ boolean hasCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return The categoryL4.
+ */
+ java.lang.String getCategoryL4();
+
+ /**
+ *
+ *
+ * + * Product category (4th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l4 = 10;
+ *
+ * @return The bytes for categoryL4.
+ */
+ com.google.protobuf.ByteString getCategoryL4Bytes();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return Whether the categoryL5 field is set.
+ */
+ boolean hasCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return The categoryL5.
+ */
+ java.lang.String getCategoryL5();
+
+ /**
+ *
+ *
+ * + * Product category (5th level) in [Google's product + * taxonomy](https://support.google.com/merchants/answer/6324436). + *+ * + *
optional string category_l5 = 11;
+ *
+ * @return The bytes for categoryL5.
+ */
+ com.google.protobuf.ByteString getCategoryL5Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return Whether the productTypeL1 field is set.
+ */
+ boolean hasProductTypeL1();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return The productTypeL1.
+ */
+ java.lang.String getProductTypeL1();
+
+ /**
+ *
+ *
+ * + * Product type (1st level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l1 = 12;
+ *
+ * @return The bytes for productTypeL1.
+ */
+ com.google.protobuf.ByteString getProductTypeL1Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return Whether the productTypeL2 field is set.
+ */
+ boolean hasProductTypeL2();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return The productTypeL2.
+ */
+ java.lang.String getProductTypeL2();
+
+ /**
+ *
+ *
+ * + * Product type (2nd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l2 = 13;
+ *
+ * @return The bytes for productTypeL2.
+ */
+ com.google.protobuf.ByteString getProductTypeL2Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return Whether the productTypeL3 field is set.
+ */
+ boolean hasProductTypeL3();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return The productTypeL3.
+ */
+ java.lang.String getProductTypeL3();
+
+ /**
+ *
+ *
+ * + * Product type (3rd level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l3 = 14;
+ *
+ * @return The bytes for productTypeL3.
+ */
+ com.google.protobuf.ByteString getProductTypeL3Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return Whether the productTypeL4 field is set.
+ */
+ boolean hasProductTypeL4();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return The productTypeL4.
+ */
+ java.lang.String getProductTypeL4();
+
+ /**
+ *
+ *
+ * + * Product type (4th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l4 = 15;
+ *
+ * @return The bytes for productTypeL4.
+ */
+ com.google.protobuf.ByteString getProductTypeL4Bytes();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return Whether the productTypeL5 field is set.
+ */
+ boolean hasProductTypeL5();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return The productTypeL5.
+ */
+ java.lang.String getProductTypeL5();
+
+ /**
+ *
+ *
+ * + * Product type (5th level) in merchant's own [product + * taxonomy](https://support.google.com/merchants/answer/6324406). + *+ * + *
optional string product_type_l5 = 16;
+ *
+ * @return The bytes for productTypeL5.
+ */
+ com.google.protobuf.ByteString getProductTypeL5Bytes();
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ *
+ * @return Whether the price field is set.
+ */
+ boolean hasPrice();
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ *
+ * @return The price.
+ */
+ com.google.shopping.type.Price getPrice();
+
+ /**
+ *
+ *
+ * + * Product price. Absent if the information about the price of the product is + * not available. + *+ * + *
.google.shopping.type.Price price = 17;
+ */
+ com.google.shopping.type.PriceOrBuilder getPriceOrBuilder();
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return Whether the condition field is set.
+ */
+ boolean hasCondition();
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return The condition.
+ */
+ java.lang.String getCondition();
+
+ /**
+ *
+ *
+ * + * [Condition](https://support.google.com/merchants/answer/6324469) of the + * product. + *+ * + *
optional string condition = 18;
+ *
+ * @return The bytes for condition.
+ */
+ com.google.protobuf.ByteString getConditionBytes();
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return Whether the availability field is set.
+ */
+ boolean hasAvailability();
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return The availability.
+ */
+ java.lang.String getAvailability();
+
+ /**
+ *
+ *
+ * + * [Availability](https://support.google.com/merchants/answer/6324448) of the + * product. + *+ * + *
optional string availability = 19;
+ *
+ * @return The bytes for availability.
+ */
+ com.google.protobuf.ByteString getAvailabilityBytes();
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return Whether the shippingLabel field is set.
+ */
+ boolean hasShippingLabel();
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return The shippingLabel.
+ */
+ java.lang.String getShippingLabel();
+
+ /**
+ *
+ *
+ * + * Normalized [shipping + * label](https://support.google.com/merchants/answer/6324504) specified in + * the data source. + *+ * + *
optional string shipping_label = 20;
+ *
+ * @return The bytes for shippingLabel.
+ */
+ com.google.protobuf.ByteString getShippingLabelBytes();
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @return A list containing the gtin.
+ */
+ java.util.List+ * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @return The count of gtin.
+ */
+ int getGtinCount();
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param index The index of the element to return.
+ * @return The gtin at the given index.
+ */
+ java.lang.String getGtin(int index);
+
+ /**
+ *
+ *
+ * + * List of Global Trade Item Numbers (GTINs) of the product. + *+ * + *
repeated string gtin = 21;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the gtin at the given index.
+ */
+ com.google.protobuf.ByteString getGtinBytes(int index);
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return Whether the itemGroupId field is set.
+ */
+ boolean hasItemGroupId();
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return The itemGroupId.
+ */
+ java.lang.String getItemGroupId();
+
+ /**
+ *
+ *
+ * + * Item group id provided by the merchant for grouping variants together. + *+ * + *
optional string item_group_id = 22;
+ *
+ * @return The bytes for itemGroupId.
+ */
+ com.google.protobuf.ByteString getItemGroupIdBytes();
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return Whether the thumbnailLink field is set.
+ */
+ boolean hasThumbnailLink();
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return The thumbnailLink.
+ */
+ java.lang.String getThumbnailLink();
+
+ /**
+ *
+ *
+ * + * Link to the processed image of the product, hosted on the Google + * infrastructure. + *+ * + *
optional string thumbnail_link = 23;
+ *
+ * @return The bytes for thumbnailLink.
+ */
+ com.google.protobuf.ByteString getThumbnailLinkBytes();
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ *
+ * @return Whether the creationTime field is set.
+ */
+ boolean hasCreationTime();
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ *
+ * @return The creationTime.
+ */
+ com.google.protobuf.Timestamp getCreationTime();
+
+ /**
+ *
+ *
+ * + * The time the merchant created the product in timestamp seconds. + *+ * + *
.google.protobuf.Timestamp creation_time = 24;
+ */
+ com.google.protobuf.TimestampOrBuilder getCreationTimeOrBuilder();
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ *
+ * @return Whether the expirationDate field is set.
+ */
+ boolean hasExpirationDate();
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ *
+ * @return The expirationDate.
+ */
+ com.google.type.Date getExpirationDate();
+
+ /**
+ *
+ *
+ * + * Expiration date for the product, specified on insertion. + *+ * + *
.google.type.Date expiration_date = 25;
+ */
+ com.google.type.DateOrBuilder getExpirationDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return Whether the aggregatedReportingContextStatus field is set.
+ */
+ boolean hasAggregatedReportingContextStatus();
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return The enum numeric value on the wire for aggregatedReportingContextStatus.
+ */
+ int getAggregatedReportingContextStatusValue();
+
+ /**
+ *
+ *
+ * + * Aggregated status. + *+ * + *
+ * optional .google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus aggregated_reporting_context_status = 26;
+ *
+ *
+ * @return The aggregatedReportingContextStatus.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.AggregatedReportingContextStatus
+ getAggregatedReportingContextStatus();
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ java.util.List+ * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue getItemIssues(int index);
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ int getItemIssuesCount();
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ java.util.List<
+ ? extends com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder>
+ getItemIssuesOrBuilderList();
+
+ /**
+ *
+ *
+ * + * List of item issues for the product. + * + * **This field cannot be used for sorting the results.** + * + * **Only selected attributes of this field (for example, + * `item_issues.severity.aggregated_severity`) can be used for filtering the + * results.** + *+ * + *
+ * repeated .google.shopping.merchant.reports.v1alpha.ProductView.ItemIssue item_issues = 27;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ItemIssueOrBuilder
+ getItemIssuesOrBuilder(int index);
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @return The enum numeric value on the wire for clickPotential.
+ */
+ int getClickPotentialValue();
+
+ /**
+ *
+ *
+ * + * Estimated performance potential compared to highest performing products of + * the merchant. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential click_potential = 29;
+ *
+ *
+ * @return The clickPotential.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView.ClickPotential getClickPotential();
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @return Whether the clickPotentialRank field is set.
+ */
+ boolean hasClickPotentialRank();
+
+ /**
+ *
+ *
+ * + * Rank of the product based on its click potential. A product with + * `click_potential_rank` 1 has the highest click potential among the + * merchant's products that fulfill the search query conditions. + *+ * + *
optional int64 click_potential_rank = 30;
+ *
+ * @return The clickPotentialRank.
+ */
+ long getClickPotentialRank();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemand.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemand.java
new file mode 100644
index 000000000000..c9ba6e4f2bf5
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/RelativeDemand.java
@@ -0,0 +1,679 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Relative demand of a product cluster or brand in the Best sellers report. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemand} + */ +public final class RelativeDemand extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.RelativeDemand) + RelativeDemandOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RelativeDemand.newBuilder() to construct. + private RelativeDemand(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private RelativeDemand() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RelativeDemand(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.class, + com.google.shopping.merchant.reports.v1alpha.RelativeDemand.Builder.class); + } + + /** + * + * + *
+ * Relative demand values. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnum} + */ + public enum RelativeDemandEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
RELATIVE_DEMAND_ENUM_UNSPECIFIED = 0;
+ */
+ RELATIVE_DEMAND_ENUM_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Demand is 0-5% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
VERY_LOW = 10;
+ */
+ VERY_LOW(10),
+ /**
+ *
+ *
+ * + * Demand is 6-10% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
LOW = 20;
+ */
+ LOW(20),
+ /**
+ *
+ *
+ * + * Demand is 11-20% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
MEDIUM = 30;
+ */
+ MEDIUM(30),
+ /**
+ *
+ *
+ * + * Demand is 21-50% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
HIGH = 40;
+ */
+ HIGH(40),
+ /**
+ *
+ *
+ * + * Demand is 51-100% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
VERY_HIGH = 50;
+ */
+ VERY_HIGH(50),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
RELATIVE_DEMAND_ENUM_UNSPECIFIED = 0;
+ */
+ public static final int RELATIVE_DEMAND_ENUM_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Demand is 0-5% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
VERY_LOW = 10;
+ */
+ public static final int VERY_LOW_VALUE = 10;
+
+ /**
+ *
+ *
+ * + * Demand is 6-10% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
LOW = 20;
+ */
+ public static final int LOW_VALUE = 20;
+
+ /**
+ *
+ *
+ * + * Demand is 11-20% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
MEDIUM = 30;
+ */
+ public static final int MEDIUM_VALUE = 30;
+
+ /**
+ *
+ *
+ * + * Demand is 21-50% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
HIGH = 40;
+ */
+ public static final int HIGH_VALUE = 40;
+
+ /**
+ *
+ *
+ * + * Demand is 51-100% of the demand of the highest ranked product cluster or + * brand. + *+ * + *
VERY_HIGH = 50;
+ */
+ public static final int VERY_HIGH_VALUE = 50;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static RelativeDemandEnum valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static RelativeDemandEnum forNumber(int value) {
+ switch (value) {
+ case 0:
+ return RELATIVE_DEMAND_ENUM_UNSPECIFIED;
+ case 10:
+ return VERY_LOW;
+ case 20:
+ return LOW;
+ case 30:
+ return MEDIUM;
+ case 40:
+ return HIGH;
+ case 50:
+ return VERY_HIGH;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Relative demand of a product cluster or brand in the Best sellers report. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemand} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Relative demand of a product cluster or brand in the Best sellers report + * compared to the previous time period. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType} + */ +public final class RelativeDemandChangeType extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType) + RelativeDemandChangeTypeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RelativeDemandChangeType.newBuilder() to construct. + private RelativeDemandChangeType(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private RelativeDemandChangeType() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RelativeDemandChangeType(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.class, + com.google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.Builder.class); + } + + /** + * + * + *
+ * Relative demand change type values. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnum} + */ + public enum RelativeDemandChangeTypeEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED = 0;
+ */
+ RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Relative demand is lower than the previous time period. + *+ * + *
SINKER = 1;
+ */
+ SINKER(1),
+ /**
+ *
+ *
+ * + * Relative demand is equal to the previous time period. + *+ * + *
FLAT = 2;
+ */
+ FLAT(2),
+ /**
+ *
+ *
+ * + * Relative demand is higher than the previous time period. + *+ * + *
RISER = 3;
+ */
+ RISER(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED = 0;
+ */
+ public static final int RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Relative demand is lower than the previous time period. + *+ * + *
SINKER = 1;
+ */
+ public static final int SINKER_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Relative demand is equal to the previous time period. + *+ * + *
FLAT = 2;
+ */
+ public static final int FLAT_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * Relative demand is higher than the previous time period. + *+ * + *
RISER = 3;
+ */
+ public static final int RISER_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static RelativeDemandChangeTypeEnum valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static RelativeDemandChangeTypeEnum forNumber(int value) {
+ switch (value) {
+ case 0:
+ return RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED;
+ case 1:
+ return SINKER;
+ case 2:
+ return FLAT;
+ case 3:
+ return RISER;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Relative demand of a product cluster or brand in the Best sellers report + * compared to the previous time period. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.RelativeDemandChangeType} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Granularity of the Best sellers report. Best sellers reports are computed + * over a week and a month timeframe. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportGranularity} + */ +public final class ReportGranularity extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ReportGranularity) + ReportGranularityOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ReportGranularity.newBuilder() to construct. + private ReportGranularity(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private ReportGranularity() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ReportGranularity(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.class, + com.google.shopping.merchant.reports.v1alpha.ReportGranularity.Builder.class); + } + + /** + * + * + *
+ * Report granularity values. + *+ * + * Protobuf enum {@code + * google.shopping.merchant.reports.v1alpha.ReportGranularity.ReportGranularityEnum} + */ + public enum ReportGranularityEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
REPORT_GRANULARITY_ENUM_UNSPECIFIED = 0;
+ */
+ REPORT_GRANULARITY_ENUM_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Report is computed over a week timeframe. + *+ * + *
WEEKLY = 1;
+ */
+ WEEKLY(1),
+ /**
+ *
+ *
+ * + * Report is computed over a month timeframe. + *+ * + *
MONTHLY = 2;
+ */
+ MONTHLY(2),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
REPORT_GRANULARITY_ENUM_UNSPECIFIED = 0;
+ */
+ public static final int REPORT_GRANULARITY_ENUM_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Report is computed over a week timeframe. + *+ * + *
WEEKLY = 1;
+ */
+ public static final int WEEKLY_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Report is computed over a month timeframe. + *+ * + *
MONTHLY = 2;
+ */
+ public static final int MONTHLY_VALUE = 2;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ReportGranularityEnum valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static ReportGranularityEnum forNumber(int value) {
+ switch (value) {
+ case 0:
+ return REPORT_GRANULARITY_ENUM_UNSPECIFIED;
+ case 1:
+ return WEEKLY;
+ case 2:
+ return MONTHLY;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Granularity of the Best sellers report. Best sellers reports are computed + * over a week and a month timeframe. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportGranularity} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Result row returned from the search query. + * + * Only the message corresponding to the queried table is populated in the + * response. Within the populated message, only the fields requested explicitly + * in the query are populated. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportRow} + */ +public final class ReportRow extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.ReportRow) + ReportRowOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ReportRow.newBuilder() to construct. + private ReportRow(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private ReportRow() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ReportRow(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.ReportRow.class, + com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder.class); + } + + private int bitField0_; + public static final int PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER = 1; + private com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView + productPerformanceView_; + + /** + * + * + *
+ * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ *
+ * @return Whether the productPerformanceView field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductPerformanceView() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ *
+ * @return The productPerformanceView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ getProductPerformanceView() {
+ return productPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.getDefaultInstance()
+ : productPerformanceView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder
+ getProductPerformanceViewOrBuilder() {
+ return productPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.getDefaultInstance()
+ : productPerformanceView_;
+ }
+
+ public static final int NON_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER = 7;
+ private com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ nonProductPerformanceView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ *
+ * @return Whether the nonProductPerformanceView field is set.
+ */
+ @java.lang.Override
+ public boolean hasNonProductPerformanceView() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ *
+ * @return The nonProductPerformanceView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ getNonProductPerformanceView() {
+ return nonProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ .getDefaultInstance()
+ : nonProductPerformanceView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder
+ getNonProductPerformanceViewOrBuilder() {
+ return nonProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ .getDefaultInstance()
+ : nonProductPerformanceView_;
+ }
+
+ public static final int PRODUCT_VIEW_FIELD_NUMBER = 2;
+ private com.google.shopping.merchant.reports.v1alpha.ProductView productView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ *
+ * @return Whether the productView field is set.
+ */
+ @java.lang.Override
+ public boolean hasProductView() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ *
+ * @return The productView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductView getProductView() {
+ return productView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance()
+ : productView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder
+ getProductViewOrBuilder() {
+ return productView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance()
+ : productView_;
+ }
+
+ public static final int PRICE_COMPETITIVENESS_PRODUCT_VIEW_FIELD_NUMBER = 3;
+ private com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ priceCompetitivenessProductView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ *
+ * @return Whether the priceCompetitivenessProductView field is set.
+ */
+ @java.lang.Override
+ public boolean hasPriceCompetitivenessProductView() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ *
+ * @return The priceCompetitivenessProductView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ getPriceCompetitivenessProductView() {
+ return priceCompetitivenessProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ .getDefaultInstance()
+ : priceCompetitivenessProductView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder
+ getPriceCompetitivenessProductViewOrBuilder() {
+ return priceCompetitivenessProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ .getDefaultInstance()
+ : priceCompetitivenessProductView_;
+ }
+
+ public static final int PRICE_INSIGHTS_PRODUCT_VIEW_FIELD_NUMBER = 4;
+ private com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ priceInsightsProductView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ *
+ * @return Whether the priceInsightsProductView field is set.
+ */
+ @java.lang.Override
+ public boolean hasPriceInsightsProductView() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ *
+ * @return The priceInsightsProductView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ getPriceInsightsProductView() {
+ return priceInsightsProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.getDefaultInstance()
+ : priceInsightsProductView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder
+ getPriceInsightsProductViewOrBuilder() {
+ return priceInsightsProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.getDefaultInstance()
+ : priceInsightsProductView_;
+ }
+
+ public static final int BEST_SELLERS_PRODUCT_CLUSTER_VIEW_FIELD_NUMBER = 5;
+ private com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ bestSellersProductClusterView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ *
+ * @return Whether the bestSellersProductClusterView field is set.
+ */
+ @java.lang.Override
+ public boolean hasBestSellersProductClusterView() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ *
+ * @return The bestSellersProductClusterView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ getBestSellersProductClusterView() {
+ return bestSellersProductClusterView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .getDefaultInstance()
+ : bestSellersProductClusterView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder
+ getBestSellersProductClusterViewOrBuilder() {
+ return bestSellersProductClusterView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .getDefaultInstance()
+ : bestSellersProductClusterView_;
+ }
+
+ public static final int BEST_SELLERS_BRAND_VIEW_FIELD_NUMBER = 6;
+ private com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView bestSellersBrandView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ *
+ * @return Whether the bestSellersBrandView field is set.
+ */
+ @java.lang.Override
+ public boolean hasBestSellersBrandView() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ *
+ * @return The bestSellersBrandView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView
+ getBestSellersBrandView() {
+ return bestSellersBrandView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance()
+ : bestSellersBrandView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder
+ getBestSellersBrandViewOrBuilder() {
+ return bestSellersBrandView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance()
+ : bestSellersBrandView_;
+ }
+
+ public static final int COMPETITIVE_VISIBILITY_COMPETITOR_VIEW_FIELD_NUMBER = 8;
+ private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ competitiveVisibilityCompetitorView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ *
+ * @return Whether the competitiveVisibilityCompetitorView field is set.
+ */
+ @java.lang.Override
+ public boolean hasCompetitiveVisibilityCompetitorView() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ *
+ * @return The competitiveVisibilityCompetitorView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ getCompetitiveVisibilityCompetitorView() {
+ return competitiveVisibilityCompetitorView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .getDefaultInstance()
+ : competitiveVisibilityCompetitorView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorViewOrBuilder
+ getCompetitiveVisibilityCompetitorViewOrBuilder() {
+ return competitiveVisibilityCompetitorView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .getDefaultInstance()
+ : competitiveVisibilityCompetitorView_;
+ }
+
+ public static final int COMPETITIVE_VISIBILITY_TOP_MERCHANT_VIEW_FIELD_NUMBER = 9;
+ private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ competitiveVisibilityTopMerchantView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ *
+ * @return Whether the competitiveVisibilityTopMerchantView field is set.
+ */
+ @java.lang.Override
+ public boolean hasCompetitiveVisibilityTopMerchantView() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ *
+ * @return The competitiveVisibilityTopMerchantView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ getCompetitiveVisibilityTopMerchantView() {
+ return competitiveVisibilityTopMerchantView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .getDefaultInstance()
+ : competitiveVisibilityTopMerchantView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantViewOrBuilder
+ getCompetitiveVisibilityTopMerchantViewOrBuilder() {
+ return competitiveVisibilityTopMerchantView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .getDefaultInstance()
+ : competitiveVisibilityTopMerchantView_;
+ }
+
+ public static final int COMPETITIVE_VISIBILITY_BENCHMARK_VIEW_FIELD_NUMBER = 10;
+ private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ competitiveVisibilityBenchmarkView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ *
+ * @return Whether the competitiveVisibilityBenchmarkView field is set.
+ */
+ @java.lang.Override
+ public boolean hasCompetitiveVisibilityBenchmarkView() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ *
+ * @return The competitiveVisibilityBenchmarkView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ getCompetitiveVisibilityBenchmarkView() {
+ return competitiveVisibilityBenchmarkView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ .getDefaultInstance()
+ : competitiveVisibilityBenchmarkView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkViewOrBuilder
+ getCompetitiveVisibilityBenchmarkViewOrBuilder() {
+ return competitiveVisibilityBenchmarkView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ .getDefaultInstance()
+ : competitiveVisibilityBenchmarkView_;
+ }
+
+ public static final int YOUTUBE_CREATOR_PERFORMANCE_VIEW_FIELD_NUMBER = 11;
+ private com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ youtubeCreatorPerformanceView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ *
+ * @return Whether the youtubeCreatorPerformanceView field is set.
+ */
+ @java.lang.Override
+ public boolean hasYoutubeCreatorPerformanceView() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ *
+ * @return The youtubeCreatorPerformanceView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ getYoutubeCreatorPerformanceView() {
+ return youtubeCreatorPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ .getDefaultInstance()
+ : youtubeCreatorPerformanceView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder
+ getYoutubeCreatorPerformanceViewOrBuilder() {
+ return youtubeCreatorPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ .getDefaultInstance()
+ : youtubeCreatorPerformanceView_;
+ }
+
+ public static final int YOUTUBE_CONTENT_PERFORMANCE_VIEW_FIELD_NUMBER = 12;
+ private com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ youtubeContentPerformanceView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ *
+ * @return Whether the youtubeContentPerformanceView field is set.
+ */
+ @java.lang.Override
+ public boolean hasYoutubeContentPerformanceView() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ *
+ * @return The youtubeContentPerformanceView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ getYoutubeContentPerformanceView() {
+ return youtubeContentPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ .getDefaultInstance()
+ : youtubeContentPerformanceView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder
+ getYoutubeContentPerformanceViewOrBuilder() {
+ return youtubeContentPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ .getDefaultInstance()
+ : youtubeContentPerformanceView_;
+ }
+
+ public static final int YOUTUBE_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER = 13;
+ private com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ youtubeProductPerformanceView_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ *
+ * @return Whether the youtubeProductPerformanceView field is set.
+ */
+ @java.lang.Override
+ public boolean hasYoutubeProductPerformanceView() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ *
+ * @return The youtubeProductPerformanceView.
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ getYoutubeProductPerformanceView() {
+ return youtubeProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ .getDefaultInstance()
+ : youtubeProductPerformanceView_;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder
+ getYoutubeProductPerformanceViewOrBuilder() {
+ return youtubeProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ .getDefaultInstance()
+ : youtubeProductPerformanceView_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getProductPerformanceView());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeMessage(2, getProductView());
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeMessage(3, getPriceCompetitivenessProductView());
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ output.writeMessage(4, getPriceInsightsProductView());
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeMessage(5, getBestSellersProductClusterView());
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ output.writeMessage(6, getBestSellersBrandView());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeMessage(7, getNonProductPerformanceView());
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeMessage(8, getCompetitiveVisibilityCompetitorView());
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ output.writeMessage(9, getCompetitiveVisibilityTopMerchantView());
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ output.writeMessage(10, getCompetitiveVisibilityBenchmarkView());
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ output.writeMessage(11, getYoutubeCreatorPerformanceView());
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ output.writeMessage(12, getYoutubeContentPerformanceView());
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ output.writeMessage(13, getYoutubeProductPerformanceView());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(1, getProductPerformanceView());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getProductView());
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 3, getPriceCompetitivenessProductView());
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 4, getPriceInsightsProductView());
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 5, getBestSellersProductClusterView());
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(6, getBestSellersBrandView());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 7, getNonProductPerformanceView());
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 8, getCompetitiveVisibilityCompetitorView());
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 9, getCompetitiveVisibilityTopMerchantView());
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 10, getCompetitiveVisibilityBenchmarkView());
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 11, getYoutubeCreatorPerformanceView());
+ }
+ if (((bitField0_ & 0x00000800) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 12, getYoutubeContentPerformanceView());
+ }
+ if (((bitField0_ & 0x00001000) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 13, getYoutubeProductPerformanceView());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.ReportRow)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.ReportRow other =
+ (com.google.shopping.merchant.reports.v1alpha.ReportRow) obj;
+
+ if (hasProductPerformanceView() != other.hasProductPerformanceView()) return false;
+ if (hasProductPerformanceView()) {
+ if (!getProductPerformanceView().equals(other.getProductPerformanceView())) return false;
+ }
+ if (hasNonProductPerformanceView() != other.hasNonProductPerformanceView()) return false;
+ if (hasNonProductPerformanceView()) {
+ if (!getNonProductPerformanceView().equals(other.getNonProductPerformanceView()))
+ return false;
+ }
+ if (hasProductView() != other.hasProductView()) return false;
+ if (hasProductView()) {
+ if (!getProductView().equals(other.getProductView())) return false;
+ }
+ if (hasPriceCompetitivenessProductView() != other.hasPriceCompetitivenessProductView())
+ return false;
+ if (hasPriceCompetitivenessProductView()) {
+ if (!getPriceCompetitivenessProductView().equals(other.getPriceCompetitivenessProductView()))
+ return false;
+ }
+ if (hasPriceInsightsProductView() != other.hasPriceInsightsProductView()) return false;
+ if (hasPriceInsightsProductView()) {
+ if (!getPriceInsightsProductView().equals(other.getPriceInsightsProductView())) return false;
+ }
+ if (hasBestSellersProductClusterView() != other.hasBestSellersProductClusterView())
+ return false;
+ if (hasBestSellersProductClusterView()) {
+ if (!getBestSellersProductClusterView().equals(other.getBestSellersProductClusterView()))
+ return false;
+ }
+ if (hasBestSellersBrandView() != other.hasBestSellersBrandView()) return false;
+ if (hasBestSellersBrandView()) {
+ if (!getBestSellersBrandView().equals(other.getBestSellersBrandView())) return false;
+ }
+ if (hasCompetitiveVisibilityCompetitorView() != other.hasCompetitiveVisibilityCompetitorView())
+ return false;
+ if (hasCompetitiveVisibilityCompetitorView()) {
+ if (!getCompetitiveVisibilityCompetitorView()
+ .equals(other.getCompetitiveVisibilityCompetitorView())) return false;
+ }
+ if (hasCompetitiveVisibilityTopMerchantView()
+ != other.hasCompetitiveVisibilityTopMerchantView()) return false;
+ if (hasCompetitiveVisibilityTopMerchantView()) {
+ if (!getCompetitiveVisibilityTopMerchantView()
+ .equals(other.getCompetitiveVisibilityTopMerchantView())) return false;
+ }
+ if (hasCompetitiveVisibilityBenchmarkView() != other.hasCompetitiveVisibilityBenchmarkView())
+ return false;
+ if (hasCompetitiveVisibilityBenchmarkView()) {
+ if (!getCompetitiveVisibilityBenchmarkView()
+ .equals(other.getCompetitiveVisibilityBenchmarkView())) return false;
+ }
+ if (hasYoutubeCreatorPerformanceView() != other.hasYoutubeCreatorPerformanceView())
+ return false;
+ if (hasYoutubeCreatorPerformanceView()) {
+ if (!getYoutubeCreatorPerformanceView().equals(other.getYoutubeCreatorPerformanceView()))
+ return false;
+ }
+ if (hasYoutubeContentPerformanceView() != other.hasYoutubeContentPerformanceView())
+ return false;
+ if (hasYoutubeContentPerformanceView()) {
+ if (!getYoutubeContentPerformanceView().equals(other.getYoutubeContentPerformanceView()))
+ return false;
+ }
+ if (hasYoutubeProductPerformanceView() != other.hasYoutubeProductPerformanceView())
+ return false;
+ if (hasYoutubeProductPerformanceView()) {
+ if (!getYoutubeProductPerformanceView().equals(other.getYoutubeProductPerformanceView()))
+ return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasProductPerformanceView()) {
+ hash = (37 * hash) + PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getProductPerformanceView().hashCode();
+ }
+ if (hasNonProductPerformanceView()) {
+ hash = (37 * hash) + NON_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getNonProductPerformanceView().hashCode();
+ }
+ if (hasProductView()) {
+ hash = (37 * hash) + PRODUCT_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getProductView().hashCode();
+ }
+ if (hasPriceCompetitivenessProductView()) {
+ hash = (37 * hash) + PRICE_COMPETITIVENESS_PRODUCT_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getPriceCompetitivenessProductView().hashCode();
+ }
+ if (hasPriceInsightsProductView()) {
+ hash = (37 * hash) + PRICE_INSIGHTS_PRODUCT_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getPriceInsightsProductView().hashCode();
+ }
+ if (hasBestSellersProductClusterView()) {
+ hash = (37 * hash) + BEST_SELLERS_PRODUCT_CLUSTER_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getBestSellersProductClusterView().hashCode();
+ }
+ if (hasBestSellersBrandView()) {
+ hash = (37 * hash) + BEST_SELLERS_BRAND_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getBestSellersBrandView().hashCode();
+ }
+ if (hasCompetitiveVisibilityCompetitorView()) {
+ hash = (37 * hash) + COMPETITIVE_VISIBILITY_COMPETITOR_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getCompetitiveVisibilityCompetitorView().hashCode();
+ }
+ if (hasCompetitiveVisibilityTopMerchantView()) {
+ hash = (37 * hash) + COMPETITIVE_VISIBILITY_TOP_MERCHANT_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getCompetitiveVisibilityTopMerchantView().hashCode();
+ }
+ if (hasCompetitiveVisibilityBenchmarkView()) {
+ hash = (37 * hash) + COMPETITIVE_VISIBILITY_BENCHMARK_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getCompetitiveVisibilityBenchmarkView().hashCode();
+ }
+ if (hasYoutubeCreatorPerformanceView()) {
+ hash = (37 * hash) + YOUTUBE_CREATOR_PERFORMANCE_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getYoutubeCreatorPerformanceView().hashCode();
+ }
+ if (hasYoutubeContentPerformanceView()) {
+ hash = (37 * hash) + YOUTUBE_CONTENT_PERFORMANCE_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getYoutubeContentPerformanceView().hashCode();
+ }
+ if (hasYoutubeProductPerformanceView()) {
+ hash = (37 * hash) + YOUTUBE_PRODUCT_PERFORMANCE_VIEW_FIELD_NUMBER;
+ hash = (53 * hash) + getYoutubeProductPerformanceView().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.ReportRow prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Result row returned from the search query. + * + * Only the message corresponding to the queried table is populated in the + * response. Within the populated message, only the fields requested explicitly + * in the query are populated. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.ReportRow} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ *
+ * @return Whether the productPerformanceView field is set.
+ */
+ public boolean hasProductPerformanceView() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ *
+ * @return The productPerformanceView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ getProductPerformanceView() {
+ if (productPerformanceViewBuilder_ == null) {
+ return productPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ .getDefaultInstance()
+ : productPerformanceView_;
+ } else {
+ return productPerformanceViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ public Builder setProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView value) {
+ if (productPerformanceViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productPerformanceView_ = value;
+ } else {
+ productPerformanceViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ public Builder setProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder
+ builderForValue) {
+ if (productPerformanceViewBuilder_ == null) {
+ productPerformanceView_ = builderForValue.build();
+ } else {
+ productPerformanceViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ public Builder mergeProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView value) {
+ if (productPerformanceViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && productPerformanceView_ != null
+ && productPerformanceView_
+ != com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ .getDefaultInstance()) {
+ getProductPerformanceViewBuilder().mergeFrom(value);
+ } else {
+ productPerformanceView_ = value;
+ }
+ } else {
+ productPerformanceViewBuilder_.mergeFrom(value);
+ }
+ if (productPerformanceView_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ public Builder clearProductPerformanceView() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ productPerformanceView_ = null;
+ if (productPerformanceViewBuilder_ != null) {
+ productPerformanceViewBuilder_.dispose();
+ productPerformanceViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder
+ getProductPerformanceViewBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getProductPerformanceViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder
+ getProductPerformanceViewOrBuilder() {
+ if (productPerformanceViewBuilder_ != null) {
+ return productPerformanceViewBuilder_.getMessageOrBuilder();
+ } else {
+ return productPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView
+ .getDefaultInstance()
+ : productPerformanceView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder>
+ getProductPerformanceViewFieldBuilder() {
+ if (productPerformanceViewBuilder_ == null) {
+ productPerformanceViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder>(
+ getProductPerformanceView(), getParentForChildren(), isClean());
+ productPerformanceView_ = null;
+ }
+ return productPerformanceViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ nonProductPerformanceView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder>
+ nonProductPerformanceViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ *
+ * @return Whether the nonProductPerformanceView field is set.
+ */
+ public boolean hasNonProductPerformanceView() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ *
+ * @return The nonProductPerformanceView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ getNonProductPerformanceView() {
+ if (nonProductPerformanceViewBuilder_ == null) {
+ return nonProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ .getDefaultInstance()
+ : nonProductPerformanceView_;
+ } else {
+ return nonProductPerformanceViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ public Builder setNonProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView value) {
+ if (nonProductPerformanceViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ nonProductPerformanceView_ = value;
+ } else {
+ nonProductPerformanceViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ public Builder setNonProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder
+ builderForValue) {
+ if (nonProductPerformanceViewBuilder_ == null) {
+ nonProductPerformanceView_ = builderForValue.build();
+ } else {
+ nonProductPerformanceViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ public Builder mergeNonProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView value) {
+ if (nonProductPerformanceViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)
+ && nonProductPerformanceView_ != null
+ && nonProductPerformanceView_
+ != com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ .getDefaultInstance()) {
+ getNonProductPerformanceViewBuilder().mergeFrom(value);
+ } else {
+ nonProductPerformanceView_ = value;
+ }
+ } else {
+ nonProductPerformanceViewBuilder_.mergeFrom(value);
+ }
+ if (nonProductPerformanceView_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ public Builder clearNonProductPerformanceView() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ nonProductPerformanceView_ = null;
+ if (nonProductPerformanceViewBuilder_ != null) {
+ nonProductPerformanceViewBuilder_.dispose();
+ nonProductPerformanceViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder
+ getNonProductPerformanceViewBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getNonProductPerformanceViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder
+ getNonProductPerformanceViewOrBuilder() {
+ if (nonProductPerformanceViewBuilder_ != null) {
+ return nonProductPerformanceViewBuilder_.getMessageOrBuilder();
+ } else {
+ return nonProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ .getDefaultInstance()
+ : nonProductPerformanceView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder>
+ getNonProductPerformanceViewFieldBuilder() {
+ if (nonProductPerformanceViewBuilder_ == null) {
+ nonProductPerformanceViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder>(
+ getNonProductPerformanceView(), getParentForChildren(), isClean());
+ nonProductPerformanceView_ = null;
+ }
+ return nonProductPerformanceViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.ProductView productView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder>
+ productViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ *
+ * @return Whether the productView field is set.
+ */
+ public boolean hasProductView() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ *
+ * @return The productView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView getProductView() {
+ if (productViewBuilder_ == null) {
+ return productView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance()
+ : productView_;
+ } else {
+ return productViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ public Builder setProductView(com.google.shopping.merchant.reports.v1alpha.ProductView value) {
+ if (productViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ productView_ = value;
+ } else {
+ productViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ public Builder setProductView(
+ com.google.shopping.merchant.reports.v1alpha.ProductView.Builder builderForValue) {
+ if (productViewBuilder_ == null) {
+ productView_ = builderForValue.build();
+ } else {
+ productViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ public Builder mergeProductView(
+ com.google.shopping.merchant.reports.v1alpha.ProductView value) {
+ if (productViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) != 0)
+ && productView_ != null
+ && productView_
+ != com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance()) {
+ getProductViewBuilder().mergeFrom(value);
+ } else {
+ productView_ = value;
+ }
+ } else {
+ productViewBuilder_.mergeFrom(value);
+ }
+ if (productView_ != null) {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ public Builder clearProductView() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ productView_ = null;
+ if (productViewBuilder_ != null) {
+ productViewBuilder_.dispose();
+ productViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductView.Builder
+ getProductViewBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getProductViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder
+ getProductViewOrBuilder() {
+ if (productViewBuilder_ != null) {
+ return productViewBuilder_.getMessageOrBuilder();
+ } else {
+ return productView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.ProductView.getDefaultInstance()
+ : productView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder>
+ getProductViewFieldBuilder() {
+ if (productViewBuilder_ == null) {
+ productViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.ProductView,
+ com.google.shopping.merchant.reports.v1alpha.ProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder>(
+ getProductView(), getParentForChildren(), isClean());
+ productView_ = null;
+ }
+ return productViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ priceCompetitivenessProductView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView,
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder>
+ priceCompetitivenessProductViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ *
+ * @return Whether the priceCompetitivenessProductView field is set.
+ */
+ public boolean hasPriceCompetitivenessProductView() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ *
+ * @return The priceCompetitivenessProductView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ getPriceCompetitivenessProductView() {
+ if (priceCompetitivenessProductViewBuilder_ == null) {
+ return priceCompetitivenessProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ .getDefaultInstance()
+ : priceCompetitivenessProductView_;
+ } else {
+ return priceCompetitivenessProductViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ public Builder setPriceCompetitivenessProductView(
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView value) {
+ if (priceCompetitivenessProductViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ priceCompetitivenessProductView_ = value;
+ } else {
+ priceCompetitivenessProductViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ public Builder setPriceCompetitivenessProductView(
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder
+ builderForValue) {
+ if (priceCompetitivenessProductViewBuilder_ == null) {
+ priceCompetitivenessProductView_ = builderForValue.build();
+ } else {
+ priceCompetitivenessProductViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ public Builder mergePriceCompetitivenessProductView(
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView value) {
+ if (priceCompetitivenessProductViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) != 0)
+ && priceCompetitivenessProductView_ != null
+ && priceCompetitivenessProductView_
+ != com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ .getDefaultInstance()) {
+ getPriceCompetitivenessProductViewBuilder().mergeFrom(value);
+ } else {
+ priceCompetitivenessProductView_ = value;
+ }
+ } else {
+ priceCompetitivenessProductViewBuilder_.mergeFrom(value);
+ }
+ if (priceCompetitivenessProductView_ != null) {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ public Builder clearPriceCompetitivenessProductView() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ priceCompetitivenessProductView_ = null;
+ if (priceCompetitivenessProductViewBuilder_ != null) {
+ priceCompetitivenessProductViewBuilder_.dispose();
+ priceCompetitivenessProductViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder
+ getPriceCompetitivenessProductViewBuilder() {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return getPriceCompetitivenessProductViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder
+ getPriceCompetitivenessProductViewOrBuilder() {
+ if (priceCompetitivenessProductViewBuilder_ != null) {
+ return priceCompetitivenessProductViewBuilder_.getMessageOrBuilder();
+ } else {
+ return priceCompetitivenessProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ .getDefaultInstance()
+ : priceCompetitivenessProductView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView,
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder>
+ getPriceCompetitivenessProductViewFieldBuilder() {
+ if (priceCompetitivenessProductViewBuilder_ == null) {
+ priceCompetitivenessProductViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView,
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .PriceCompetitivenessProductViewOrBuilder>(
+ getPriceCompetitivenessProductView(), getParentForChildren(), isClean());
+ priceCompetitivenessProductView_ = null;
+ }
+ return priceCompetitivenessProductViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ priceInsightsProductView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView,
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder>
+ priceInsightsProductViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ *
+ * @return Whether the priceInsightsProductView field is set.
+ */
+ public boolean hasPriceInsightsProductView() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ *
+ * @return The priceInsightsProductView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ getPriceInsightsProductView() {
+ if (priceInsightsProductViewBuilder_ == null) {
+ return priceInsightsProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ .getDefaultInstance()
+ : priceInsightsProductView_;
+ } else {
+ return priceInsightsProductViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ public Builder setPriceInsightsProductView(
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView value) {
+ if (priceInsightsProductViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ priceInsightsProductView_ = value;
+ } else {
+ priceInsightsProductViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ public Builder setPriceInsightsProductView(
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder
+ builderForValue) {
+ if (priceInsightsProductViewBuilder_ == null) {
+ priceInsightsProductView_ = builderForValue.build();
+ } else {
+ priceInsightsProductViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ public Builder mergePriceInsightsProductView(
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView value) {
+ if (priceInsightsProductViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) != 0)
+ && priceInsightsProductView_ != null
+ && priceInsightsProductView_
+ != com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ .getDefaultInstance()) {
+ getPriceInsightsProductViewBuilder().mergeFrom(value);
+ } else {
+ priceInsightsProductView_ = value;
+ }
+ } else {
+ priceInsightsProductViewBuilder_.mergeFrom(value);
+ }
+ if (priceInsightsProductView_ != null) {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ public Builder clearPriceInsightsProductView() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ priceInsightsProductView_ = null;
+ if (priceInsightsProductViewBuilder_ != null) {
+ priceInsightsProductViewBuilder_.dispose();
+ priceInsightsProductViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder
+ getPriceInsightsProductViewBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return getPriceInsightsProductViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder
+ getPriceInsightsProductViewOrBuilder() {
+ if (priceInsightsProductViewBuilder_ != null) {
+ return priceInsightsProductViewBuilder_.getMessageOrBuilder();
+ } else {
+ return priceInsightsProductView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ .getDefaultInstance()
+ : priceInsightsProductView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView,
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder>
+ getPriceInsightsProductViewFieldBuilder() {
+ if (priceInsightsProductViewBuilder_ == null) {
+ priceInsightsProductViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView,
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder>(
+ getPriceInsightsProductView(), getParentForChildren(), isClean());
+ priceInsightsProductView_ = null;
+ }
+ return priceInsightsProductViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ bestSellersProductClusterView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder>
+ bestSellersProductClusterViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ *
+ * @return Whether the bestSellersProductClusterView field is set.
+ */
+ public boolean hasBestSellersProductClusterView() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ *
+ * @return The bestSellersProductClusterView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ getBestSellersProductClusterView() {
+ if (bestSellersProductClusterViewBuilder_ == null) {
+ return bestSellersProductClusterView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .getDefaultInstance()
+ : bestSellersProductClusterView_;
+ } else {
+ return bestSellersProductClusterViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ public Builder setBestSellersProductClusterView(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView value) {
+ if (bestSellersProductClusterViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bestSellersProductClusterView_ = value;
+ } else {
+ bestSellersProductClusterViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ public Builder setBestSellersProductClusterView(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder
+ builderForValue) {
+ if (bestSellersProductClusterViewBuilder_ == null) {
+ bestSellersProductClusterView_ = builderForValue.build();
+ } else {
+ bestSellersProductClusterViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ public Builder mergeBestSellersProductClusterView(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView value) {
+ if (bestSellersProductClusterViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) != 0)
+ && bestSellersProductClusterView_ != null
+ && bestSellersProductClusterView_
+ != com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .getDefaultInstance()) {
+ getBestSellersProductClusterViewBuilder().mergeFrom(value);
+ } else {
+ bestSellersProductClusterView_ = value;
+ }
+ } else {
+ bestSellersProductClusterViewBuilder_.mergeFrom(value);
+ }
+ if (bestSellersProductClusterView_ != null) {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ public Builder clearBestSellersProductClusterView() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ bestSellersProductClusterView_ = null;
+ if (bestSellersProductClusterViewBuilder_ != null) {
+ bestSellersProductClusterViewBuilder_.dispose();
+ bestSellersProductClusterViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder
+ getBestSellersProductClusterViewBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return getBestSellersProductClusterViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder
+ getBestSellersProductClusterViewOrBuilder() {
+ if (bestSellersProductClusterViewBuilder_ != null) {
+ return bestSellersProductClusterViewBuilder_.getMessageOrBuilder();
+ } else {
+ return bestSellersProductClusterView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ .getDefaultInstance()
+ : bestSellersProductClusterView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder>
+ getBestSellersProductClusterViewFieldBuilder() {
+ if (bestSellersProductClusterViewBuilder_ == null) {
+ bestSellersProductClusterViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView.Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .BestSellersProductClusterViewOrBuilder>(
+ getBestSellersProductClusterView(), getParentForChildren(), isClean());
+ bestSellersProductClusterView_ = null;
+ }
+ return bestSellersProductClusterViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView bestSellersBrandView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder>
+ bestSellersBrandViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ *
+ * @return Whether the bestSellersBrandView field is set.
+ */
+ public boolean hasBestSellersBrandView() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ *
+ * @return The bestSellersBrandView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView
+ getBestSellersBrandView() {
+ if (bestSellersBrandViewBuilder_ == null) {
+ return bestSellersBrandView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance()
+ : bestSellersBrandView_;
+ } else {
+ return bestSellersBrandViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ public Builder setBestSellersBrandView(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView value) {
+ if (bestSellersBrandViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bestSellersBrandView_ = value;
+ } else {
+ bestSellersBrandViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ public Builder setBestSellersBrandView(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder builderForValue) {
+ if (bestSellersBrandViewBuilder_ == null) {
+ bestSellersBrandView_ = builderForValue.build();
+ } else {
+ bestSellersBrandViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ public Builder mergeBestSellersBrandView(
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView value) {
+ if (bestSellersBrandViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) != 0)
+ && bestSellersBrandView_ != null
+ && bestSellersBrandView_
+ != com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView
+ .getDefaultInstance()) {
+ getBestSellersBrandViewBuilder().mergeFrom(value);
+ } else {
+ bestSellersBrandView_ = value;
+ }
+ } else {
+ bestSellersBrandViewBuilder_.mergeFrom(value);
+ }
+ if (bestSellersBrandView_ != null) {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ public Builder clearBestSellersBrandView() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ bestSellersBrandView_ = null;
+ if (bestSellersBrandViewBuilder_ != null) {
+ bestSellersBrandViewBuilder_.dispose();
+ bestSellersBrandViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder
+ getBestSellersBrandViewBuilder() {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return getBestSellersBrandViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder
+ getBestSellersBrandViewOrBuilder() {
+ if (bestSellersBrandViewBuilder_ != null) {
+ return bestSellersBrandViewBuilder_.getMessageOrBuilder();
+ } else {
+ return bestSellersBrandView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.getDefaultInstance()
+ : bestSellersBrandView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder>
+ getBestSellersBrandViewFieldBuilder() {
+ if (bestSellersBrandViewBuilder_ == null) {
+ bestSellersBrandViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder>(
+ getBestSellersBrandView(), getParentForChildren(), isClean());
+ bestSellersBrandView_ = null;
+ }
+ return bestSellersBrandViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ competitiveVisibilityCompetitorView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityCompetitorViewOrBuilder>
+ competitiveVisibilityCompetitorViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ *
+ * @return Whether the competitiveVisibilityCompetitorView field is set.
+ */
+ public boolean hasCompetitiveVisibilityCompetitorView() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ *
+ * @return The competitiveVisibilityCompetitorView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ getCompetitiveVisibilityCompetitorView() {
+ if (competitiveVisibilityCompetitorViewBuilder_ == null) {
+ return competitiveVisibilityCompetitorView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .getDefaultInstance()
+ : competitiveVisibilityCompetitorView_;
+ } else {
+ return competitiveVisibilityCompetitorViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ public Builder setCompetitiveVisibilityCompetitorView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView value) {
+ if (competitiveVisibilityCompetitorViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ competitiveVisibilityCompetitorView_ = value;
+ } else {
+ competitiveVisibilityCompetitorViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ public Builder setCompetitiveVisibilityCompetitorView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.Builder
+ builderForValue) {
+ if (competitiveVisibilityCompetitorViewBuilder_ == null) {
+ competitiveVisibilityCompetitorView_ = builderForValue.build();
+ } else {
+ competitiveVisibilityCompetitorViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ public Builder mergeCompetitiveVisibilityCompetitorView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView value) {
+ if (competitiveVisibilityCompetitorViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000080) != 0)
+ && competitiveVisibilityCompetitorView_ != null
+ && competitiveVisibilityCompetitorView_
+ != com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .getDefaultInstance()) {
+ getCompetitiveVisibilityCompetitorViewBuilder().mergeFrom(value);
+ } else {
+ competitiveVisibilityCompetitorView_ = value;
+ }
+ } else {
+ competitiveVisibilityCompetitorViewBuilder_.mergeFrom(value);
+ }
+ if (competitiveVisibilityCompetitorView_ != null) {
+ bitField0_ |= 0x00000080;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ public Builder clearCompetitiveVisibilityCompetitorView() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ competitiveVisibilityCompetitorView_ = null;
+ if (competitiveVisibilityCompetitorViewBuilder_ != null) {
+ competitiveVisibilityCompetitorViewBuilder_.dispose();
+ competitiveVisibilityCompetitorViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView.Builder
+ getCompetitiveVisibilityCompetitorViewBuilder() {
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return getCompetitiveVisibilityCompetitorViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorViewOrBuilder
+ getCompetitiveVisibilityCompetitorViewOrBuilder() {
+ if (competitiveVisibilityCompetitorViewBuilder_ != null) {
+ return competitiveVisibilityCompetitorViewBuilder_.getMessageOrBuilder();
+ } else {
+ return competitiveVisibilityCompetitorView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .getDefaultInstance()
+ : competitiveVisibilityCompetitorView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityCompetitorViewOrBuilder>
+ getCompetitiveVisibilityCompetitorViewFieldBuilder() {
+ if (competitiveVisibilityCompetitorViewBuilder_ == null) {
+ competitiveVisibilityCompetitorViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityCompetitorViewOrBuilder>(
+ getCompetitiveVisibilityCompetitorView(), getParentForChildren(), isClean());
+ competitiveVisibilityCompetitorView_ = null;
+ }
+ return competitiveVisibilityCompetitorViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ competitiveVisibilityTopMerchantView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityTopMerchantViewOrBuilder>
+ competitiveVisibilityTopMerchantViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ *
+ * @return Whether the competitiveVisibilityTopMerchantView field is set.
+ */
+ public boolean hasCompetitiveVisibilityTopMerchantView() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ *
+ * @return The competitiveVisibilityTopMerchantView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ getCompetitiveVisibilityTopMerchantView() {
+ if (competitiveVisibilityTopMerchantViewBuilder_ == null) {
+ return competitiveVisibilityTopMerchantView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .getDefaultInstance()
+ : competitiveVisibilityTopMerchantView_;
+ } else {
+ return competitiveVisibilityTopMerchantViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ public Builder setCompetitiveVisibilityTopMerchantView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView value) {
+ if (competitiveVisibilityTopMerchantViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ competitiveVisibilityTopMerchantView_ = value;
+ } else {
+ competitiveVisibilityTopMerchantViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ public Builder setCompetitiveVisibilityTopMerchantView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView.Builder
+ builderForValue) {
+ if (competitiveVisibilityTopMerchantViewBuilder_ == null) {
+ competitiveVisibilityTopMerchantView_ = builderForValue.build();
+ } else {
+ competitiveVisibilityTopMerchantViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ public Builder mergeCompetitiveVisibilityTopMerchantView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView value) {
+ if (competitiveVisibilityTopMerchantViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000100) != 0)
+ && competitiveVisibilityTopMerchantView_ != null
+ && competitiveVisibilityTopMerchantView_
+ != com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .getDefaultInstance()) {
+ getCompetitiveVisibilityTopMerchantViewBuilder().mergeFrom(value);
+ } else {
+ competitiveVisibilityTopMerchantView_ = value;
+ }
+ } else {
+ competitiveVisibilityTopMerchantViewBuilder_.mergeFrom(value);
+ }
+ if (competitiveVisibilityTopMerchantView_ != null) {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ public Builder clearCompetitiveVisibilityTopMerchantView() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ competitiveVisibilityTopMerchantView_ = null;
+ if (competitiveVisibilityTopMerchantViewBuilder_ != null) {
+ competitiveVisibilityTopMerchantViewBuilder_.dispose();
+ competitiveVisibilityTopMerchantViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView.Builder
+ getCompetitiveVisibilityTopMerchantViewBuilder() {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return getCompetitiveVisibilityTopMerchantViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityTopMerchantViewOrBuilder
+ getCompetitiveVisibilityTopMerchantViewOrBuilder() {
+ if (competitiveVisibilityTopMerchantViewBuilder_ != null) {
+ return competitiveVisibilityTopMerchantViewBuilder_.getMessageOrBuilder();
+ } else {
+ return competitiveVisibilityTopMerchantView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .getDefaultInstance()
+ : competitiveVisibilityTopMerchantView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityTopMerchantViewOrBuilder>
+ getCompetitiveVisibilityTopMerchantViewFieldBuilder() {
+ if (competitiveVisibilityTopMerchantViewBuilder_ == null) {
+ competitiveVisibilityTopMerchantViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityTopMerchantViewOrBuilder>(
+ getCompetitiveVisibilityTopMerchantView(), getParentForChildren(), isClean());
+ competitiveVisibilityTopMerchantView_ = null;
+ }
+ return competitiveVisibilityTopMerchantViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ competitiveVisibilityBenchmarkView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityBenchmarkViewOrBuilder>
+ competitiveVisibilityBenchmarkViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ *
+ * @return Whether the competitiveVisibilityBenchmarkView field is set.
+ */
+ public boolean hasCompetitiveVisibilityBenchmarkView() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ *
+ * @return The competitiveVisibilityBenchmarkView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ getCompetitiveVisibilityBenchmarkView() {
+ if (competitiveVisibilityBenchmarkViewBuilder_ == null) {
+ return competitiveVisibilityBenchmarkView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ .getDefaultInstance()
+ : competitiveVisibilityBenchmarkView_;
+ } else {
+ return competitiveVisibilityBenchmarkViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ public Builder setCompetitiveVisibilityBenchmarkView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView value) {
+ if (competitiveVisibilityBenchmarkViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ competitiveVisibilityBenchmarkView_ = value;
+ } else {
+ competitiveVisibilityBenchmarkViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ public Builder setCompetitiveVisibilityBenchmarkView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder
+ builderForValue) {
+ if (competitiveVisibilityBenchmarkViewBuilder_ == null) {
+ competitiveVisibilityBenchmarkView_ = builderForValue.build();
+ } else {
+ competitiveVisibilityBenchmarkViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ public Builder mergeCompetitiveVisibilityBenchmarkView(
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView value) {
+ if (competitiveVisibilityBenchmarkViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000200) != 0)
+ && competitiveVisibilityBenchmarkView_ != null
+ && competitiveVisibilityBenchmarkView_
+ != com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ .getDefaultInstance()) {
+ getCompetitiveVisibilityBenchmarkViewBuilder().mergeFrom(value);
+ } else {
+ competitiveVisibilityBenchmarkView_ = value;
+ }
+ } else {
+ competitiveVisibilityBenchmarkViewBuilder_.mergeFrom(value);
+ }
+ if (competitiveVisibilityBenchmarkView_ != null) {
+ bitField0_ |= 0x00000200;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ public Builder clearCompetitiveVisibilityBenchmarkView() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ competitiveVisibilityBenchmarkView_ = null;
+ if (competitiveVisibilityBenchmarkViewBuilder_ != null) {
+ competitiveVisibilityBenchmarkViewBuilder_.dispose();
+ competitiveVisibilityBenchmarkViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder
+ getCompetitiveVisibilityBenchmarkViewBuilder() {
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return getCompetitiveVisibilityBenchmarkViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkViewOrBuilder
+ getCompetitiveVisibilityBenchmarkViewOrBuilder() {
+ if (competitiveVisibilityBenchmarkViewBuilder_ != null) {
+ return competitiveVisibilityBenchmarkViewBuilder_.getMessageOrBuilder();
+ } else {
+ return competitiveVisibilityBenchmarkView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ .getDefaultInstance()
+ : competitiveVisibilityBenchmarkView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView.Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityBenchmarkViewOrBuilder>
+ getCompetitiveVisibilityBenchmarkViewFieldBuilder() {
+ if (competitiveVisibilityBenchmarkViewBuilder_ == null) {
+ competitiveVisibilityBenchmarkViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView,
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ .Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .CompetitiveVisibilityBenchmarkViewOrBuilder>(
+ getCompetitiveVisibilityBenchmarkView(), getParentForChildren(), isClean());
+ competitiveVisibilityBenchmarkView_ = null;
+ }
+ return competitiveVisibilityBenchmarkViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ youtubeCreatorPerformanceView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder>
+ youtubeCreatorPerformanceViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ *
+ * @return Whether the youtubeCreatorPerformanceView field is set.
+ */
+ public boolean hasYoutubeCreatorPerformanceView() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ *
+ * @return The youtubeCreatorPerformanceView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ getYoutubeCreatorPerformanceView() {
+ if (youtubeCreatorPerformanceViewBuilder_ == null) {
+ return youtubeCreatorPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ .getDefaultInstance()
+ : youtubeCreatorPerformanceView_;
+ } else {
+ return youtubeCreatorPerformanceViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ public Builder setYoutubeCreatorPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView value) {
+ if (youtubeCreatorPerformanceViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ youtubeCreatorPerformanceView_ = value;
+ } else {
+ youtubeCreatorPerformanceViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ public Builder setYoutubeCreatorPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder
+ builderForValue) {
+ if (youtubeCreatorPerformanceViewBuilder_ == null) {
+ youtubeCreatorPerformanceView_ = builderForValue.build();
+ } else {
+ youtubeCreatorPerformanceViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ public Builder mergeYoutubeCreatorPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView value) {
+ if (youtubeCreatorPerformanceViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000400) != 0)
+ && youtubeCreatorPerformanceView_ != null
+ && youtubeCreatorPerformanceView_
+ != com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ .getDefaultInstance()) {
+ getYoutubeCreatorPerformanceViewBuilder().mergeFrom(value);
+ } else {
+ youtubeCreatorPerformanceView_ = value;
+ }
+ } else {
+ youtubeCreatorPerformanceViewBuilder_.mergeFrom(value);
+ }
+ if (youtubeCreatorPerformanceView_ != null) {
+ bitField0_ |= 0x00000400;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ public Builder clearYoutubeCreatorPerformanceView() {
+ bitField0_ = (bitField0_ & ~0x00000400);
+ youtubeCreatorPerformanceView_ = null;
+ if (youtubeCreatorPerformanceViewBuilder_ != null) {
+ youtubeCreatorPerformanceViewBuilder_.dispose();
+ youtubeCreatorPerformanceViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder
+ getYoutubeCreatorPerformanceViewBuilder() {
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return getYoutubeCreatorPerformanceViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder
+ getYoutubeCreatorPerformanceViewOrBuilder() {
+ if (youtubeCreatorPerformanceViewBuilder_ != null) {
+ return youtubeCreatorPerformanceViewBuilder_.getMessageOrBuilder();
+ } else {
+ return youtubeCreatorPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ .getDefaultInstance()
+ : youtubeCreatorPerformanceView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder>
+ getYoutubeCreatorPerformanceViewFieldBuilder() {
+ if (youtubeCreatorPerformanceViewBuilder_ == null) {
+ youtubeCreatorPerformanceViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .YoutubeCreatorPerformanceViewOrBuilder>(
+ getYoutubeCreatorPerformanceView(), getParentForChildren(), isClean());
+ youtubeCreatorPerformanceView_ = null;
+ }
+ return youtubeCreatorPerformanceViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ youtubeContentPerformanceView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder>
+ youtubeContentPerformanceViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ *
+ * @return Whether the youtubeContentPerformanceView field is set.
+ */
+ public boolean hasYoutubeContentPerformanceView() {
+ return ((bitField0_ & 0x00000800) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ *
+ * @return The youtubeContentPerformanceView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ getYoutubeContentPerformanceView() {
+ if (youtubeContentPerformanceViewBuilder_ == null) {
+ return youtubeContentPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ .getDefaultInstance()
+ : youtubeContentPerformanceView_;
+ } else {
+ return youtubeContentPerformanceViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ public Builder setYoutubeContentPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView value) {
+ if (youtubeContentPerformanceViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ youtubeContentPerformanceView_ = value;
+ } else {
+ youtubeContentPerformanceViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ public Builder setYoutubeContentPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder
+ builderForValue) {
+ if (youtubeContentPerformanceViewBuilder_ == null) {
+ youtubeContentPerformanceView_ = builderForValue.build();
+ } else {
+ youtubeContentPerformanceViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ public Builder mergeYoutubeContentPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView value) {
+ if (youtubeContentPerformanceViewBuilder_ == null) {
+ if (((bitField0_ & 0x00000800) != 0)
+ && youtubeContentPerformanceView_ != null
+ && youtubeContentPerformanceView_
+ != com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ .getDefaultInstance()) {
+ getYoutubeContentPerformanceViewBuilder().mergeFrom(value);
+ } else {
+ youtubeContentPerformanceView_ = value;
+ }
+ } else {
+ youtubeContentPerformanceViewBuilder_.mergeFrom(value);
+ }
+ if (youtubeContentPerformanceView_ != null) {
+ bitField0_ |= 0x00000800;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ public Builder clearYoutubeContentPerformanceView() {
+ bitField0_ = (bitField0_ & ~0x00000800);
+ youtubeContentPerformanceView_ = null;
+ if (youtubeContentPerformanceViewBuilder_ != null) {
+ youtubeContentPerformanceViewBuilder_.dispose();
+ youtubeContentPerformanceViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder
+ getYoutubeContentPerformanceViewBuilder() {
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return getYoutubeContentPerformanceViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder
+ getYoutubeContentPerformanceViewOrBuilder() {
+ if (youtubeContentPerformanceViewBuilder_ != null) {
+ return youtubeContentPerformanceViewBuilder_.getMessageOrBuilder();
+ } else {
+ return youtubeContentPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ .getDefaultInstance()
+ : youtubeContentPerformanceView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder>
+ getYoutubeContentPerformanceViewFieldBuilder() {
+ if (youtubeContentPerformanceViewBuilder_ == null) {
+ youtubeContentPerformanceViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .YoutubeContentPerformanceViewOrBuilder>(
+ getYoutubeContentPerformanceView(), getParentForChildren(), isClean());
+ youtubeContentPerformanceView_ = null;
+ }
+ return youtubeContentPerformanceViewBuilder_;
+ }
+
+ private com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ youtubeProductPerformanceView_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder>
+ youtubeProductPerformanceViewBuilder_;
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ *
+ * @return Whether the youtubeProductPerformanceView field is set.
+ */
+ public boolean hasYoutubeProductPerformanceView() {
+ return ((bitField0_ & 0x00001000) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ *
+ * @return The youtubeProductPerformanceView.
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ getYoutubeProductPerformanceView() {
+ if (youtubeProductPerformanceViewBuilder_ == null) {
+ return youtubeProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ .getDefaultInstance()
+ : youtubeProductPerformanceView_;
+ } else {
+ return youtubeProductPerformanceViewBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ public Builder setYoutubeProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView value) {
+ if (youtubeProductPerformanceViewBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ youtubeProductPerformanceView_ = value;
+ } else {
+ youtubeProductPerformanceViewBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ public Builder setYoutubeProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder
+ builderForValue) {
+ if (youtubeProductPerformanceViewBuilder_ == null) {
+ youtubeProductPerformanceView_ = builderForValue.build();
+ } else {
+ youtubeProductPerformanceViewBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ public Builder mergeYoutubeProductPerformanceView(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView value) {
+ if (youtubeProductPerformanceViewBuilder_ == null) {
+ if (((bitField0_ & 0x00001000) != 0)
+ && youtubeProductPerformanceView_ != null
+ && youtubeProductPerformanceView_
+ != com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ .getDefaultInstance()) {
+ getYoutubeProductPerformanceViewBuilder().mergeFrom(value);
+ } else {
+ youtubeProductPerformanceView_ = value;
+ }
+ } else {
+ youtubeProductPerformanceViewBuilder_.mergeFrom(value);
+ }
+ if (youtubeProductPerformanceView_ != null) {
+ bitField0_ |= 0x00001000;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ public Builder clearYoutubeProductPerformanceView() {
+ bitField0_ = (bitField0_ & ~0x00001000);
+ youtubeProductPerformanceView_ = null;
+ if (youtubeProductPerformanceViewBuilder_ != null) {
+ youtubeProductPerformanceViewBuilder_.dispose();
+ youtubeProductPerformanceViewBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder
+ getYoutubeProductPerformanceViewBuilder() {
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return getYoutubeProductPerformanceViewFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ public com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder
+ getYoutubeProductPerformanceViewOrBuilder() {
+ if (youtubeProductPerformanceViewBuilder_ != null) {
+ return youtubeProductPerformanceViewBuilder_.getMessageOrBuilder();
+ } else {
+ return youtubeProductPerformanceView_ == null
+ ? com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ .getDefaultInstance()
+ : youtubeProductPerformanceView_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder>
+ getYoutubeProductPerformanceViewFieldBuilder() {
+ if (youtubeProductPerformanceViewBuilder_ == null) {
+ youtubeProductPerformanceViewBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView,
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder,
+ com.google.shopping.merchant.reports.v1alpha
+ .YoutubeProductPerformanceViewOrBuilder>(
+ getYoutubeProductPerformanceView(), getParentForChildren(), isClean());
+ youtubeProductPerformanceView_ = null;
+ }
+ return youtubeProductPerformanceViewBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.ReportRow)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.ReportRow)
+ private static final com.google.shopping.merchant.reports.v1alpha.ReportRow DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.ReportRow();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.ReportRow getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ *
+ * @return Whether the productPerformanceView field is set.
+ */
+ boolean hasProductPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ *
+ * @return The productPerformanceView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceView getProductPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.ProductPerformanceView product_performance_view = 1;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductPerformanceViewOrBuilder
+ getProductPerformanceViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ *
+ * @return Whether the nonProductPerformanceView field is set.
+ */
+ boolean hasNonProductPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ *
+ * @return The nonProductPerformanceView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceView
+ getNonProductPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `non_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.NonProductPerformanceView non_product_performance_view = 7;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.NonProductPerformanceViewOrBuilder
+ getNonProductPerformanceViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ *
+ * @return Whether the productView field is set.
+ */
+ boolean hasProductView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ *
+ * @return The productView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductView getProductView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `product_view` table. + *+ * + *
.google.shopping.merchant.reports.v1alpha.ProductView product_view = 2;
+ */
+ com.google.shopping.merchant.reports.v1alpha.ProductViewOrBuilder getProductViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ *
+ * @return Whether the priceCompetitivenessProductView field is set.
+ */
+ boolean hasPriceCompetitivenessProductView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ *
+ * @return The priceCompetitivenessProductView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView
+ getPriceCompetitivenessProductView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_competitiveness_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductViewOrBuilder
+ getPriceCompetitivenessProductViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ *
+ * @return Whether the priceInsightsProductView field is set.
+ */
+ boolean hasPriceInsightsProductView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ *
+ * @return The priceInsightsProductView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductView
+ getPriceInsightsProductView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `price_insights_product_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.PriceInsightsProductView price_insights_product_view = 4;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.PriceInsightsProductViewOrBuilder
+ getPriceInsightsProductViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ *
+ * @return Whether the bestSellersProductClusterView field is set.
+ */
+ boolean hasBestSellersProductClusterView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ *
+ * @return The bestSellersProductClusterView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView
+ getBestSellersProductClusterView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_product_cluster_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.BestSellersProductClusterViewOrBuilder
+ getBestSellersProductClusterViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ *
+ * @return Whether the bestSellersBrandView field is set.
+ */
+ boolean hasBestSellersBrandView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ *
+ * @return The bestSellersBrandView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandView getBestSellersBrandView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `best_sellers_brand_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.BestSellersBrandView best_sellers_brand_view = 6;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.BestSellersBrandViewOrBuilder
+ getBestSellersBrandViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ *
+ * @return Whether the competitiveVisibilityCompetitorView field is set.
+ */
+ boolean hasCompetitiveVisibilityCompetitorView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ *
+ * @return The competitiveVisibilityCompetitorView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView
+ getCompetitiveVisibilityCompetitorView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_competitor_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view = 8;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityCompetitorViewOrBuilder
+ getCompetitiveVisibilityCompetitorViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ *
+ * @return Whether the competitiveVisibilityTopMerchantView field is set.
+ */
+ boolean hasCompetitiveVisibilityTopMerchantView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ *
+ * @return The competitiveVisibilityTopMerchantView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView
+ getCompetitiveVisibilityTopMerchantView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_top_merchant_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantView competitive_visibility_top_merchant_view = 9;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityTopMerchantViewOrBuilder
+ getCompetitiveVisibilityTopMerchantViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ *
+ * @return Whether the competitiveVisibilityBenchmarkView field is set.
+ */
+ boolean hasCompetitiveVisibilityBenchmarkView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ *
+ * @return The competitiveVisibilityBenchmarkView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView
+ getCompetitiveVisibilityBenchmarkView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `competitive_visibility_benchmark_view` + * table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.CompetitiveVisibilityBenchmarkViewOrBuilder
+ getCompetitiveVisibilityBenchmarkViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ *
+ * @return Whether the youtubeCreatorPerformanceView field is set.
+ */
+ boolean hasYoutubeCreatorPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ *
+ * @return The youtubeCreatorPerformanceView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ getYoutubeCreatorPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceViewOrBuilder
+ getYoutubeCreatorPerformanceViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ *
+ * @return Whether the youtubeContentPerformanceView field is set.
+ */
+ boolean hasYoutubeContentPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ *
+ * @return The youtubeContentPerformanceView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ getYoutubeContentPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView youtube_content_performance_view = 12;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceViewOrBuilder
+ getYoutubeContentPerformanceViewOrBuilder();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ *
+ * @return Whether the youtubeProductPerformanceView field is set.
+ */
+ boolean hasYoutubeProductPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ *
+ * @return The youtubeProductPerformanceView.
+ */
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ getYoutubeProductPerformanceView();
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + *+ * + *
+ * .google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView youtube_product_performance_view = 13;
+ *
+ */
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceViewOrBuilder
+ getYoutubeProductPerformanceViewOrBuilder();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportsProto.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportsProto.java
new file mode 100644
index 000000000000..368dc71e63b6
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/ReportsProto.java
@@ -0,0 +1,1107 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+public final class ReportsProto {
+ private ReportsProto() {}
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ return descriptor;
+ }
+
+ private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
+
+ static {
+ java.lang.String[] descriptorData = {
+ "\n"
+ + "6google/shopping/merchant/reports/v1alpha/reports.proto\022(google.shopping.mercha"
+ + "nt.reports.v1alpha\032\034google/api/annotatio"
+ + "ns.proto\032\027google/api/client.proto\032\037googl"
+ + "e/api/field_behavior.proto\032\037google/protobuf/timestamp.proto\032"
+ + " google/shopping/type/types.proto\032\026google/type/date.proto\"i\n"
+ + "\r"
+ + "SearchRequest\022\023\n"
+ + "\006parent\030\001 \001(\tB\003\340A\002\022\022\n"
+ + "\005query\030\002 \001(\tB\003\340A\002\022\026\n"
+ + "\tpage_size\030\003 \001(\005B\003\340A\001\022\027\n\n"
+ + "page_token\030\004 \001(\tB\003\340A\001\"o\n"
+ + "\016SearchResponse\022D\n"
+ + "\007results\030\001"
+ + " \003(\01323.google.shopping.merchant.reports.v1alpha.ReportRow\022\027\n"
+ + "\017next_page_token\030\002 \001(\t\"\264\013\n"
+ + "\tReportRow\022b\n"
+ + "\030product_performance_view\030\001 \001(\0132@.google.shopp"
+ + "ing.merchant.reports.v1alpha.ProductPerformanceView\022i\n"
+ + "\034non_product_performance_view\030\007 \001(\0132C.google.shopping.merchant.rep"
+ + "orts.v1alpha.NonProductPerformanceView\022K\n"
+ + "\014product_view\030\002"
+ + " \001(\01325.google.shopping.merchant.reports.v1alpha.ProductView\022u\n"
+ + "\"price_competitiveness_product_view\030\003 \001(\0132"
+ + "I.google.shopping.merchant.reports.v1alpha.PriceCompetitivenessProductView\022g\n"
+ + "\033price_insights_product_view\030\004 \001(\0132B.google"
+ + ".shopping.merchant.reports.v1alpha.PriceInsightsProductView\022r\n"
+ + "!best_sellers_product_cluster_view\030\005 \001(\0132G.google.shopping"
+ + ".merchant.reports.v1alpha.BestSellersProductClusterView\022_\n"
+ + "\027best_sellers_brand_view\030\006"
+ + " \001(\0132>.google.shopping.merchant.reports.v1alpha.BestSellersBrandView\022}\n"
+ + "&competitive_visibility_competitor_view\030\010 \001(\013"
+ + "2M.google.shopping.merchant.reports.v1al"
+ + "pha.CompetitiveVisibilityCompetitorView\022\200\001\n"
+ + "(competitive_visibility_top_merchant_view\030\t"
+ + " \001(\0132N.google.shopping.merchant.re"
+ + "ports.v1alpha.CompetitiveVisibilityTopMerchantView\022{\n"
+ + "%competitive_visibility_benchmark_view\030\n"
+ + " \001(\0132L.google.shopping.merc"
+ + "hant.reports.v1alpha.CompetitiveVisibilityBenchmarkView\022q\n"
+ + " youtube_creator_performance_view\030\013 \001(\0132G.google.shopping.merc"
+ + "hant.reports.v1alpha.YoutubeCreatorPerformanceView\022q\n"
+ + " youtube_content_performance_view\030\014 \001(\0132G.google.shopping.merchant."
+ + "reports.v1alpha.YoutubeContentPerformanceView\022q\n"
+ + " youtube_product_performance_view\030\r"
+ + " \001(\0132G.google.shopping.merchant.repor"
+ + "ts.v1alpha.YoutubeProductPerformanceView\"\302\n\n"
+ + "\026ProductPerformanceView\022l\n"
+ + "\020marketing_method\030\001 \001(\0162M.google.shopping.merchant"
+ + ".reports.v1alpha.MarketingMethod.MarketingMethodEnumH\000\210\001\001\022\037\n"
+ + "\004date\030\002 \001(\0132\021.google.type.Date\022\037\n"
+ + "\004week\030\003 \001(\0132\021.google.type.Date\022\"\n"
+ + "\025customer_country_code\030\004 \001(\tH\001\210\001\001\022\025\n"
+ + "\010offer_id\030\005 \001(\tH\002\210\001\001\022\022\n"
+ + "\005title\030\006 \001(\tH\003\210\001\001\022\022\n"
+ + "\005brand\030\007 \001(\tH\004\210\001\001\022\030\n"
+ + "\013category_l1\030\010 \001(\tH\005\210\001\001\022\030\n"
+ + "\013category_l2\030\t \001(\tH\006\210\001\001\022\030\n"
+ + "\013category_l3\030\n"
+ + " \001(\tH\007\210\001\001\022\030\n"
+ + "\013category_l4\030\013 \001(\tH\010\210\001\001\022\030\n"
+ + "\013category_l5\030\014 \001(\tH\t\210\001\001\022\034\n"
+ + "\017product_type_l1\030\r"
+ + " \001(\tH\n"
+ + "\210\001\001\022\034\n"
+ + "\017product_type_l2\030\016 \001(\tH\013\210\001\001\022\034\n"
+ + "\017product_type_l3\030\017 \001(\tH\014\210\001\001\022\034\n"
+ + "\017product_type_l4\030\020 \001(\tH\r"
+ + "\210\001\001\022\034\n"
+ + "\017product_type_l5\030\021 \001(\tH\016\210\001\001\022\032\n\r"
+ + "custom_label0\030\022 \001(\tH\017\210\001\001\022\032\n\r"
+ + "custom_label1\030\023 \001(\tH\020\210\001\001\022\032\n\r"
+ + "custom_label2\030\024 \001(\tH\021\210\001\001\022\032\n\r"
+ + "custom_label3\030\025 \001(\tH\022\210\001\001\022\032\n\r"
+ + "custom_label4\030\026 \001(\tH\023\210\001\001\022\023\n"
+ + "\006clicks\030\027 \001(\003H\024\210\001\001\022\030\n"
+ + "\013impressions\030\030 \001(\003H\025\210\001\001\022\037\n"
+ + "\022click_through_rate\030\031 \001(\001H\026\210\001\001\022\030\n"
+ + "\013conversions\030\032 \001(\001H\027\210\001\001\0225\n"
+ + "\020conversion_value\030\033 \001(\0132\033.google.shopping.type.Price\022\034\n"
+ + "\017conversion_rate\030\034 \001(\001H\030\210\001\001B\023\n"
+ + "\021_marketing_methodB\030\n"
+ + "\026_customer_country_codeB\013\n"
+ + "\t_offer_idB\010\n"
+ + "\006_titleB\010\n"
+ + "\006_brandB\016\n"
+ + "\014_category_l1B\016\n"
+ + "\014_category_l2B\016\n"
+ + "\014_category_l3B\016\n"
+ + "\014_category_l4B\016\n"
+ + "\014_category_l5B\022\n"
+ + "\020_product_type_l1B\022\n"
+ + "\020_product_type_l2B\022\n"
+ + "\020_product_type_l3B\022\n"
+ + "\020_product_type_l4B\022\n"
+ + "\020_product_type_l5B\020\n"
+ + "\016_custom_label0B\020\n"
+ + "\016_custom_label1B\020\n"
+ + "\016_custom_label2B\020\n"
+ + "\016_custom_label3B\020\n"
+ + "\016_custom_label4B\t\n"
+ + "\007_clicksB\016\n"
+ + "\014_impressionsB\025\n"
+ + "\023_click_through_rateB\016\n"
+ + "\014_conversionsB\022\n"
+ + "\020_conversion_rate\"\312\027\n"
+ + "\013ProductView\022\017\n"
+ + "\002id\030\001 \001(\tH\000\210\001\001\022?\n"
+ + "\007channel\030\034 \001(\0162"
+ + ").google.shopping.type.Channel.ChannelEnumH\001\210\001\001\022\032\n\r"
+ + "language_code\030\002 \001(\tH\002\210\001\001\022\027\n\n"
+ + "feed_label\030\003 \001(\tH\003\210\001\001\022\025\n"
+ + "\010offer_id\030\004 \001(\tH\004\210\001\001\022\022\n"
+ + "\005title\030\005 \001(\tH\005\210\001\001\022\022\n"
+ + "\005brand\030\006 \001(\tH\006\210\001\001\022\030\n"
+ + "\013category_l1\030\007 \001(\tH\007\210\001\001\022\030\n"
+ + "\013category_l2\030\010 \001(\tH\010\210\001\001\022\030\n"
+ + "\013category_l3\030\t \001(\tH\t\210\001\001\022\030\n"
+ + "\013category_l4\030\n"
+ + " \001(\tH\n"
+ + "\210\001\001\022\030\n"
+ + "\013category_l5\030\013 \001(\tH\013\210\001\001\022\034\n"
+ + "\017product_type_l1\030\014 \001(\tH\014\210\001\001\022\034\n"
+ + "\017product_type_l2\030\r"
+ + " \001(\tH\r"
+ + "\210\001\001\022\034\n"
+ + "\017product_type_l3\030\016 \001(\tH\016\210\001\001\022\034\n"
+ + "\017product_type_l4\030\017 \001(\tH\017\210\001\001\022\034\n"
+ + "\017product_type_l5\030\020 \001(\tH\020\210\001\001\022*\n"
+ + "\005price\030\021 \001(\0132\033.google.shopping.type.Price\022\026\n"
+ + "\tcondition\030\022 \001(\tH\021\210\001\001\022\031\n"
+ + "\014availability\030\023 \001(\tH\022\210\001\001\022\033\n"
+ + "\016shipping_label\030\024 \001(\tH\023\210\001\001\022\014\n"
+ + "\004gtin\030\025 \003(\t\022\032\n\r"
+ + "item_group_id\030\026 \001(\tH\024\210\001\001\022\033\n"
+ + "\016thumbnail_link\030\027 \001(\tH\025\210\001\001\0221\n\r"
+ + "creation_time\030\030 \001(\0132\032.google.protobuf.Timestamp\022*\n"
+ + "\017expiration_date\030\031 \001(\0132\021.google.type.Date\022\210\001\n"
+ + "#aggregated_reporting_context_status\030\032 \001(\0162V.google.shopping.me"
+ + "rchant.reports.v1alpha.ProductView.AggregatedReportingContextStatusH\026\210\001\001\022T\n"
+ + "\013item_issues\030\033 \003(\0132?.google.shopping.merchant"
+ + ".reports.v1alpha.ProductView.ItemIssue\022]\n"
+ + "\017click_potential\030\035 \001(\0162D.google.shoppin"
+ + "g.merchant.reports.v1alpha.ProductView.ClickPotential\022!\n"
+ + "\024click_potential_rank\030\036 \001(\003H\027\210\001\001\032\270\t\n"
+ + "\tItemIssue\022[\n"
+ + "\004type\030\001 \001(\0132M.g"
+ + "oogle.shopping.merchant.reports.v1alpha.ProductView.ItemIssue.ItemIssueType\022c\n"
+ + "\010severity\030\002 \001(\0132Q.google.shopping.merchant"
+ + ".reports.v1alpha.ProductView.ItemIssue.ItemIssueSeverity\022l\n\n"
+ + "resolution\030\003 \001(\0162S.google.shopping.merchant.reports.v1alpha."
+ + "ProductView.ItemIssue.ItemIssueResolutionH\000\210\001\001\032e\n\r"
+ + "ItemIssueType\022\021\n"
+ + "\004code\030\001 \001(\tH\000\210\001\001\022 \n"
+ + "\023canonical_attribute\030\002 \001(\tH\001\210\001\001B\007\n"
+ + "\005_codeB\026\n"
+ + "\024_canonical_attribute\032\231\005\n"
+ + "\021ItemIssueSeverity\022\232\001\n"
+ + "\036severity_per_reporting_context\030\001 \003(\0132r.google.shopping.merchant."
+ + "reports.v1alpha.ProductView.ItemIssue.It"
+ + "emIssueSeverity.IssueSeverityPerReportingContext\022\213\001\n"
+ + "\023aggregated_severity\030\002 \001(\0162i.google.shopping.merchant.reports.v1alph"
+ + "a.ProductView.ItemIssue.ItemIssueSeverity.AggregatedIssueSeverityH\000\210\001\001\032\317\001\n"
+ + " IssueSeverityPerReportingContext\022[\n"
+ + "\021reporting_context\030\001 \001(\0162;.google.shopping.type.Re"
+ + "portingContext.ReportingContextEnumH\000\210\001\001\022\035\n"
+ + "\025disapproved_countries\030\002 \003(\t\022\031\n"
+ + "\021demoted_countries\030\003 \003(\tB\024\n"
+ + "\022_reporting_context\"o\n"
+ + "\027AggregatedIssueSeverity\022)\n"
+ + "%AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED\020\000\022\017\n"
+ + "\013DISAPPROVED\020\001\022\013\n"
+ + "\007DEMOTED\020\002\022\013\n"
+ + "\007PENDING\020\003B\026\n"
+ + "\024_aggregated_severity\"i\n"
+ + "\023ItemIssueResolution\022%\n"
+ + "!ITEM_ISSUE_RESOLUTION_UNSPECIFIED\020\000\022\023\n"
+ + "\017MERCHANT_ACTION\020\001\022\026\n"
+ + "\022PENDING_PROCESSING\020\002B\r\n"
+ + "\013_resolution\"\251\001\n"
+ + " AggregatedReportingContextStatus\0223\n"
+ + "/AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED\020\000\022\037\n"
+ + "\033NOT_ELIGIBLE_OR_DISAPPROVED\020\001\022\013\n"
+ + "\007PENDING\020\002\022\024\n"
+ + "\020ELIGIBLE_LIMITED\020\003\022\014\n"
+ + "\010ELIGIBLE\020\004\"P\n"
+ + "\016ClickPotential\022\037\n"
+ + "\033CLICK_POTENTIAL_UNSPECIFIED\020\000\022\007\n"
+ + "\003LOW\020\001\022\n\n"
+ + "\006MEDIUM\020\002\022\010\n"
+ + "\004HIGH\020\003B\005\n"
+ + "\003_idB\n\n"
+ + "\010_channelB\020\n"
+ + "\016_language_codeB\r\n"
+ + "\013_feed_labelB\013\n"
+ + "\t_offer_idB\010\n"
+ + "\006_titleB\010\n"
+ + "\006_brandB\016\n"
+ + "\014_category_l1B\016\n"
+ + "\014_category_l2B\016\n"
+ + "\014_category_l3B\016\n"
+ + "\014_category_l4B\016\n"
+ + "\014_category_l5B\022\n"
+ + "\020_product_type_l1B\022\n"
+ + "\020_product_type_l2B\022\n"
+ + "\020_product_type_l3B\022\n"
+ + "\020_product_type_l4B\022\n"
+ + "\020_product_type_l5B\014\n\n"
+ + "_conditionB\017\n\r"
+ + "_availabilityB\021\n"
+ + "\017_shipping_labelB\020\n"
+ + "\016_item_group_idB\021\n"
+ + "\017_thumbnail_linkB&\n"
+ + "$_aggregated_reporting_context_statusB\027\n"
+ + "\025_click_potential_rank\"\201\006\n"
+ + "\037PriceCompetitivenessProductView\022 \n"
+ + "\023report_country_code\030\001 \001(\tH\000\210\001\001\022\017\n"
+ + "\002id\030\002 \001(\tH\001\210\001\001\022\025\n"
+ + "\010offer_id\030\003 \001(\tH\002\210\001\001\022\022\n"
+ + "\005title\030\004 \001(\tH\003\210\001\001\022\022\n"
+ + "\005brand\030\005 \001(\tH\004\210\001\001\022\030\n"
+ + "\013category_l1\030\006 \001(\tH\005\210\001\001\022\030\n"
+ + "\013category_l2\030\007 \001(\tH\006\210\001\001\022\030\n"
+ + "\013category_l3\030\010 \001(\tH\007\210\001\001\022\030\n"
+ + "\013category_l4\030\t \001(\tH\010\210\001\001\022\030\n"
+ + "\013category_l5\030\n"
+ + " \001(\tH\t\210\001\001\022\034\n"
+ + "\017product_type_l1\030\013 \001(\tH\n"
+ + "\210\001\001\022\034\n"
+ + "\017product_type_l2\030\014 \001(\tH\013\210\001\001\022\034\n"
+ + "\017product_type_l3\030\r"
+ + " \001(\tH\014\210\001\001\022\034\n"
+ + "\017product_type_l4\030\016 \001(\tH\r"
+ + "\210\001\001\022\034\n"
+ + "\017product_type_l5\030\017 \001(\tH\016\210\001\001\022*\n"
+ + "\005price\030\020 \001(\0132\033.google.shopping.type.Price\0224\n"
+ + "\017benchmark_price\030\021 \001(\0132\033.google.shopping.type.PriceB\026\n"
+ + "\024_report_country_codeB\005\n"
+ + "\003_idB\013\n"
+ + "\t_offer_idB\010\n"
+ + "\006_titleB\010\n"
+ + "\006_brandB\016\n"
+ + "\014_category_l1B\016\n"
+ + "\014_category_l2B\016\n"
+ + "\014_category_l3B\016\n"
+ + "\014_category_l4B\016\n"
+ + "\014_category_l5B\022\n"
+ + "\020_product_type_l1B\022\n"
+ + "\020_product_type_l2B\022\n"
+ + "\020_product_type_l3B\022\n"
+ + "\020_product_type_l4B\022\n"
+ + "\020_product_type_l5\"\210\t\n"
+ + "\030PriceInsightsProductView\022\017\n"
+ + "\002id\030\001 \001(\tH\000\210\001\001\022\025\n"
+ + "\010offer_id\030\002 \001(\tH\001\210\001\001\022\022\n"
+ + "\005title\030\003 \001(\tH\002\210\001\001\022\022\n"
+ + "\005brand\030\004 \001(\tH\003\210\001\001\022\030\n"
+ + "\013category_l1\030\005 \001(\tH\004\210\001\001\022\030\n"
+ + "\013category_l2\030\006 \001(\tH\005\210\001\001\022\030\n"
+ + "\013category_l3\030\007 \001(\tH\006\210\001\001\022\030\n"
+ + "\013category_l4\030\010 \001(\tH\007\210\001\001\022\030\n"
+ + "\013category_l5\030\t \001(\tH\010\210\001\001\022\034\n"
+ + "\017product_type_l1\030\n"
+ + " \001(\tH\t\210\001\001\022\034\n"
+ + "\017product_type_l2\030\013 \001(\tH\n"
+ + "\210\001\001\022\034\n"
+ + "\017product_type_l3\030\014 \001(\tH\013\210\001\001\022\034\n"
+ + "\017product_type_l4\030\r"
+ + " \001(\tH\014\210\001\001\022\034\n"
+ + "\017product_type_l5\030\016 \001(\tH\r"
+ + "\210\001\001\022*\n"
+ + "\005price\030\017 \001(\0132\033.google.shopping.type.Price\0224\n"
+ + "\017suggested_price\030\020 \001(\0132\033.google.shopping.type.Price\0222\n"
+ + "%predicted_impressions_change_fraction\030\021 \001(\001H\016\210\001\001\022-\n"
+ + " predicted_clicks_change_fraction\030\022 \001(\001H\017\210\001\001\0222\n"
+ + "%predicted_conversions_change_fraction\030\023 \001(\001H\020\210\001\001\022g\n\r"
+ + "effectiveness\030\026 \001(\0162P.google.shopping.merchant.reports.v"
+ + "1alpha.PriceInsightsProductView.Effectiveness\"M\n\r"
+ + "Effectiveness\022\035\n"
+ + "\031EFFECTIVENESS_UNSPECIFIED\020\000\022\007\n"
+ + "\003LOW\020\001\022\n\n"
+ + "\006MEDIUM\020\002\022\010\n"
+ + "\004HIGH\020\003B\005\n"
+ + "\003_idB\013\n"
+ + "\t_offer_idB\010\n"
+ + "\006_titleB\010\n"
+ + "\006_brandB\016\n"
+ + "\014_category_l1B\016\n"
+ + "\014_category_l2B\016\n"
+ + "\014_category_l3B\016\n"
+ + "\014_category_l4B\016\n"
+ + "\014_category_l5B\022\n"
+ + "\020_product_type_l1B\022\n"
+ + "\020_product_type_l2B\022\n"
+ + "\020_product_type_l3B\022\n"
+ + "\020_product_type_l4B\022\n"
+ + "\020_product_type_l5B(\n"
+ + "&_predicted_impressions_change_fractionB#\n"
+ + "!_predicted_clicks_change_fractionB(\n"
+ + "&_predicted_conversions_change_fraction\"\366\013\n"
+ + "\035BestSellersProductClusterView\022&\n"
+ + "\013report_date\030\001 \001(\0132\021.google.type.Date\022r\n"
+ + "\022report_granularity\030\002 \001(\0162Q.google.shopping.merchant.repor"
+ + "ts.v1alpha.ReportGranularity.ReportGranularityEnumH\000\210\001\001\022 \n"
+ + "\023report_country_code\030\003 \001(\tH\001\210\001\001\022\037\n"
+ + "\022report_category_id\030\004 \001(\003H\002\210\001\001\022\022\n"
+ + "\005title\030\006 \001(\tH\003\210\001\001\022\022\n"
+ + "\005brand\030\007 \001(\tH\004\210\001\001\022\030\n"
+ + "\013category_l1\030\010 \001(\tH\005\210\001\001\022\030\n"
+ + "\013category_l2\030\t \001(\tH\006\210\001\001\022\030\n"
+ + "\013category_l3\030\n"
+ + " \001(\tH\007\210\001\001\022\030\n"
+ + "\013category_l4\030\013 \001(\tH\010\210\001\001\022\030\n"
+ + "\013category_l5\030\014 \001(\tH\t\210\001\001\022\025\n\r"
+ + "variant_gtins\030\r"
+ + " \003(\t\022v\n"
+ + "\020inventory_status\030\016 \001(\0162W.google.shopping."
+ + "merchant.reports.v1alpha.BestSellersProductClusterView.InventoryStatusH\n"
+ + "\210\001\001\022|\n"
+ + "\026brand_inventory_status\030\017 \001(\0162W.google.sho"
+ + "pping.merchant.reports.v1alpha.BestSelle"
+ + "rsProductClusterView.InventoryStatusH\013\210\001\001\022\021\n"
+ + "\004rank\030\020 \001(\003H\014\210\001\001\022\032\n\r"
+ + "previous_rank\030\021 \001(\003H\r"
+ + "\210\001\001\022i\n"
+ + "\017relative_demand\030\022 \001(\0162K.goog"
+ + "le.shopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnumH\016\210\001\001\022r\n"
+ + "\030previous_relative_demand\030\023 \001(\0162K.google.s"
+ + "hopping.merchant.reports.v1alpha.RelativeDemand.RelativeDemandEnumH\017\210\001\001\022\204\001\n"
+ + "\026relative_demand_change\030\024 \001(\0162_.google.shoppi"
+ + "ng.merchant.reports.v1alpha.RelativeDema"
+ + "ndChangeType.RelativeDemandChangeTypeEnumH\020\210\001\001\"i\n"
+ + "\017InventoryStatus\022 \n"
+ + "\034INVENTORY_STATUS_UNSPECIFIED\020\000\022\014\n"
+ + "\010IN_STOCK\020\001\022\020\n"
+ + "\014OUT_OF_STOCK\020\002\022\024\n"
+ + "\020NOT_IN_INVENTORY\020\003B\025\n"
+ + "\023_report_granularityB\026\n"
+ + "\024_report_country_codeB\025\n"
+ + "\023_report_category_idB\010\n"
+ + "\006_titleB\010\n"
+ + "\006_brandB\016\n"
+ + "\014_category_l1B\016\n"
+ + "\014_category_l2B\016\n"
+ + "\014_category_l3B\016\n"
+ + "\014_category_l4B\016\n"
+ + "\014_category_l5B\023\n"
+ + "\021_inventory_statusB\031\n"
+ + "\027_brand_inventory_statusB\007\n"
+ + "\005_rankB\020\n"
+ + "\016_previous_rankB\022\n"
+ + "\020_relative_demandB\033\n"
+ + "\031_previous_relative_demandB\031\n"
+ + "\027_relative_demand_change\"\325\006\n"
+ + "\024BestSellersBrandView\022&\n"
+ + "\013report_date\030\001 \001(\0132\021.google.type.Date\022r\n"
+ + "\022report_granularity\030\002 \001(\0162Q.google.shopping.merchant.repor"
+ + "ts.v1alpha.ReportGranularity.ReportGranularityEnumH\000\210\001\001\022 \n"
+ + "\023report_country_code\030\003 \001(\tH\001\210\001\001\022\037\n"
+ + "\022report_category_id\030\004 \001(\003H\002\210\001\001\022\022\n"
+ + "\005brand\030\006 \001(\tH\003\210\001\001\022\021\n"
+ + "\004rank\030\007 \001(\003H\004\210\001\001\022\032\n\r"
+ + "previous_rank\030\010 \001(\003H\005\210\001\001\022i\n"
+ + "\017relative_demand\030\t \001(\0162K.google.shopping.merchan"
+ + "t.reports.v1alpha.RelativeDemand.RelativeDemandEnumH\006\210\001\001\022r\n"
+ + "\030previous_relative_demand\030\n"
+ + " \001(\0162K.google.shopping.merchant.re"
+ + "ports.v1alpha.RelativeDemand.RelativeDemandEnumH\007\210\001\001\022\204\001\n"
+ + "\026relative_demand_change\030\013 \001(\0162_.google.shopping.merchant.reports"
+ + ".v1alpha.RelativeDemandChangeType.RelativeDemandChangeTypeEnumH\010\210\001\001B\025\n"
+ + "\023_report_granularityB\026\n"
+ + "\024_report_country_codeB\025\n"
+ + "\023_report_category_idB\010\n"
+ + "\006_brandB\007\n"
+ + "\005_rankB\020\n"
+ + "\016_previous_rankB\022\n"
+ + "\020_relative_demandB\033\n"
+ + "\031_previous_relative_demandB\031\n"
+ + "\027_relative_demand_change\"\337\001\n"
+ + "\031NonProductPerformanceView\022\037\n"
+ + "\004date\030\001 \001(\0132\021.google.type.Date\022\037\n"
+ + "\004week\030\002 \001(\0132\021.google.type.Date\022\023\n"
+ + "\006clicks\030\003 \001(\003H\000\210\001\001\022\030\n"
+ + "\013impressions\030\004 \001(\003H\001\210\001\001\022\037\n"
+ + "\022click_through_rate\030\005 \001(\001H\002\210\001\001B\t\n"
+ + "\007_clicksB\016\n"
+ + "\014_impressionsB\025\n"
+ + "\023_click_through_rate\"\201\005\n"
+ + "#CompetitiveVisibilityCompetitorView\022\037\n"
+ + "\004date\030\001 \001(\0132\021.google.type.Date\022\023\n"
+ + "\006domain\030\002 \001(\tH\000\210\001\001\022\033\n"
+ + "\016is_your_domain\030\003 \001(\010H\001\210\001\001\022 \n"
+ + "\023report_country_code\030\004 \001(\tH\002\210\001\001\022\037\n"
+ + "\022report_category_id\030\005 \001(\003H\003\210\001\001\022f\n"
+ + "\016traffic_source\030\006 \001(\0162I.google.shopping.merchant.re"
+ + "ports.v1alpha.TrafficSource.TrafficSourceEnumH\004\210\001\001\022\021\n"
+ + "\004rank\030\007 \001(\003H\005\210\001\001\022\036\n"
+ + "\021ads_organic_ratio\030\010 \001(\001H\006\210\001\001\022\036\n"
+ + "\021page_overlap_rate\030\t \001(\001H\007\210\001\001\022!\n"
+ + "\024higher_position_rate\030\n"
+ + " \001(\001H\010\210\001\001\022 \n"
+ + "\023relative_visibility\030\013 \001(\001H\t\210\001\001B\t\n"
+ + "\007_domainB\021\n"
+ + "\017_is_your_domainB\026\n"
+ + "\024_report_country_codeB\025\n"
+ + "\023_report_category_idB\021\n"
+ + "\017_traffic_sourceB\007\n"
+ + "\005_rankB\024\n"
+ + "\022_ads_organic_ratioB\024\n"
+ + "\022_page_overlap_rateB\027\n"
+ + "\025_higher_position_rateB\026\n"
+ + "\024_relative_visibility\"\310\004\n"
+ + "$CompetitiveVisibilityTopMerchantView\022\037\n"
+ + "\004date\030\001 \001(\0132\021.google.type.Date\022\023\n"
+ + "\006domain\030\002 \001(\tH\000\210\001\001\022\033\n"
+ + "\016is_your_domain\030\003 \001(\010H\001\210\001\001\022 \n"
+ + "\023report_country_code\030\004 \001(\tH\002\210\001\001\022\037\n"
+ + "\022report_category_id\030\005 \001(\003H\003\210\001\001\022f\n"
+ + "\016traffic_source\030\006 \001(\0162I.google.shopping.mercha"
+ + "nt.reports.v1alpha.TrafficSource.TrafficSourceEnumH\004\210\001\001\022\021\n"
+ + "\004rank\030\007 \001(\003H\005\210\001\001\022\036\n"
+ + "\021ads_organic_ratio\030\010 \001(\001H\006\210\001\001\022\036\n"
+ + "\021page_overlap_rate\030\t \001(\001H\007\210\001\001\022!\n"
+ + "\024higher_position_rate\030\n"
+ + " \001(\001H\010\210\001\001B\t\n"
+ + "\007_domainB\021\n"
+ + "\017_is_your_domainB\026\n"
+ + "\024_report_country_codeB\025\n"
+ + "\023_report_category_idB\021\n"
+ + "\017_traffic_sourceB\007\n"
+ + "\005_rankB\024\n"
+ + "\022_ads_organic_ratioB\024\n"
+ + "\022_page_overlap_rateB\027\n"
+ + "\025_higher_position_rate\"\330\003\n"
+ + "\"CompetitiveVisibilityBenchmarkView\022\037\n"
+ + "\004date\030\001 \001(\0132\021.google.type.Date\022 \n"
+ + "\023report_country_code\030\002 \001(\tH\000\210\001\001\022\037\n"
+ + "\022report_category_id\030\003 \001(\003H\001\210\001\001\022f\n"
+ + "\016traffic_source\030\004 \001(\0162I.google."
+ + "shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnumH\002\210\001\001\022)\n"
+ + "\034your_domain_visibility_trend\030\005 \001(\001H\003\210\001\001\0220\n"
+ + "#category_benchmark_visibility_trend\030\006 \001(\001H\004\210\001\001B\026\n"
+ + "\024_report_country_codeB\025\n"
+ + "\023_report_category_idB\021\n"
+ + "\017_traffic_sourceB\037\n"
+ + "\035_your_domain_visibility_trendB&\n"
+ + "$_category_benchmark_visibility_trend\"e\n"
+ + "\017MarketingMethod\"R\n"
+ + "\023MarketingMethodEnum\022%\n"
+ + "!MARKETING_METHOD_ENUM_UNSPECIFIED\020\000\022\013\n"
+ + "\007ORGANIC\020\001\022\007\n"
+ + "\003ADS\020\002\"n\n"
+ + "\021ReportGranularity\"Y\n"
+ + "\025ReportGranularityEnum\022\'\n"
+ + "#REPORT_GRANULARITY_ENUM_UNSPECIFIED\020\000\022\n\n"
+ + "\006WEEKLY\020\001\022\013\n"
+ + "\007MONTHLY\020\002\"\210\001\n"
+ + "\016RelativeDemand\"v\n"
+ + "\022RelativeDemandEnum\022$\n"
+ + " RELATIVE_DEMAND_ENUM_UNSPECIFIED\020\000\022\014\n"
+ + "\010VERY_LOW\020\n"
+ + "\022\007\n"
+ + "\003LOW\020\024\022\n\n"
+ + "\006MEDIUM\020\036\022\010\n"
+ + "\004HIGH\020(\022\r\n"
+ + "\tVERY_HIGH\0202\"\215\001\n"
+ + "\030RelativeDemandChangeType\"q\n"
+ + "\034RelativeDemandChangeTypeEnum\0220\n"
+ + ",RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED\020\000\022\n\n"
+ + "\006SINKER\020\001\022\010\n"
+ + "\004FLAT\020\002\022\t\n"
+ + "\005RISER\020\003\"h\n\r"
+ + "TrafficSource\"W\n"
+ + "\021TrafficSourceEnum\022#\n"
+ + "\037TRAFFIC_SOURCE_ENUM_UNSPECIFIED\020\000\022\013\n"
+ + "\007ORGANIC\020\001\022\007\n"
+ + "\003ADS\020\002\022\007\n"
+ + "\003ALL\020\003\"\265\003\n"
+ + "\035YoutubeCreatorPerformanceView\022\037\n"
+ + "\004date\030\001 \001(\0132\021.google.type.Date\022\022\n"
+ + "\005title\030\002 \001(\tH\000\210\001\001\022\027\n\n"
+ + "channel_id\030\003 \001(\tH\001\210\001\001\0225\n"
+ + "\013gross_sales\030\004"
+ + " \001(\0132\033.google.shopping.type.PriceH\002\210\001\001\0225\n"
+ + "\013commissions\030\005"
+ + " \001(\0132\033.google.shopping.type.PriceH\003\210\001\001\022\023\n"
+ + "\006orders\030\006 \001(\003H\004\210\001\001\022\022\n"
+ + "\005views\030\007 \001(\003H\005\210\001\001\022\023\n"
+ + "\006clicks\030\010 \001(\003H\006\210\001\001\0223\n"
+ + "\tnet_sales\030\t \001(\0132\033.google.shopping.type.PriceH\007\210\001\001B\010\n"
+ + "\006_titleB\r\n"
+ + "\013_channel_idB\016\n"
+ + "\014_gross_salesB\016\n"
+ + "\014_commissionsB\t\n"
+ + "\007_ordersB\010\n"
+ + "\006_viewsB\t\n"
+ + "\007_clicksB\014\n\n"
+ + "_net_sales\"\207\004\n"
+ + "\035YoutubeContentPerformanceView\022\037\n"
+ + "\004date\030\001 \001(\0132\021.google.type.Date\022\022\n"
+ + "\005title\030\002 \001(\tH\000\210\001\001\022\025\n"
+ + "\010video_id\030\003 \001(\tH\001\210\001\001\022\032\n\r"
+ + "channel_title\030\004 \001(\tH\002\210\001\001\022\027\n\n"
+ + "channel_id\030\005 \001(\tH\003\210\001\001\0225\n"
+ + "\013gross_sales\030\006"
+ + " \001(\0132\033.google.shopping.type.PriceH\004\210\001\001\0225\n"
+ + "\013commissions\030\007"
+ + " \001(\0132\033.google.shopping.type.PriceH\005\210\001\001\022\023\n"
+ + "\006orders\030\010 \001(\003H\006\210\001\001\022\022\n"
+ + "\005views\030\t \001(\003H\007\210\001\001\022\023\n"
+ + "\006clicks\030\n"
+ + " \001(\003H\010\210\001\001\0223\n"
+ + "\tnet_sales\030\013 \001(\0132\033.google.shopping.type.PriceH\t\210\001\001B\010\n"
+ + "\006_titleB\013\n"
+ + "\t_video_idB\020\n"
+ + "\016_channel_titleB\r\n"
+ + "\013_channel_idB\016\n"
+ + "\014_gross_salesB\016\n"
+ + "\014_commissionsB\t\n"
+ + "\007_ordersB\010\n"
+ + "\006_viewsB\t\n"
+ + "\007_clicksB\014\n\n"
+ + "_net_sales\"\255\004\n"
+ + "\035YoutubeProductPerformanceView\022\037\n"
+ + "\004date\030\001 \001(\0132\021.google.type.Date\022\022\n"
+ + "\005title\030\002 \001(\tH\000\210\001\001\022\025\n"
+ + "\010offer_id\030\003 \001(\tH\001\210\001\001\022!\n"
+ + "\024distinct_video_count\030\004 \001(\003H\002\210\001\001\022#\n"
+ + "\026distinct_creator_count\030\005 \001(\003H\003\210\001\001\0225\n"
+ + "\013gross_sales\030\006"
+ + " \001(\0132\033.google.shopping.type.PriceH\004\210\001\001\0225\n"
+ + "\013commissions\030\007"
+ + " \001(\0132\033.google.shopping.type.PriceH\005\210\001\001\022\023\n"
+ + "\006orders\030\010 \001(\003H\006\210\001\001\022\022\n"
+ + "\005views\030\t \001(\003H\007\210\001\001\022\023\n"
+ + "\006clicks\030\n"
+ + " \001(\003H\010\210\001\001\0223\n"
+ + "\tnet_sales\030\013 \001(\0132\033.google.shopping.type.PriceH\t\210\001\001B\010\n"
+ + "\006_titleB\013\n"
+ + "\t_offer_idB\027\n"
+ + "\025_distinct_video_countB\031\n"
+ + "\027_distinct_creator_countB\016\n"
+ + "\014_gross_salesB\016\n"
+ + "\014_commissionsB\t\n"
+ + "\007_ordersB\010\n"
+ + "\006_viewsB\t\n"
+ + "\007_clicksB\014\n\n"
+ + "_net_sales2\237\002\n\r"
+ + "ReportService\022\304\001\n"
+ + "\006Search\0227.google.shopping.merchant.reports.v1alpha.SearchRequest\0328.goo"
+ + "gle.shopping.merchant.reports.v1alpha.Se"
+ + "archResponse\"G\332A\006parent\202\323\344\223\0028\"3/reports/"
+ + "v1alpha/{parent=accounts/*}/reports:sear"
+ + "ch:\001*\032G\312A\032merchantapi.googleapis.com\322A\'h"
+ + "ttps://www.googleapis.com/auth/contentB\214\001\n"
+ + ",com.google.shopping.merchant.reports.v1alphaB\014ReportsProtoP\001ZLcloud.google.co"
+ + "m/go/shopping/merchant/reports/apiv1alpha/reportspb;reportspbb\006proto3"
+ };
+ descriptor =
+ com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
+ descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.google.api.AnnotationsProto.getDescriptor(),
+ com.google.api.ClientProto.getDescriptor(),
+ com.google.api.FieldBehaviorProto.getDescriptor(),
+ com.google.protobuf.TimestampProto.getDescriptor(),
+ com.google.shopping.type.TypesProto.getDescriptor(),
+ com.google.type.DateProto.getDescriptor(),
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor,
+ new java.lang.String[] {
+ "Parent", "Query", "PageSize", "PageToken",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor =
+ getDescriptor().getMessageTypes().get(1);
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor,
+ new java.lang.String[] {
+ "Results", "NextPageToken",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor =
+ getDescriptor().getMessageTypes().get(2);
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportRow_descriptor,
+ new java.lang.String[] {
+ "ProductPerformanceView",
+ "NonProductPerformanceView",
+ "ProductView",
+ "PriceCompetitivenessProductView",
+ "PriceInsightsProductView",
+ "BestSellersProductClusterView",
+ "BestSellersBrandView",
+ "CompetitiveVisibilityCompetitorView",
+ "CompetitiveVisibilityTopMerchantView",
+ "CompetitiveVisibilityBenchmarkView",
+ "YoutubeCreatorPerformanceView",
+ "YoutubeContentPerformanceView",
+ "YoutubeProductPerformanceView",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor =
+ getDescriptor().getMessageTypes().get(3);
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductPerformanceView_descriptor,
+ new java.lang.String[] {
+ "MarketingMethod",
+ "Date",
+ "Week",
+ "CustomerCountryCode",
+ "OfferId",
+ "Title",
+ "Brand",
+ "CategoryL1",
+ "CategoryL2",
+ "CategoryL3",
+ "CategoryL4",
+ "CategoryL5",
+ "ProductTypeL1",
+ "ProductTypeL2",
+ "ProductTypeL3",
+ "ProductTypeL4",
+ "ProductTypeL5",
+ "CustomLabel0",
+ "CustomLabel1",
+ "CustomLabel2",
+ "CustomLabel3",
+ "CustomLabel4",
+ "Clicks",
+ "Impressions",
+ "ClickThroughRate",
+ "Conversions",
+ "ConversionValue",
+ "ConversionRate",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor =
+ getDescriptor().getMessageTypes().get(4);
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor,
+ new java.lang.String[] {
+ "Id",
+ "Channel",
+ "LanguageCode",
+ "FeedLabel",
+ "OfferId",
+ "Title",
+ "Brand",
+ "CategoryL1",
+ "CategoryL2",
+ "CategoryL3",
+ "CategoryL4",
+ "CategoryL5",
+ "ProductTypeL1",
+ "ProductTypeL2",
+ "ProductTypeL3",
+ "ProductTypeL4",
+ "ProductTypeL5",
+ "Price",
+ "Condition",
+ "Availability",
+ "ShippingLabel",
+ "Gtin",
+ "ItemGroupId",
+ "ThumbnailLink",
+ "CreationTime",
+ "ExpirationDate",
+ "AggregatedReportingContextStatus",
+ "ItemIssues",
+ "ClickPotential",
+ "ClickPotentialRank",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor =
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_descriptor
+ .getNestedTypes()
+ .get(0);
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor,
+ new java.lang.String[] {
+ "Type", "Severity", "Resolution",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor =
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor
+ .getNestedTypes()
+ .get(0);
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueType_descriptor,
+ new java.lang.String[] {
+ "Code", "CanonicalAttribute",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor =
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_descriptor
+ .getNestedTypes()
+ .get(1);
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor,
+ new java.lang.String[] {
+ "SeverityPerReportingContext", "AggregatedSeverity",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor =
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_descriptor
+ .getNestedTypes()
+ .get(0);
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ProductView_ItemIssue_ItemIssueSeverity_IssueSeverityPerReportingContext_descriptor,
+ new java.lang.String[] {
+ "ReportingContext", "DisapprovedCountries", "DemotedCountries",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor =
+ getDescriptor().getMessageTypes().get(5);
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceCompetitivenessProductView_descriptor,
+ new java.lang.String[] {
+ "ReportCountryCode",
+ "Id",
+ "OfferId",
+ "Title",
+ "Brand",
+ "CategoryL1",
+ "CategoryL2",
+ "CategoryL3",
+ "CategoryL4",
+ "CategoryL5",
+ "ProductTypeL1",
+ "ProductTypeL2",
+ "ProductTypeL3",
+ "ProductTypeL4",
+ "ProductTypeL5",
+ "Price",
+ "BenchmarkPrice",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor =
+ getDescriptor().getMessageTypes().get(6);
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_PriceInsightsProductView_descriptor,
+ new java.lang.String[] {
+ "Id",
+ "OfferId",
+ "Title",
+ "Brand",
+ "CategoryL1",
+ "CategoryL2",
+ "CategoryL3",
+ "CategoryL4",
+ "CategoryL5",
+ "ProductTypeL1",
+ "ProductTypeL2",
+ "ProductTypeL3",
+ "ProductTypeL4",
+ "ProductTypeL5",
+ "Price",
+ "SuggestedPrice",
+ "PredictedImpressionsChangeFraction",
+ "PredictedClicksChangeFraction",
+ "PredictedConversionsChangeFraction",
+ "Effectiveness",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor =
+ getDescriptor().getMessageTypes().get(7);
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersProductClusterView_descriptor,
+ new java.lang.String[] {
+ "ReportDate",
+ "ReportGranularity",
+ "ReportCountryCode",
+ "ReportCategoryId",
+ "Title",
+ "Brand",
+ "CategoryL1",
+ "CategoryL2",
+ "CategoryL3",
+ "CategoryL4",
+ "CategoryL5",
+ "VariantGtins",
+ "InventoryStatus",
+ "BrandInventoryStatus",
+ "Rank",
+ "PreviousRank",
+ "RelativeDemand",
+ "PreviousRelativeDemand",
+ "RelativeDemandChange",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor =
+ getDescriptor().getMessageTypes().get(8);
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_BestSellersBrandView_descriptor,
+ new java.lang.String[] {
+ "ReportDate",
+ "ReportGranularity",
+ "ReportCountryCode",
+ "ReportCategoryId",
+ "Brand",
+ "Rank",
+ "PreviousRank",
+ "RelativeDemand",
+ "PreviousRelativeDemand",
+ "RelativeDemandChange",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor =
+ getDescriptor().getMessageTypes().get(9);
+ internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_NonProductPerformanceView_descriptor,
+ new java.lang.String[] {
+ "Date", "Week", "Clicks", "Impressions", "ClickThroughRate",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor =
+ getDescriptor().getMessageTypes().get(10);
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityCompetitorView_descriptor,
+ new java.lang.String[] {
+ "Date",
+ "Domain",
+ "IsYourDomain",
+ "ReportCountryCode",
+ "ReportCategoryId",
+ "TrafficSource",
+ "Rank",
+ "AdsOrganicRatio",
+ "PageOverlapRate",
+ "HigherPositionRate",
+ "RelativeVisibility",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor =
+ getDescriptor().getMessageTypes().get(11);
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityTopMerchantView_descriptor,
+ new java.lang.String[] {
+ "Date",
+ "Domain",
+ "IsYourDomain",
+ "ReportCountryCode",
+ "ReportCategoryId",
+ "TrafficSource",
+ "Rank",
+ "AdsOrganicRatio",
+ "PageOverlapRate",
+ "HigherPositionRate",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor =
+ getDescriptor().getMessageTypes().get(12);
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_CompetitiveVisibilityBenchmarkView_descriptor,
+ new java.lang.String[] {
+ "Date",
+ "ReportCountryCode",
+ "ReportCategoryId",
+ "TrafficSource",
+ "YourDomainVisibilityTrend",
+ "CategoryBenchmarkVisibilityTrend",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor =
+ getDescriptor().getMessageTypes().get(13);
+ internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_MarketingMethod_descriptor,
+ new java.lang.String[] {});
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor =
+ getDescriptor().getMessageTypes().get(14);
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_ReportGranularity_descriptor,
+ new java.lang.String[] {});
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor =
+ getDescriptor().getMessageTypes().get(15);
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemand_descriptor,
+ new java.lang.String[] {});
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor =
+ getDescriptor().getMessageTypes().get(16);
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_RelativeDemandChangeType_descriptor,
+ new java.lang.String[] {});
+ internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor =
+ getDescriptor().getMessageTypes().get(17);
+ internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor,
+ new java.lang.String[] {});
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor =
+ getDescriptor().getMessageTypes().get(18);
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor,
+ new java.lang.String[] {
+ "Date",
+ "Title",
+ "ChannelId",
+ "GrossSales",
+ "Commissions",
+ "Orders",
+ "Views",
+ "Clicks",
+ "NetSales",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor =
+ getDescriptor().getMessageTypes().get(19);
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor,
+ new java.lang.String[] {
+ "Date",
+ "Title",
+ "VideoId",
+ "ChannelTitle",
+ "ChannelId",
+ "GrossSales",
+ "Commissions",
+ "Orders",
+ "Views",
+ "Clicks",
+ "NetSales",
+ });
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor =
+ getDescriptor().getMessageTypes().get(20);
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor,
+ new java.lang.String[] {
+ "Date",
+ "Title",
+ "OfferId",
+ "DistinctVideoCount",
+ "DistinctCreatorCount",
+ "GrossSales",
+ "Commissions",
+ "Orders",
+ "Views",
+ "Clicks",
+ "NetSales",
+ });
+ com.google.protobuf.ExtensionRegistry registry =
+ com.google.protobuf.ExtensionRegistry.newInstance();
+ registry.add(com.google.api.ClientProto.defaultHost);
+ registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+ registry.add(com.google.api.AnnotationsProto.http);
+ registry.add(com.google.api.ClientProto.methodSignature);
+ registry.add(com.google.api.ClientProto.oauthScopes);
+ com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+ descriptor, registry);
+ com.google.api.AnnotationsProto.getDescriptor();
+ com.google.api.ClientProto.getDescriptor();
+ com.google.api.FieldBehaviorProto.getDescriptor();
+ com.google.protobuf.TimestampProto.getDescriptor();
+ com.google.shopping.type.TypesProto.getDescriptor();
+ com.google.type.DateProto.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequest.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequest.java
new file mode 100644
index 000000000000..f38f5dc7e452
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchRequest.java
@@ -0,0 +1,1170 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Request message for the `ReportService.Search` method. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchRequest} + */ +public final class SearchRequest extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.SearchRequest) + SearchRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use SearchRequest.newBuilder() to construct. + private SearchRequest(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private SearchRequest() { + parent_ = ""; + query_ = ""; + pageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SearchRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.SearchRequest.class, + com.google.shopping.merchant.reports.v1alpha.SearchRequest.Builder.class); + } + + public static final int PARENT_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object parent_ = ""; + + /** + * + * + *
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The parent.
+ */
+ @java.lang.Override
+ public java.lang.String getParent() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ parent_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for parent.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getParentBytes() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ parent_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int QUERY_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object query_ = "";
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The query.
+ */
+ @java.lang.Override
+ public java.lang.String getQuery() {
+ java.lang.Object ref = query_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ query_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for query.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getQueryBytes() {
+ java.lang.Object ref = query_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ query_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PAGE_SIZE_FIELD_NUMBER = 3;
+ private int pageSize_ = 0;
+
+ /**
+ *
+ *
+ * + * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to + * 1000. Values above 5000 are coerced to 5000. + *+ * + *
int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ @java.lang.Override
+ public int getPageSize() {
+ return pageSize_;
+ }
+
+ public static final int PAGE_TOKEN_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object pageToken_ = "";
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ @java.lang.Override
+ public java.lang.String getPageToken() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ pageToken_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getPageTokenBytes() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ pageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(query_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, query_);
+ }
+ if (pageSize_ != 0) {
+ output.writeInt32(3, pageSize_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pageToken_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(query_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, query_);
+ }
+ if (pageSize_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, pageSize_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pageToken_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.SearchRequest)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.SearchRequest other =
+ (com.google.shopping.merchant.reports.v1alpha.SearchRequest) obj;
+
+ if (!getParent().equals(other.getParent())) return false;
+ if (!getQuery().equals(other.getQuery())) return false;
+ if (getPageSize() != other.getPageSize()) return false;
+ if (!getPageToken().equals(other.getPageToken())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + PARENT_FIELD_NUMBER;
+ hash = (53 * hash) + getParent().hashCode();
+ hash = (37 * hash) + QUERY_FIELD_NUMBER;
+ hash = (53 * hash) + getQuery().hashCode();
+ hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
+ hash = (53 * hash) + getPageSize();
+ hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getPageToken().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.SearchRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Request message for the `ReportService.Search` method. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The parent.
+ */
+ public java.lang.String getParent() {
+ java.lang.Object ref = parent_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ parent_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for parent.
+ */
+ public com.google.protobuf.ByteString getParentBytes() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ parent_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The parent to set.
+ * @return This builder for chaining.
+ */
+ public Builder setParent(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ parent_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearParent() {
+ parent_ = getDefaultInstance().getParent();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The bytes for parent to set.
+ * @return This builder for chaining.
+ */
+ public Builder setParentBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ parent_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object query_ = "";
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The query.
+ */
+ public java.lang.String getQuery() {
+ java.lang.Object ref = query_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ query_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for query.
+ */
+ public com.google.protobuf.ByteString getQueryBytes() {
+ java.lang.Object ref = query_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ query_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The query to set.
+ * @return This builder for chaining.
+ */
+ public Builder setQuery(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ query_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearQuery() {
+ query_ = getDefaultInstance().getQuery();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The bytes for query to set.
+ * @return This builder for chaining.
+ */
+ public Builder setQueryBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ query_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private int pageSize_;
+
+ /**
+ *
+ *
+ * + * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to + * 1000. Values above 5000 are coerced to 5000. + *+ * + *
int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ @java.lang.Override
+ public int getPageSize() {
+ return pageSize_;
+ }
+
+ /**
+ *
+ *
+ * + * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to + * 1000. Values above 5000 are coerced to 5000. + *+ * + *
int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The pageSize to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageSize(int value) {
+
+ pageSize_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to + * 1000. Values above 5000 are coerced to 5000. + *+ * + *
int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageSize() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ pageSize_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object pageToken_ = "";
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ public java.lang.String getPageToken() {
+ java.lang.Object ref = pageToken_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ pageToken_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ public com.google.protobuf.ByteString getPageTokenBytes() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ pageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The pageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageToken(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ pageToken_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageToken() {
+ pageToken_ = getDefaultInstance().getPageToken();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for pageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ pageToken_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.SearchRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.SearchRequest)
+ private static final com.google.shopping.merchant.reports.v1alpha.SearchRequest DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.SearchRequest();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The parent.
+ */
+ java.lang.String getParent();
+
+ /**
+ *
+ *
+ *
+ * Required. Id of the account making the call. Must be a standalone account
+ * or an MCA subaccount. Format: accounts/{account}
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for parent.
+ */
+ com.google.protobuf.ByteString getParentBytes();
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The query.
+ */
+ java.lang.String getQuery();
+
+ /**
+ *
+ *
+ * + * Required. Query that defines a report to be retrieved. + * + * For details on how to construct your query, see the Query Language + * guide. For the full list of available tables and fields, see the Available + * fields. + *+ * + *
string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for query.
+ */
+ com.google.protobuf.ByteString getQueryBytes();
+
+ /**
+ *
+ *
+ * + * Optional. Number of `ReportRows` to retrieve in a single page. Defaults to + * 1000. Values above 5000 are coerced to 5000. + *+ * + *
int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ int getPageSize();
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ java.lang.String getPageToken();
+
+ /**
+ *
+ *
+ * + * Optional. Token of the page to retrieve. If not specified, the first page + * of results is returned. In order to request the next page of results, the + * value obtained from `next_page_token` in the previous response should be + * used. + *+ * + *
string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ com.google.protobuf.ByteString getPageTokenBytes();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponse.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponse.java
new file mode 100644
index 000000000000..41fe2845232a
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/SearchResponse.java
@@ -0,0 +1,1169 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Response message for the `ReportService.Search` method. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchResponse} + */ +public final class SearchResponse extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.SearchResponse) + SearchResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use SearchResponse.newBuilder() to construct. + private SearchResponse(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private SearchResponse() { + results_ = java.util.Collections.emptyList(); + nextPageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SearchResponse(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_SearchResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.SearchResponse.class, + com.google.shopping.merchant.reports.v1alpha.SearchResponse.Builder.class); + } + + public static final int RESULTS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List
+ * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ @java.lang.Override
+ public java.util.List+ * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ @java.lang.Override
+ public java.util.List extends com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder>
+ getResultsOrBuilderList() {
+ return results_;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ @java.lang.Override
+ public int getResultsCount() {
+ return results_.size();
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ReportRow getResults(int index) {
+ return results_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ @java.lang.Override
+ public com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder getResultsOrBuilder(
+ int index) {
+ return results_.get(index);
+ }
+
+ public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object nextPageToken_ = "";
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @return The nextPageToken.
+ */
+ @java.lang.Override
+ public java.lang.String getNextPageToken() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ nextPageToken_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @return The bytes for nextPageToken.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNextPageTokenBytes() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ nextPageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ for (int i = 0; i < results_.size(); i++) {
+ output.writeMessage(1, results_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < results_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, results_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.shopping.merchant.reports.v1alpha.SearchResponse)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.SearchResponse other =
+ (com.google.shopping.merchant.reports.v1alpha.SearchResponse) obj;
+
+ if (!getResultsList().equals(other.getResultsList())) return false;
+ if (!getNextPageToken().equals(other.getNextPageToken())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getResultsCount() > 0) {
+ hash = (37 * hash) + RESULTS_FIELD_NUMBER;
+ hash = (53 * hash) + getResultsList().hashCode();
+ }
+ hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getNextPageToken().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.SearchResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Response message for the `ReportService.Search` method. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.SearchResponse} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public java.util.List+ * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public int getResultsCount() {
+ if (resultsBuilder_ == null) {
+ return results_.size();
+ } else {
+ return resultsBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ReportRow getResults(int index) {
+ if (resultsBuilder_ == null) {
+ return results_.get(index);
+ } else {
+ return resultsBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder setResults(
+ int index, com.google.shopping.merchant.reports.v1alpha.ReportRow value) {
+ if (resultsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResultsIsMutable();
+ results_.set(index, value);
+ onChanged();
+ } else {
+ resultsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder setResults(
+ int index, com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder builderForValue) {
+ if (resultsBuilder_ == null) {
+ ensureResultsIsMutable();
+ results_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ resultsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder addResults(com.google.shopping.merchant.reports.v1alpha.ReportRow value) {
+ if (resultsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResultsIsMutable();
+ results_.add(value);
+ onChanged();
+ } else {
+ resultsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder addResults(
+ int index, com.google.shopping.merchant.reports.v1alpha.ReportRow value) {
+ if (resultsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResultsIsMutable();
+ results_.add(index, value);
+ onChanged();
+ } else {
+ resultsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder addResults(
+ com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder builderForValue) {
+ if (resultsBuilder_ == null) {
+ ensureResultsIsMutable();
+ results_.add(builderForValue.build());
+ onChanged();
+ } else {
+ resultsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder addResults(
+ int index, com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder builderForValue) {
+ if (resultsBuilder_ == null) {
+ ensureResultsIsMutable();
+ results_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ resultsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder addAllResults(
+ java.lang.Iterable extends com.google.shopping.merchant.reports.v1alpha.ReportRow>
+ values) {
+ if (resultsBuilder_ == null) {
+ ensureResultsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, results_);
+ onChanged();
+ } else {
+ resultsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder clearResults() {
+ if (resultsBuilder_ == null) {
+ results_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ resultsBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public Builder removeResults(int index) {
+ if (resultsBuilder_ == null) {
+ ensureResultsIsMutable();
+ results_.remove(index);
+ onChanged();
+ } else {
+ resultsBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder getResultsBuilder(
+ int index) {
+ return getResultsFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder getResultsOrBuilder(
+ int index) {
+ if (resultsBuilder_ == null) {
+ return results_.get(index);
+ } else {
+ return resultsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public java.util.List extends com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder>
+ getResultsOrBuilderList() {
+ if (resultsBuilder_ != null) {
+ return resultsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(results_);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder addResultsBuilder() {
+ return getResultsFieldBuilder()
+ .addBuilder(com.google.shopping.merchant.reports.v1alpha.ReportRow.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public com.google.shopping.merchant.reports.v1alpha.ReportRow.Builder addResultsBuilder(
+ int index) {
+ return getResultsFieldBuilder()
+ .addBuilder(
+ index, com.google.shopping.merchant.reports.v1alpha.ReportRow.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ public java.util.List+ * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @return The nextPageToken.
+ */
+ public java.lang.String getNextPageToken() {
+ java.lang.Object ref = nextPageToken_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ nextPageToken_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @return The bytes for nextPageToken.
+ */
+ public com.google.protobuf.ByteString getNextPageTokenBytes() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ nextPageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @param value The nextPageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNextPageToken(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearNextPageToken() {
+ nextPageToken_ = getDefaultInstance().getNextPageToken();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @param value The bytes for nextPageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.SearchResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.SearchResponse)
+ private static final com.google.shopping.merchant.reports.v1alpha.SearchResponse DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.shopping.merchant.reports.v1alpha.SearchResponse();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.SearchResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ java.util.List+ * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ com.google.shopping.merchant.reports.v1alpha.ReportRow getResults(int index);
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ int getResultsCount();
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ java.util.List extends com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder>
+ getResultsOrBuilderList();
+
+ /**
+ *
+ *
+ * + * Rows that matched the search query. + *+ * + *
repeated .google.shopping.merchant.reports.v1alpha.ReportRow results = 1;
+ */
+ com.google.shopping.merchant.reports.v1alpha.ReportRowOrBuilder getResultsOrBuilder(int index);
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @return The nextPageToken.
+ */
+ java.lang.String getNextPageToken();
+
+ /**
+ *
+ *
+ * + * Token which can be sent as `page_token` to retrieve the next page. If + * omitted, there are no subsequent pages. + *+ * + *
string next_page_token = 2;
+ *
+ * @return The bytes for nextPageToken.
+ */
+ com.google.protobuf.ByteString getNextPageTokenBytes();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSource.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSource.java
new file mode 100644
index 000000000000..d891ec8bdf7f
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/TrafficSource.java
@@ -0,0 +1,622 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Traffic source of impressions in the Competitive visibility report. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.TrafficSource} + */ +public final class TrafficSource extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.TrafficSource) + TrafficSourceOrBuilder { + private static final long serialVersionUID = 0L; + + // Use TrafficSource.newBuilder() to construct. + private TrafficSource(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private TrafficSource() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TrafficSource(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_TrafficSource_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.TrafficSource.class, + com.google.shopping.merchant.reports.v1alpha.TrafficSource.Builder.class); + } + + /** + * + * + *
+ * Traffic source values. + *+ * + * Protobuf enum {@code google.shopping.merchant.reports.v1alpha.TrafficSource.TrafficSourceEnum} + */ + public enum TrafficSourceEnum implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Not specified. + *+ * + *
TRAFFIC_SOURCE_ENUM_UNSPECIFIED = 0;
+ */
+ TRAFFIC_SOURCE_ENUM_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * Organic traffic. + *+ * + *
ORGANIC = 1;
+ */
+ ORGANIC(1),
+ /**
+ *
+ *
+ * + * Traffic from ads. + *+ * + *
ADS = 2;
+ */
+ ADS(2),
+ /**
+ *
+ *
+ * + * Organic and ads traffic. + *+ * + *
ALL = 3;
+ */
+ ALL(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Not specified. + *+ * + *
TRAFFIC_SOURCE_ENUM_UNSPECIFIED = 0;
+ */
+ public static final int TRAFFIC_SOURCE_ENUM_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Organic traffic. + *+ * + *
ORGANIC = 1;
+ */
+ public static final int ORGANIC_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Traffic from ads. + *+ * + *
ADS = 2;
+ */
+ public static final int ADS_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * Organic and ads traffic. + *+ * + *
ALL = 3;
+ */
+ public static final int ALL_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static TrafficSourceEnum valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static TrafficSourceEnum forNumber(int value) {
+ switch (value) {
+ case 0:
+ return TRAFFIC_SOURCE_ENUM_UNSPECIFIED;
+ case 1:
+ return ORGANIC;
+ case 2:
+ return ADS;
+ case 3:
+ return ALL;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Traffic source of impressions in the Competitive visibility report. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.TrafficSource} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Fields available for query in `youtube_content_performance_view` table. + * + * [YouTube content performance + * data](https://support.google.com/merchants/answer/14947975) for your account. + * This data is only available if an account is enrolled in the [YouTube + * Shopping Affiliate + * program](https://support.google.com/merchants/answer/14815513?hl=en). + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView} + */ +public final class YoutubeContentPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) + YoutubeContentPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use YoutubeContentPerformanceView.newBuilder() to construct. + private YoutubeContentPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private YoutubeContentPerformanceView() { + title_ = ""; + videoId_ = ""; + channelTitle_ = ""; + channelId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new YoutubeContentPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeContentPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int VIDEO_ID_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object videoId_ = "";
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return Whether the videoId field is set.
+ */
+ @java.lang.Override
+ public boolean hasVideoId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return The videoId.
+ */
+ @java.lang.Override
+ public java.lang.String getVideoId() {
+ java.lang.Object ref = videoId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ videoId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return The bytes for videoId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getVideoIdBytes() {
+ java.lang.Object ref = videoId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ videoId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CHANNEL_TITLE_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object channelTitle_ = "";
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return Whether the channelTitle field is set.
+ */
+ @java.lang.Override
+ public boolean hasChannelTitle() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return The channelTitle.
+ */
+ @java.lang.Override
+ public java.lang.String getChannelTitle() {
+ java.lang.Object ref = channelTitle_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ channelTitle_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return The bytes for channelTitle.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getChannelTitleBytes() {
+ java.lang.Object ref = channelTitle_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ channelTitle_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CHANNEL_ID_FIELD_NUMBER = 5;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object channelId_ = "";
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return Whether the channelId field is set.
+ */
+ @java.lang.Override
+ public boolean hasChannelId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return The channelId.
+ */
+ @java.lang.Override
+ public java.lang.String getChannelId() {
+ java.lang.Object ref = channelId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ channelId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return The bytes for channelId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getChannelIdBytes() {
+ java.lang.Object ref = channelId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ channelId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int GROSS_SALES_FIELD_NUMBER = 6;
+ private com.google.shopping.type.Price grossSales_;
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ @java.lang.Override
+ public boolean hasGrossSales() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return The grossSales.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getGrossSales() {
+ return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() {
+ return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_;
+ }
+
+ public static final int COMMISSIONS_FIELD_NUMBER = 7;
+ private com.google.shopping.type.Price commissions_;
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return Whether the commissions field is set.
+ */
+ @java.lang.Override
+ public boolean hasCommissions() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return The commissions.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getCommissions() {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+
+ public static final int ORDERS_FIELD_NUMBER = 8;
+ private long orders_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return Whether the orders field is set.
+ */
+ @java.lang.Override
+ public boolean hasOrders() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return The orders.
+ */
+ @java.lang.Override
+ public long getOrders() {
+ return orders_;
+ }
+
+ public static final int VIEWS_FIELD_NUMBER = 9;
+ private long views_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return Whether the views field is set.
+ */
+ @java.lang.Override
+ public boolean hasViews() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return The views.
+ */
+ @java.lang.Override
+ public long getViews() {
+ return views_;
+ }
+
+ public static final int CLICKS_FIELD_NUMBER = 10;
+ private long clicks_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ public static final int NET_SALES_FIELD_NUMBER = 11;
+ private com.google.shopping.type.Price netSales_;
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return Whether the netSales field is set.
+ */
+ @java.lang.Override
+ public boolean hasNetSales() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return The netSales.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getNetSales() {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, videoId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, channelTitle_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, channelId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeMessage(6, getGrossSales());
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ output.writeMessage(7, getCommissions());
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeInt64(8, orders_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ output.writeInt64(9, views_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ output.writeInt64(10, clicks_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ output.writeMessage(11, getNetSales());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, videoId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, channelTitle_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, channelId_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getGrossSales());
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getCommissions());
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, orders_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(9, views_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, clicks_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getNetSales());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView other =
+ (com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView) obj;
+
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasVideoId() != other.hasVideoId()) return false;
+ if (hasVideoId()) {
+ if (!getVideoId().equals(other.getVideoId())) return false;
+ }
+ if (hasChannelTitle() != other.hasChannelTitle()) return false;
+ if (hasChannelTitle()) {
+ if (!getChannelTitle().equals(other.getChannelTitle())) return false;
+ }
+ if (hasChannelId() != other.hasChannelId()) return false;
+ if (hasChannelId()) {
+ if (!getChannelId().equals(other.getChannelId())) return false;
+ }
+ if (hasGrossSales() != other.hasGrossSales()) return false;
+ if (hasGrossSales()) {
+ if (!getGrossSales().equals(other.getGrossSales())) return false;
+ }
+ if (hasCommissions() != other.hasCommissions()) return false;
+ if (hasCommissions()) {
+ if (!getCommissions().equals(other.getCommissions())) return false;
+ }
+ if (hasOrders() != other.hasOrders()) return false;
+ if (hasOrders()) {
+ if (getOrders() != other.getOrders()) return false;
+ }
+ if (hasViews() != other.hasViews()) return false;
+ if (hasViews()) {
+ if (getViews() != other.getViews()) return false;
+ }
+ if (hasClicks() != other.hasClicks()) return false;
+ if (hasClicks()) {
+ if (getClicks() != other.getClicks()) return false;
+ }
+ if (hasNetSales() != other.hasNetSales()) return false;
+ if (hasNetSales()) {
+ if (!getNetSales().equals(other.getNetSales())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasVideoId()) {
+ hash = (37 * hash) + VIDEO_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getVideoId().hashCode();
+ }
+ if (hasChannelTitle()) {
+ hash = (37 * hash) + CHANNEL_TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getChannelTitle().hashCode();
+ }
+ if (hasChannelId()) {
+ hash = (37 * hash) + CHANNEL_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getChannelId().hashCode();
+ }
+ if (hasGrossSales()) {
+ hash = (37 * hash) + GROSS_SALES_FIELD_NUMBER;
+ hash = (53 * hash) + getGrossSales().hashCode();
+ }
+ if (hasCommissions()) {
+ hash = (37 * hash) + COMMISSIONS_FIELD_NUMBER;
+ hash = (53 * hash) + getCommissions().hashCode();
+ }
+ if (hasOrders()) {
+ hash = (37 * hash) + ORDERS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOrders());
+ }
+ if (hasViews()) {
+ hash = (37 * hash) + VIEWS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getViews());
+ }
+ if (hasClicks()) {
+ hash = (37 * hash) + CLICKS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks());
+ }
+ if (hasNetSales()) {
+ hash = (37 * hash) + NET_SALES_FIELD_NUMBER;
+ hash = (53 * hash) + getNetSales().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_content_performance_view` table. + * + * [YouTube content performance + * data](https://support.google.com/merchants/answer/14947975) for your account. + * This data is only available if an account is enrolled in the [YouTube + * Shopping Affiliate + * program](https://support.google.com/merchants/answer/14815513?hl=en). + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object videoId_ = "";
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return Whether the videoId field is set.
+ */
+ public boolean hasVideoId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return The videoId.
+ */
+ public java.lang.String getVideoId() {
+ java.lang.Object ref = videoId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ videoId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return The bytes for videoId.
+ */
+ public com.google.protobuf.ByteString getVideoIdBytes() {
+ java.lang.Object ref = videoId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ videoId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @param value The videoId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVideoId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ videoId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearVideoId() {
+ videoId_ = getDefaultInstance().getVideoId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @param value The bytes for videoId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVideoIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ videoId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object channelTitle_ = "";
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return Whether the channelTitle field is set.
+ */
+ public boolean hasChannelTitle() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return The channelTitle.
+ */
+ public java.lang.String getChannelTitle() {
+ java.lang.Object ref = channelTitle_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ channelTitle_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return The bytes for channelTitle.
+ */
+ public com.google.protobuf.ByteString getChannelTitleBytes() {
+ java.lang.Object ref = channelTitle_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ channelTitle_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @param value The channelTitle to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannelTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ channelTitle_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearChannelTitle() {
+ channelTitle_ = getDefaultInstance().getChannelTitle();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @param value The bytes for channelTitle to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannelTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ channelTitle_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object channelId_ = "";
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return Whether the channelId field is set.
+ */
+ public boolean hasChannelId() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return The channelId.
+ */
+ public java.lang.String getChannelId() {
+ java.lang.Object ref = channelId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ channelId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return The bytes for channelId.
+ */
+ public com.google.protobuf.ByteString getChannelIdBytes() {
+ java.lang.Object ref = channelId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ channelId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @param value The channelId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannelId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ channelId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearChannelId() {
+ channelId_ = getDefaultInstance().getChannelId();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @param value The bytes for channelId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannelIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ channelId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price grossSales_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ grossSalesBuilder_;
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ public boolean hasGrossSales() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return The grossSales.
+ */
+ public com.google.shopping.type.Price getGrossSales() {
+ if (grossSalesBuilder_ == null) {
+ return grossSales_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : grossSales_;
+ } else {
+ return grossSalesBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder setGrossSales(com.google.shopping.type.Price value) {
+ if (grossSalesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ grossSales_ = value;
+ } else {
+ grossSalesBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder setGrossSales(com.google.shopping.type.Price.Builder builderForValue) {
+ if (grossSalesBuilder_ == null) {
+ grossSales_ = builderForValue.build();
+ } else {
+ grossSalesBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder mergeGrossSales(com.google.shopping.type.Price value) {
+ if (grossSalesBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) != 0)
+ && grossSales_ != null
+ && grossSales_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getGrossSalesBuilder().mergeFrom(value);
+ } else {
+ grossSales_ = value;
+ }
+ } else {
+ grossSalesBuilder_.mergeFrom(value);
+ }
+ if (grossSales_ != null) {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder clearGrossSales() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ grossSales_ = null;
+ if (grossSalesBuilder_ != null) {
+ grossSalesBuilder_.dispose();
+ grossSalesBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public com.google.shopping.type.Price.Builder getGrossSalesBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return getGrossSalesFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() {
+ if (grossSalesBuilder_ != null) {
+ return grossSalesBuilder_.getMessageOrBuilder();
+ } else {
+ return grossSales_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : grossSales_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getGrossSalesFieldBuilder() {
+ if (grossSalesBuilder_ == null) {
+ grossSalesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getGrossSales(), getParentForChildren(), isClean());
+ grossSales_ = null;
+ }
+ return grossSalesBuilder_;
+ }
+
+ private com.google.shopping.type.Price commissions_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ commissionsBuilder_;
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return Whether the commissions field is set.
+ */
+ public boolean hasCommissions() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return The commissions.
+ */
+ public com.google.shopping.type.Price getCommissions() {
+ if (commissionsBuilder_ == null) {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ } else {
+ return commissionsBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder setCommissions(com.google.shopping.type.Price value) {
+ if (commissionsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ commissions_ = value;
+ } else {
+ commissionsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder setCommissions(com.google.shopping.type.Price.Builder builderForValue) {
+ if (commissionsBuilder_ == null) {
+ commissions_ = builderForValue.build();
+ } else {
+ commissionsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder mergeCommissions(com.google.shopping.type.Price value) {
+ if (commissionsBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) != 0)
+ && commissions_ != null
+ && commissions_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getCommissionsBuilder().mergeFrom(value);
+ } else {
+ commissions_ = value;
+ }
+ } else {
+ commissionsBuilder_.mergeFrom(value);
+ }
+ if (commissions_ != null) {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder clearCommissions() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ commissions_ = null;
+ if (commissionsBuilder_ != null) {
+ commissionsBuilder_.dispose();
+ commissionsBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public com.google.shopping.type.Price.Builder getCommissionsBuilder() {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return getCommissionsFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() {
+ if (commissionsBuilder_ != null) {
+ return commissionsBuilder_.getMessageOrBuilder();
+ } else {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getCommissionsFieldBuilder() {
+ if (commissionsBuilder_ == null) {
+ commissionsBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getCommissions(), getParentForChildren(), isClean());
+ commissions_ = null;
+ }
+ return commissionsBuilder_;
+ }
+
+ private long orders_;
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return Whether the orders field is set.
+ */
+ @java.lang.Override
+ public boolean hasOrders() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return The orders.
+ */
+ @java.lang.Override
+ public long getOrders() {
+ return orders_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @param value The orders to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOrders(long value) {
+
+ orders_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOrders() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ orders_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long views_;
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return Whether the views field is set.
+ */
+ @java.lang.Override
+ public boolean hasViews() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return The views.
+ */
+ @java.lang.Override
+ public long getViews() {
+ return views_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @param value The views to set.
+ * @return This builder for chaining.
+ */
+ public Builder setViews(long value) {
+
+ views_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearViews() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ views_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long clicks_;
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @param value The clicks to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClicks(long value) {
+
+ clicks_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClicks() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ clicks_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price netSales_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ netSalesBuilder_;
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return Whether the netSales field is set.
+ */
+ public boolean hasNetSales() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return The netSales.
+ */
+ public com.google.shopping.type.Price getNetSales() {
+ if (netSalesBuilder_ == null) {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ } else {
+ return netSalesBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder setNetSales(com.google.shopping.type.Price value) {
+ if (netSalesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ netSales_ = value;
+ } else {
+ netSalesBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder setNetSales(com.google.shopping.type.Price.Builder builderForValue) {
+ if (netSalesBuilder_ == null) {
+ netSales_ = builderForValue.build();
+ } else {
+ netSalesBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder mergeNetSales(com.google.shopping.type.Price value) {
+ if (netSalesBuilder_ == null) {
+ if (((bitField0_ & 0x00000400) != 0)
+ && netSales_ != null
+ && netSales_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getNetSalesBuilder().mergeFrom(value);
+ } else {
+ netSales_ = value;
+ }
+ } else {
+ netSalesBuilder_.mergeFrom(value);
+ }
+ if (netSales_ != null) {
+ bitField0_ |= 0x00000400;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder clearNetSales() {
+ bitField0_ = (bitField0_ & ~0x00000400);
+ netSales_ = null;
+ if (netSalesBuilder_ != null) {
+ netSalesBuilder_.dispose();
+ netSalesBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public com.google.shopping.type.Price.Builder getNetSalesBuilder() {
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return getNetSalesFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() {
+ if (netSalesBuilder_ != null) {
+ return netSalesBuilder_.getMessageOrBuilder();
+ } else {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getNetSalesFieldBuilder() {
+ if (netSalesBuilder_ == null) {
+ netSalesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getNetSales(), getParentForChildren(), isClean());
+ netSales_ = null;
+ }
+ return netSalesBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView)
+ private static final com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeContentPerformanceView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * The video title. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return Whether the videoId field is set.
+ */
+ boolean hasVideoId();
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return The videoId.
+ */
+ java.lang.String getVideoId();
+
+ /**
+ *
+ *
+ * + * The video id. + *+ * + *
optional string video_id = 3;
+ *
+ * @return The bytes for videoId.
+ */
+ com.google.protobuf.ByteString getVideoIdBytes();
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return Whether the channelTitle field is set.
+ */
+ boolean hasChannelTitle();
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return The channelTitle.
+ */
+ java.lang.String getChannelTitle();
+
+ /**
+ *
+ *
+ * + * The channel title. + *+ * + *
optional string channel_title = 4;
+ *
+ * @return The bytes for channelTitle.
+ */
+ com.google.protobuf.ByteString getChannelTitleBytes();
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return Whether the channelId field is set.
+ */
+ boolean hasChannelId();
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return The channelId.
+ */
+ java.lang.String getChannelId();
+
+ /**
+ *
+ *
+ * + * The channel id. + *+ * + *
optional string channel_id = 5;
+ *
+ * @return The bytes for channelId.
+ */
+ com.google.protobuf.ByteString getChannelIdBytes();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ boolean hasGrossSales();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return The grossSales.
+ */
+ com.google.shopping.type.Price getGrossSales();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return Whether the commissions field is set.
+ */
+ boolean hasCommissions();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return The commissions.
+ */
+ com.google.shopping.type.Price getCommissions();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder();
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return Whether the orders field is set.
+ */
+ boolean hasOrders();
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return The orders.
+ */
+ long getOrders();
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return Whether the views field is set.
+ */
+ boolean hasViews();
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return The views.
+ */
+ long getViews();
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return Whether the clicks field is set.
+ */
+ boolean hasClicks();
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return The clicks.
+ */
+ long getClicks();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return Whether the netSales field is set.
+ */
+ boolean hasNetSales();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return The netSales.
+ */
+ com.google.shopping.type.Price getNetSales();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceView.java
new file mode 100644
index 000000000000..480103336b48
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeCreatorPerformanceView.java
@@ -0,0 +1,2474 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + * + * [YouTube creator performance + * data](https://support.google.com/merchants/answer/14947975) for your account. + * This data is only available if an account is enrolled in the [YouTube + * Shopping Affiliate + * program](https://support.google.com/merchants/answer/14815513?hl=en). + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView} + */ +public final class YoutubeCreatorPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) + YoutubeCreatorPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use YoutubeCreatorPerformanceView.newBuilder() to construct. + private YoutubeCreatorPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private YoutubeCreatorPerformanceView() { + title_ = ""; + channelId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new YoutubeCreatorPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeCreatorPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CHANNEL_ID_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object channelId_ = "";
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return Whether the channelId field is set.
+ */
+ @java.lang.Override
+ public boolean hasChannelId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return The channelId.
+ */
+ @java.lang.Override
+ public java.lang.String getChannelId() {
+ java.lang.Object ref = channelId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ channelId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return The bytes for channelId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getChannelIdBytes() {
+ java.lang.Object ref = channelId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ channelId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int GROSS_SALES_FIELD_NUMBER = 4;
+ private com.google.shopping.type.Price grossSales_;
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ @java.lang.Override
+ public boolean hasGrossSales() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ *
+ * @return The grossSales.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getGrossSales() {
+ return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() {
+ return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_;
+ }
+
+ public static final int COMMISSIONS_FIELD_NUMBER = 5;
+ private com.google.shopping.type.Price commissions_;
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ *
+ * @return Whether the commissions field is set.
+ */
+ @java.lang.Override
+ public boolean hasCommissions() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ *
+ * @return The commissions.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getCommissions() {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+
+ public static final int ORDERS_FIELD_NUMBER = 6;
+ private long orders_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @return Whether the orders field is set.
+ */
+ @java.lang.Override
+ public boolean hasOrders() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @return The orders.
+ */
+ @java.lang.Override
+ public long getOrders() {
+ return orders_;
+ }
+
+ public static final int VIEWS_FIELD_NUMBER = 7;
+ private long views_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @return Whether the views field is set.
+ */
+ @java.lang.Override
+ public boolean hasViews() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @return The views.
+ */
+ @java.lang.Override
+ public long getViews() {
+ return views_;
+ }
+
+ public static final int CLICKS_FIELD_NUMBER = 8;
+ private long clicks_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ public static final int NET_SALES_FIELD_NUMBER = 9;
+ private com.google.shopping.type.Price netSales_;
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ *
+ * @return Whether the netSales field is set.
+ */
+ @java.lang.Override
+ public boolean hasNetSales() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ *
+ * @return The netSales.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getNetSales() {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, channelId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeMessage(4, getGrossSales());
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ output.writeMessage(5, getCommissions());
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeInt64(6, orders_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ output.writeInt64(7, views_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeInt64(8, clicks_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ output.writeMessage(9, getNetSales());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, channelId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getGrossSales());
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getCommissions());
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(6, orders_);
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, views_);
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, clicks_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getNetSales());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView other =
+ (com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView) obj;
+
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasChannelId() != other.hasChannelId()) return false;
+ if (hasChannelId()) {
+ if (!getChannelId().equals(other.getChannelId())) return false;
+ }
+ if (hasGrossSales() != other.hasGrossSales()) return false;
+ if (hasGrossSales()) {
+ if (!getGrossSales().equals(other.getGrossSales())) return false;
+ }
+ if (hasCommissions() != other.hasCommissions()) return false;
+ if (hasCommissions()) {
+ if (!getCommissions().equals(other.getCommissions())) return false;
+ }
+ if (hasOrders() != other.hasOrders()) return false;
+ if (hasOrders()) {
+ if (getOrders() != other.getOrders()) return false;
+ }
+ if (hasViews() != other.hasViews()) return false;
+ if (hasViews()) {
+ if (getViews() != other.getViews()) return false;
+ }
+ if (hasClicks() != other.hasClicks()) return false;
+ if (hasClicks()) {
+ if (getClicks() != other.getClicks()) return false;
+ }
+ if (hasNetSales() != other.hasNetSales()) return false;
+ if (hasNetSales()) {
+ if (!getNetSales().equals(other.getNetSales())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasChannelId()) {
+ hash = (37 * hash) + CHANNEL_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getChannelId().hashCode();
+ }
+ if (hasGrossSales()) {
+ hash = (37 * hash) + GROSS_SALES_FIELD_NUMBER;
+ hash = (53 * hash) + getGrossSales().hashCode();
+ }
+ if (hasCommissions()) {
+ hash = (37 * hash) + COMMISSIONS_FIELD_NUMBER;
+ hash = (53 * hash) + getCommissions().hashCode();
+ }
+ if (hasOrders()) {
+ hash = (37 * hash) + ORDERS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOrders());
+ }
+ if (hasViews()) {
+ hash = (37 * hash) + VIEWS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getViews());
+ }
+ if (hasClicks()) {
+ hash = (37 * hash) + CLICKS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks());
+ }
+ if (hasNetSales()) {
+ hash = (37 * hash) + NET_SALES_FIELD_NUMBER;
+ hash = (53 * hash) + getNetSales().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_creator_performance_view` table. + * + * [YouTube creator performance + * data](https://support.google.com/merchants/answer/14947975) for your account. + * This data is only available if an account is enrolled in the [YouTube + * Shopping Affiliate + * program](https://support.google.com/merchants/answer/14815513?hl=en). + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object channelId_ = "";
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return Whether the channelId field is set.
+ */
+ public boolean hasChannelId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return The channelId.
+ */
+ public java.lang.String getChannelId() {
+ java.lang.Object ref = channelId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ channelId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return The bytes for channelId.
+ */
+ public com.google.protobuf.ByteString getChannelIdBytes() {
+ java.lang.Object ref = channelId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ channelId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @param value The channelId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannelId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ channelId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearChannelId() {
+ channelId_ = getDefaultInstance().getChannelId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @param value The bytes for channelId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setChannelIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ channelId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price grossSales_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ grossSalesBuilder_;
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ public boolean hasGrossSales() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ *
+ * @return The grossSales.
+ */
+ public com.google.shopping.type.Price getGrossSales() {
+ if (grossSalesBuilder_ == null) {
+ return grossSales_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : grossSales_;
+ } else {
+ return grossSalesBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ public Builder setGrossSales(com.google.shopping.type.Price value) {
+ if (grossSalesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ grossSales_ = value;
+ } else {
+ grossSalesBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ public Builder setGrossSales(com.google.shopping.type.Price.Builder builderForValue) {
+ if (grossSalesBuilder_ == null) {
+ grossSales_ = builderForValue.build();
+ } else {
+ grossSalesBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ public Builder mergeGrossSales(com.google.shopping.type.Price value) {
+ if (grossSalesBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) != 0)
+ && grossSales_ != null
+ && grossSales_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getGrossSalesBuilder().mergeFrom(value);
+ } else {
+ grossSales_ = value;
+ }
+ } else {
+ grossSalesBuilder_.mergeFrom(value);
+ }
+ if (grossSales_ != null) {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ public Builder clearGrossSales() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ grossSales_ = null;
+ if (grossSalesBuilder_ != null) {
+ grossSalesBuilder_.dispose();
+ grossSalesBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ public com.google.shopping.type.Price.Builder getGrossSalesBuilder() {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return getGrossSalesFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() {
+ if (grossSalesBuilder_ != null) {
+ return grossSalesBuilder_.getMessageOrBuilder();
+ } else {
+ return grossSales_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : grossSales_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getGrossSalesFieldBuilder() {
+ if (grossSalesBuilder_ == null) {
+ grossSalesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getGrossSales(), getParentForChildren(), isClean());
+ grossSales_ = null;
+ }
+ return grossSalesBuilder_;
+ }
+
+ private com.google.shopping.type.Price commissions_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ commissionsBuilder_;
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ *
+ * @return Whether the commissions field is set.
+ */
+ public boolean hasCommissions() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ *
+ * @return The commissions.
+ */
+ public com.google.shopping.type.Price getCommissions() {
+ if (commissionsBuilder_ == null) {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ } else {
+ return commissionsBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ public Builder setCommissions(com.google.shopping.type.Price value) {
+ if (commissionsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ commissions_ = value;
+ } else {
+ commissionsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ public Builder setCommissions(com.google.shopping.type.Price.Builder builderForValue) {
+ if (commissionsBuilder_ == null) {
+ commissions_ = builderForValue.build();
+ } else {
+ commissionsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ public Builder mergeCommissions(com.google.shopping.type.Price value) {
+ if (commissionsBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) != 0)
+ && commissions_ != null
+ && commissions_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getCommissionsBuilder().mergeFrom(value);
+ } else {
+ commissions_ = value;
+ }
+ } else {
+ commissionsBuilder_.mergeFrom(value);
+ }
+ if (commissions_ != null) {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ public Builder clearCommissions() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ commissions_ = null;
+ if (commissionsBuilder_ != null) {
+ commissionsBuilder_.dispose();
+ commissionsBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ public com.google.shopping.type.Price.Builder getCommissionsBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return getCommissionsFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() {
+ if (commissionsBuilder_ != null) {
+ return commissionsBuilder_.getMessageOrBuilder();
+ } else {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getCommissionsFieldBuilder() {
+ if (commissionsBuilder_ == null) {
+ commissionsBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getCommissions(), getParentForChildren(), isClean());
+ commissions_ = null;
+ }
+ return commissionsBuilder_;
+ }
+
+ private long orders_;
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @return Whether the orders field is set.
+ */
+ @java.lang.Override
+ public boolean hasOrders() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @return The orders.
+ */
+ @java.lang.Override
+ public long getOrders() {
+ return orders_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @param value The orders to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOrders(long value) {
+
+ orders_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOrders() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ orders_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long views_;
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @return Whether the views field is set.
+ */
+ @java.lang.Override
+ public boolean hasViews() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @return The views.
+ */
+ @java.lang.Override
+ public long getViews() {
+ return views_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @param value The views to set.
+ * @return This builder for chaining.
+ */
+ public Builder setViews(long value) {
+
+ views_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearViews() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ views_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long clicks_;
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @param value The clicks to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClicks(long value) {
+
+ clicks_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClicks() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ clicks_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price netSales_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ netSalesBuilder_;
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ *
+ * @return Whether the netSales field is set.
+ */
+ public boolean hasNetSales() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ *
+ * @return The netSales.
+ */
+ public com.google.shopping.type.Price getNetSales() {
+ if (netSalesBuilder_ == null) {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ } else {
+ return netSalesBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ public Builder setNetSales(com.google.shopping.type.Price value) {
+ if (netSalesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ netSales_ = value;
+ } else {
+ netSalesBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ public Builder setNetSales(com.google.shopping.type.Price.Builder builderForValue) {
+ if (netSalesBuilder_ == null) {
+ netSales_ = builderForValue.build();
+ } else {
+ netSalesBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ public Builder mergeNetSales(com.google.shopping.type.Price value) {
+ if (netSalesBuilder_ == null) {
+ if (((bitField0_ & 0x00000100) != 0)
+ && netSales_ != null
+ && netSales_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getNetSalesBuilder().mergeFrom(value);
+ } else {
+ netSales_ = value;
+ }
+ } else {
+ netSalesBuilder_.mergeFrom(value);
+ }
+ if (netSales_ != null) {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ public Builder clearNetSales() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ netSales_ = null;
+ if (netSalesBuilder_ != null) {
+ netSalesBuilder_.dispose();
+ netSalesBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ public com.google.shopping.type.Price.Builder getNetSalesBuilder() {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return getNetSalesFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() {
+ if (netSalesBuilder_ != null) {
+ return netSalesBuilder_.getMessageOrBuilder();
+ } else {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getNetSalesFieldBuilder() {
+ if (netSalesBuilder_ == null) {
+ netSalesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getNetSales(), getParentForChildren(), isClean());
+ netSales_ = null;
+ }
+ return netSalesBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView)
+ private static final com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeCreatorPerformanceView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * The title of the creator channel. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return Whether the channelId field is set.
+ */
+ boolean hasChannelId();
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return The channelId.
+ */
+ java.lang.String getChannelId();
+
+ /**
+ *
+ *
+ * + * The id for the creator channel. + *+ * + *
optional string channel_id = 3;
+ *
+ * @return The bytes for channelId.
+ */
+ com.google.protobuf.ByteString getChannelIdBytes();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ boolean hasGrossSales();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ *
+ * @return The grossSales.
+ */
+ com.google.shopping.type.Price getGrossSales();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 4;
+ */
+ com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ *
+ * @return Whether the commissions field is set.
+ */
+ boolean hasCommissions();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ *
+ * @return The commissions.
+ */
+ com.google.shopping.type.Price getCommissions();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 5;
+ */
+ com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder();
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @return Whether the orders field is set.
+ */
+ boolean hasOrders();
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 6;
+ *
+ * @return The orders.
+ */
+ long getOrders();
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @return Whether the views field is set.
+ */
+ boolean hasViews();
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 7;
+ *
+ * @return The views.
+ */
+ long getViews();
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @return Whether the clicks field is set.
+ */
+ boolean hasClicks();
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 8;
+ *
+ * @return The clicks.
+ */
+ long getClicks();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ *
+ * @return Whether the netSales field is set.
+ */
+ boolean hasNetSales();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ *
+ * @return The netSales.
+ */
+ com.google.shopping.type.Price getNetSales();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 9;
+ */
+ com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceView.java b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceView.java
new file mode 100644
index 000000000000..4f93a05f8869
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/java/com/google/shopping/merchant/reports/v1alpha/YoutubeProductPerformanceView.java
@@ -0,0 +1,2744 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/shopping/merchant/reports/v1alpha/reports.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.shopping.merchant.reports.v1alpha;
+
+/**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + * + * [YouTube product performance + * data](https://support.google.com/merchants/answer/14947975) for your account. + * This data is only available if an account is enrolled in the [YouTube + * Shopping Affiliate + * program](https://support.google.com/merchants/answer/14815513?hl=en). + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView} + */ +public final class YoutubeProductPerformanceView extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) + YoutubeProductPerformanceViewOrBuilder { + private static final long serialVersionUID = 0L; + + // Use YoutubeProductPerformanceView.newBuilder() to construct. + private YoutubeProductPerformanceView(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private YoutubeProductPerformanceView() { + title_ = ""; + offerId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new YoutubeProductPerformanceView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.reports.v1alpha.ReportsProto + .internal_static_google_shopping_merchant_reports_v1alpha_YoutubeProductPerformanceView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.class, + com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView.Builder + .class); + } + + private int bitField0_; + public static final int DATE_FIELD_NUMBER = 1; + private com.google.type.Date date_; + + /** + * + * + *
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ @java.lang.Override
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ @java.lang.Override
+ public com.google.type.Date getDate() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+
+ public static final int TITLE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ @java.lang.Override
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ @java.lang.Override
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int OFFER_ID_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return Whether the offerId field is set.
+ */
+ @java.lang.Override
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The offerId.
+ */
+ @java.lang.Override
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The bytes for offerId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DISTINCT_VIDEO_COUNT_FIELD_NUMBER = 4;
+ private long distinctVideoCount_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @return Whether the distinctVideoCount field is set.
+ */
+ @java.lang.Override
+ public boolean hasDistinctVideoCount() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @return The distinctVideoCount.
+ */
+ @java.lang.Override
+ public long getDistinctVideoCount() {
+ return distinctVideoCount_;
+ }
+
+ public static final int DISTINCT_CREATOR_COUNT_FIELD_NUMBER = 5;
+ private long distinctCreatorCount_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @return Whether the distinctCreatorCount field is set.
+ */
+ @java.lang.Override
+ public boolean hasDistinctCreatorCount() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @return The distinctCreatorCount.
+ */
+ @java.lang.Override
+ public long getDistinctCreatorCount() {
+ return distinctCreatorCount_;
+ }
+
+ public static final int GROSS_SALES_FIELD_NUMBER = 6;
+ private com.google.shopping.type.Price grossSales_;
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ @java.lang.Override
+ public boolean hasGrossSales() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return The grossSales.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getGrossSales() {
+ return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() {
+ return grossSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : grossSales_;
+ }
+
+ public static final int COMMISSIONS_FIELD_NUMBER = 7;
+ private com.google.shopping.type.Price commissions_;
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return Whether the commissions field is set.
+ */
+ @java.lang.Override
+ public boolean hasCommissions() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return The commissions.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getCommissions() {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+
+ public static final int ORDERS_FIELD_NUMBER = 8;
+ private long orders_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return Whether the orders field is set.
+ */
+ @java.lang.Override
+ public boolean hasOrders() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return The orders.
+ */
+ @java.lang.Override
+ public long getOrders() {
+ return orders_;
+ }
+
+ public static final int VIEWS_FIELD_NUMBER = 9;
+ private long views_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return Whether the views field is set.
+ */
+ @java.lang.Override
+ public boolean hasViews() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return The views.
+ */
+ @java.lang.Override
+ public long getViews() {
+ return views_;
+ }
+
+ public static final int CLICKS_FIELD_NUMBER = 10;
+ private long clicks_ = 0L;
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ public static final int NET_SALES_FIELD_NUMBER = 11;
+ private com.google.shopping.type.Price netSales_;
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return Whether the netSales field is set.
+ */
+ @java.lang.Override
+ public boolean hasNetSales() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return The netSales.
+ */
+ @java.lang.Override
+ public com.google.shopping.type.Price getNetSales() {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ @java.lang.Override
+ public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, offerId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeInt64(4, distinctVideoCount_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ output.writeInt64(5, distinctCreatorCount_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ output.writeMessage(6, getGrossSales());
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ output.writeMessage(7, getCommissions());
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeInt64(8, orders_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ output.writeInt64(9, views_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ output.writeInt64(10, clicks_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ output.writeMessage(11, getNetSales());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDate());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, offerId_);
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, distinctVideoCount_);
+ }
+ if (((bitField0_ & 0x00000010) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, distinctCreatorCount_);
+ }
+ if (((bitField0_ & 0x00000020) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getGrossSales());
+ }
+ if (((bitField0_ & 0x00000040) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getCommissions());
+ }
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, orders_);
+ }
+ if (((bitField0_ & 0x00000100) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(9, views_);
+ }
+ if (((bitField0_ & 0x00000200) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, clicks_);
+ }
+ if (((bitField0_ & 0x00000400) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getNetSales());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView)) {
+ return super.equals(obj);
+ }
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView other =
+ (com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView) obj;
+
+ if (hasDate() != other.hasDate()) return false;
+ if (hasDate()) {
+ if (!getDate().equals(other.getDate())) return false;
+ }
+ if (hasTitle() != other.hasTitle()) return false;
+ if (hasTitle()) {
+ if (!getTitle().equals(other.getTitle())) return false;
+ }
+ if (hasOfferId() != other.hasOfferId()) return false;
+ if (hasOfferId()) {
+ if (!getOfferId().equals(other.getOfferId())) return false;
+ }
+ if (hasDistinctVideoCount() != other.hasDistinctVideoCount()) return false;
+ if (hasDistinctVideoCount()) {
+ if (getDistinctVideoCount() != other.getDistinctVideoCount()) return false;
+ }
+ if (hasDistinctCreatorCount() != other.hasDistinctCreatorCount()) return false;
+ if (hasDistinctCreatorCount()) {
+ if (getDistinctCreatorCount() != other.getDistinctCreatorCount()) return false;
+ }
+ if (hasGrossSales() != other.hasGrossSales()) return false;
+ if (hasGrossSales()) {
+ if (!getGrossSales().equals(other.getGrossSales())) return false;
+ }
+ if (hasCommissions() != other.hasCommissions()) return false;
+ if (hasCommissions()) {
+ if (!getCommissions().equals(other.getCommissions())) return false;
+ }
+ if (hasOrders() != other.hasOrders()) return false;
+ if (hasOrders()) {
+ if (getOrders() != other.getOrders()) return false;
+ }
+ if (hasViews() != other.hasViews()) return false;
+ if (hasViews()) {
+ if (getViews() != other.getViews()) return false;
+ }
+ if (hasClicks() != other.hasClicks()) return false;
+ if (hasClicks()) {
+ if (getClicks() != other.getClicks()) return false;
+ }
+ if (hasNetSales() != other.hasNetSales()) return false;
+ if (hasNetSales()) {
+ if (!getNetSales().equals(other.getNetSales())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDate()) {
+ hash = (37 * hash) + DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getDate().hashCode();
+ }
+ if (hasTitle()) {
+ hash = (37 * hash) + TITLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTitle().hashCode();
+ }
+ if (hasOfferId()) {
+ hash = (37 * hash) + OFFER_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getOfferId().hashCode();
+ }
+ if (hasDistinctVideoCount()) {
+ hash = (37 * hash) + DISTINCT_VIDEO_COUNT_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getDistinctVideoCount());
+ }
+ if (hasDistinctCreatorCount()) {
+ hash = (37 * hash) + DISTINCT_CREATOR_COUNT_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getDistinctCreatorCount());
+ }
+ if (hasGrossSales()) {
+ hash = (37 * hash) + GROSS_SALES_FIELD_NUMBER;
+ hash = (53 * hash) + getGrossSales().hashCode();
+ }
+ if (hasCommissions()) {
+ hash = (37 * hash) + COMMISSIONS_FIELD_NUMBER;
+ hash = (53 * hash) + getCommissions().hashCode();
+ }
+ if (hasOrders()) {
+ hash = (37 * hash) + ORDERS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOrders());
+ }
+ if (hasViews()) {
+ hash = (37 * hash) + VIEWS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getViews());
+ }
+ if (hasClicks()) {
+ hash = (37 * hash) + CLICKS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getClicks());
+ }
+ if (hasNetSales()) {
+ hash = (37 * hash) + NET_SALES_FIELD_NUMBER;
+ hash = (53 * hash) + getNetSales().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Fields available for query in `youtube_product_performance_view` table. + * + * [YouTube product performance + * data](https://support.google.com/merchants/answer/14947975) for your account. + * This data is only available if an account is enrolled in the [YouTube + * Shopping Affiliate + * program](https://support.google.com/merchants/answer/14815513?hl=en). + * + * Values are only set for fields requested explicitly in the request's search + * query. + *+ * + * Protobuf type {@code google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ public boolean hasDate() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ public com.google.type.Date getDate() {
+ if (dateBuilder_ == null) {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ } else {
+ return dateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ date_ = value;
+ } else {
+ dateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder setDate(com.google.type.Date.Builder builderForValue) {
+ if (dateBuilder_ == null) {
+ date_ = builderForValue.build();
+ } else {
+ dateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder mergeDate(com.google.type.Date value) {
+ if (dateBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && date_ != null
+ && date_ != com.google.type.Date.getDefaultInstance()) {
+ getDateBuilder().mergeFrom(value);
+ } else {
+ date_ = value;
+ }
+ } else {
+ dateBuilder_.mergeFrom(value);
+ }
+ if (date_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public Builder clearDate() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ date_ = null;
+ if (dateBuilder_ != null) {
+ dateBuilder_.dispose();
+ dateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.Date.Builder getDateBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getDateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ public com.google.type.DateOrBuilder getDateOrBuilder() {
+ if (dateBuilder_ != null) {
+ return dateBuilder_.getMessageOrBuilder();
+ } else {
+ return date_ == null ? com.google.type.Date.getDefaultInstance() : date_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getDateFieldBuilder() {
+ if (dateBuilder_ == null) {
+ dateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getDate(), getParentForChildren(), isClean());
+ date_ = null;
+ }
+ return dateBuilder_;
+ }
+
+ private java.lang.Object title_ = "";
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ public boolean hasTitle() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ public java.lang.String getTitle() {
+ java.lang.Object ref = title_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ title_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ public com.google.protobuf.ByteString getTitleBytes() {
+ java.lang.Object ref = title_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ title_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @param value The title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitle(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ title_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTitle() {
+ title_ = getDefaultInstance().getTitle();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @param value The bytes for title to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTitleBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ title_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object offerId_ = "";
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return Whether the offerId field is set.
+ */
+ public boolean hasOfferId() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The offerId.
+ */
+ public java.lang.String getOfferId() {
+ java.lang.Object ref = offerId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ offerId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The bytes for offerId.
+ */
+ public com.google.protobuf.ByteString getOfferIdBytes() {
+ java.lang.Object ref = offerId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ offerId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @param value The offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ offerId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOfferId() {
+ offerId_ = getDefaultInstance().getOfferId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @param value The bytes for offerId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOfferIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ offerId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private long distinctVideoCount_;
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @return Whether the distinctVideoCount field is set.
+ */
+ @java.lang.Override
+ public boolean hasDistinctVideoCount() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @return The distinctVideoCount.
+ */
+ @java.lang.Override
+ public long getDistinctVideoCount() {
+ return distinctVideoCount_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @param value The distinctVideoCount to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDistinctVideoCount(long value) {
+
+ distinctVideoCount_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDistinctVideoCount() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ distinctVideoCount_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long distinctCreatorCount_;
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @return Whether the distinctCreatorCount field is set.
+ */
+ @java.lang.Override
+ public boolean hasDistinctCreatorCount() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @return The distinctCreatorCount.
+ */
+ @java.lang.Override
+ public long getDistinctCreatorCount() {
+ return distinctCreatorCount_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @param value The distinctCreatorCount to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDistinctCreatorCount(long value) {
+
+ distinctCreatorCount_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDistinctCreatorCount() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ distinctCreatorCount_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price grossSales_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ grossSalesBuilder_;
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ public boolean hasGrossSales() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return The grossSales.
+ */
+ public com.google.shopping.type.Price getGrossSales() {
+ if (grossSalesBuilder_ == null) {
+ return grossSales_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : grossSales_;
+ } else {
+ return grossSalesBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder setGrossSales(com.google.shopping.type.Price value) {
+ if (grossSalesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ grossSales_ = value;
+ } else {
+ grossSalesBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder setGrossSales(com.google.shopping.type.Price.Builder builderForValue) {
+ if (grossSalesBuilder_ == null) {
+ grossSales_ = builderForValue.build();
+ } else {
+ grossSalesBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder mergeGrossSales(com.google.shopping.type.Price value) {
+ if (grossSalesBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) != 0)
+ && grossSales_ != null
+ && grossSales_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getGrossSalesBuilder().mergeFrom(value);
+ } else {
+ grossSales_ = value;
+ }
+ } else {
+ grossSalesBuilder_.mergeFrom(value);
+ }
+ if (grossSales_ != null) {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public Builder clearGrossSales() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ grossSales_ = null;
+ if (grossSalesBuilder_ != null) {
+ grossSalesBuilder_.dispose();
+ grossSalesBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public com.google.shopping.type.Price.Builder getGrossSalesBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return getGrossSalesFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ public com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder() {
+ if (grossSalesBuilder_ != null) {
+ return grossSalesBuilder_.getMessageOrBuilder();
+ } else {
+ return grossSales_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : grossSales_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getGrossSalesFieldBuilder() {
+ if (grossSalesBuilder_ == null) {
+ grossSalesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getGrossSales(), getParentForChildren(), isClean());
+ grossSales_ = null;
+ }
+ return grossSalesBuilder_;
+ }
+
+ private com.google.shopping.type.Price commissions_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ commissionsBuilder_;
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return Whether the commissions field is set.
+ */
+ public boolean hasCommissions() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return The commissions.
+ */
+ public com.google.shopping.type.Price getCommissions() {
+ if (commissionsBuilder_ == null) {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ } else {
+ return commissionsBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder setCommissions(com.google.shopping.type.Price value) {
+ if (commissionsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ commissions_ = value;
+ } else {
+ commissionsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder setCommissions(com.google.shopping.type.Price.Builder builderForValue) {
+ if (commissionsBuilder_ == null) {
+ commissions_ = builderForValue.build();
+ } else {
+ commissionsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder mergeCommissions(com.google.shopping.type.Price value) {
+ if (commissionsBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) != 0)
+ && commissions_ != null
+ && commissions_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getCommissionsBuilder().mergeFrom(value);
+ } else {
+ commissions_ = value;
+ }
+ } else {
+ commissionsBuilder_.mergeFrom(value);
+ }
+ if (commissions_ != null) {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public Builder clearCommissions() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ commissions_ = null;
+ if (commissionsBuilder_ != null) {
+ commissionsBuilder_.dispose();
+ commissionsBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public com.google.shopping.type.Price.Builder getCommissionsBuilder() {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return getCommissionsFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ public com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder() {
+ if (commissionsBuilder_ != null) {
+ return commissionsBuilder_.getMessageOrBuilder();
+ } else {
+ return commissions_ == null
+ ? com.google.shopping.type.Price.getDefaultInstance()
+ : commissions_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getCommissionsFieldBuilder() {
+ if (commissionsBuilder_ == null) {
+ commissionsBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getCommissions(), getParentForChildren(), isClean());
+ commissions_ = null;
+ }
+ return commissionsBuilder_;
+ }
+
+ private long orders_;
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return Whether the orders field is set.
+ */
+ @java.lang.Override
+ public boolean hasOrders() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return The orders.
+ */
+ @java.lang.Override
+ public long getOrders() {
+ return orders_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @param value The orders to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOrders(long value) {
+
+ orders_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOrders() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ orders_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long views_;
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return Whether the views field is set.
+ */
+ @java.lang.Override
+ public boolean hasViews() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return The views.
+ */
+ @java.lang.Override
+ public long getViews() {
+ return views_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @param value The views to set.
+ * @return This builder for chaining.
+ */
+ public Builder setViews(long value) {
+
+ views_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearViews() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ views_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long clicks_;
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return Whether the clicks field is set.
+ */
+ @java.lang.Override
+ public boolean hasClicks() {
+ return ((bitField0_ & 0x00000200) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return The clicks.
+ */
+ @java.lang.Override
+ public long getClicks() {
+ return clicks_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @param value The clicks to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClicks(long value) {
+
+ clicks_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClicks() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ clicks_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private com.google.shopping.type.Price netSales_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ netSalesBuilder_;
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return Whether the netSales field is set.
+ */
+ public boolean hasNetSales() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return The netSales.
+ */
+ public com.google.shopping.type.Price getNetSales() {
+ if (netSalesBuilder_ == null) {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ } else {
+ return netSalesBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder setNetSales(com.google.shopping.type.Price value) {
+ if (netSalesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ netSales_ = value;
+ } else {
+ netSalesBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder setNetSales(com.google.shopping.type.Price.Builder builderForValue) {
+ if (netSalesBuilder_ == null) {
+ netSales_ = builderForValue.build();
+ } else {
+ netSalesBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder mergeNetSales(com.google.shopping.type.Price value) {
+ if (netSalesBuilder_ == null) {
+ if (((bitField0_ & 0x00000400) != 0)
+ && netSales_ != null
+ && netSales_ != com.google.shopping.type.Price.getDefaultInstance()) {
+ getNetSalesBuilder().mergeFrom(value);
+ } else {
+ netSales_ = value;
+ }
+ } else {
+ netSalesBuilder_.mergeFrom(value);
+ }
+ if (netSales_ != null) {
+ bitField0_ |= 0x00000400;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public Builder clearNetSales() {
+ bitField0_ = (bitField0_ & ~0x00000400);
+ netSales_ = null;
+ if (netSalesBuilder_ != null) {
+ netSalesBuilder_.dispose();
+ netSalesBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public com.google.shopping.type.Price.Builder getNetSalesBuilder() {
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return getNetSalesFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ public com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder() {
+ if (netSalesBuilder_ != null) {
+ return netSalesBuilder_.getMessageOrBuilder();
+ } else {
+ return netSales_ == null ? com.google.shopping.type.Price.getDefaultInstance() : netSales_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>
+ getNetSalesFieldBuilder() {
+ if (netSalesBuilder_ == null) {
+ netSalesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.shopping.type.Price,
+ com.google.shopping.type.Price.Builder,
+ com.google.shopping.type.PriceOrBuilder>(
+ getNetSales(), getParentForChildren(), isClean());
+ netSales_ = null;
+ }
+ return netSalesBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView)
+ private static final com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView();
+ }
+
+ public static com.google.shopping.merchant.reports.v1alpha.YoutubeProductPerformanceView
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return Whether the date field is set.
+ */
+ boolean hasDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ *
+ * @return The date.
+ */
+ com.google.type.Date getDate();
+
+ /**
+ *
+ *
+ * + * Date in the merchant timezone to which metrics apply. Segment. + * + * Condition on `date` is required in the `WHERE` clause. + *+ * + *
.google.type.Date date = 1;
+ */
+ com.google.type.DateOrBuilder getDateOrBuilder();
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return Whether the title field is set.
+ */
+ boolean hasTitle();
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return The title.
+ */
+ java.lang.String getTitle();
+
+ /**
+ *
+ *
+ * + * The product title. + *+ * + *
optional string title = 2;
+ *
+ * @return The bytes for title.
+ */
+ com.google.protobuf.ByteString getTitleBytes();
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return Whether the offerId field is set.
+ */
+ boolean hasOfferId();
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The offerId.
+ */
+ java.lang.String getOfferId();
+
+ /**
+ *
+ *
+ * + * The merchant-provided product id. + *+ * + *
optional string offer_id = 3;
+ *
+ * @return The bytes for offerId.
+ */
+ com.google.protobuf.ByteString getOfferIdBytes();
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @return Whether the distinctVideoCount field is set.
+ */
+ boolean hasDistinctVideoCount();
+
+ /**
+ *
+ *
+ * + * The number of distinct videos the product was shown on. + *+ * + *
optional int64 distinct_video_count = 4;
+ *
+ * @return The distinctVideoCount.
+ */
+ long getDistinctVideoCount();
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @return Whether the distinctCreatorCount field is set.
+ */
+ boolean hasDistinctCreatorCount();
+
+ /**
+ *
+ *
+ * + * The number of distinct creator channels the product was shown on. + *+ * + *
optional int64 distinct_creator_count = 5;
+ *
+ * @return The distinctCreatorCount.
+ */
+ long getDistinctCreatorCount();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return Whether the grossSales field is set.
+ */
+ boolean hasGrossSales();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ *
+ * @return The grossSales.
+ */
+ com.google.shopping.type.Price getGrossSales();
+
+ /**
+ *
+ *
+ * + * The gross sales amount, before refunds. + *+ * + *
optional .google.shopping.type.Price gross_sales = 6;
+ */
+ com.google.shopping.type.PriceOrBuilder getGrossSalesOrBuilder();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return Whether the commissions field is set.
+ */
+ boolean hasCommissions();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ *
+ * @return The commissions.
+ */
+ com.google.shopping.type.Price getCommissions();
+
+ /**
+ *
+ *
+ * + * The commissions amount (pending and paid). + *+ * + *
optional .google.shopping.type.Price commissions = 7;
+ */
+ com.google.shopping.type.PriceOrBuilder getCommissionsOrBuilder();
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return Whether the orders field is set.
+ */
+ boolean hasOrders();
+
+ /**
+ *
+ *
+ * + * The number of orders. + *+ * + *
optional int64 orders = 8;
+ *
+ * @return The orders.
+ */
+ long getOrders();
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return Whether the views field is set.
+ */
+ boolean hasViews();
+
+ /**
+ *
+ *
+ * + * The number of YouTube views. + *+ * + *
optional int64 views = 9;
+ *
+ * @return The views.
+ */
+ long getViews();
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return Whether the clicks field is set.
+ */
+ boolean hasClicks();
+
+ /**
+ *
+ *
+ * + * The number of product clicks. + *+ * + *
optional int64 clicks = 10;
+ *
+ * @return The clicks.
+ */
+ long getClicks();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return Whether the netSales field is set.
+ */
+ boolean hasNetSales();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ *
+ * @return The netSales.
+ */
+ com.google.shopping.type.Price getNetSales();
+
+ /**
+ *
+ *
+ * + * The net sales amount (includes both purchase and refunds). + *+ * + *
optional .google.shopping.type.Price net_sales = 11;
+ */
+ com.google.shopping.type.PriceOrBuilder getNetSalesOrBuilder();
+}
diff --git a/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/proto/google/shopping/merchant/reports/v1alpha/reports.proto b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/proto/google/shopping/merchant/reports/v1alpha/reports.proto
new file mode 100644
index 000000000000..f94fda1835df
--- /dev/null
+++ b/java-shopping-merchant-reports/proto-google-shopping-merchant-reports-v1alpha/src/main/proto/google/shopping/merchant/reports/v1alpha/reports.proto
@@ -0,0 +1,1398 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.shopping.merchant.reports.v1alpha;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/protobuf/timestamp.proto";
+import "google/shopping/type/types.proto";
+import "google/type/date.proto";
+
+option go_package = "cloud.google.com/go/shopping/merchant/reports/apiv1alpha/reportspb;reportspb";
+option java_multiple_files = true;
+option java_outer_classname = "ReportsProto";
+option java_package = "com.google.shopping.merchant.reports.v1alpha";
+
+// Service for retrieving reports and insights about your products, their
+// performance, and their competitive environment on Google.
+service ReportService {
+ option (google.api.default_host) = "merchantapi.googleapis.com";
+ option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
+
+ // Retrieves a report defined by a search query. The response might contain
+ // fewer rows than specified by `page_size`. Rely on `next_page_token` to
+ // determine if there are more rows to be requested.
+ rpc Search(SearchRequest) returns (SearchResponse) {
+ option (google.api.http) = {
+ post: "/reports/v1alpha/{parent=accounts/*}/reports:search"
+ body: "*"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+}
+
+// Request message for the `ReportService.Search` method.
+message SearchRequest {
+ // Required. Id of the account making the call. Must be a standalone account
+ // or an MCA subaccount. Format: accounts/{account}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Query that defines a report to be retrieved.
+ //
+ // For details on how to construct your query, see the Query Language
+ // guide. For the full list of available tables and fields, see the Available
+ // fields.
+ string query = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. Number of `ReportRows` to retrieve in a single page. Defaults to
+ // 1000. Values above 5000 are coerced to 5000.
+ int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Token of the page to retrieve. If not specified, the first page
+ // of results is returned. In order to request the next page of results, the
+ // value obtained from `next_page_token` in the previous response should be
+ // used.
+ string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for the `ReportService.Search` method.
+message SearchResponse {
+ // Rows that matched the search query.
+ repeated ReportRow results = 1;
+
+ // Token which can be sent as `page_token` to retrieve the next page. If
+ // omitted, there are no subsequent pages.
+ string next_page_token = 2;
+}
+
+// Result row returned from the search query.
+//
+// Only the message corresponding to the queried table is populated in the
+// response. Within the populated message, only the fields requested explicitly
+// in the query are populated.
+message ReportRow {
+ // Fields available for query in `product_performance_view` table.
+ ProductPerformanceView product_performance_view = 1;
+
+ // Fields available for query in `non_product_performance_view` table.
+ NonProductPerformanceView non_product_performance_view = 7;
+
+ // Fields available for query in `product_view` table.
+ ProductView product_view = 2;
+
+ // Fields available for query in `price_competitiveness_product_view` table.
+ PriceCompetitivenessProductView price_competitiveness_product_view = 3;
+
+ // Fields available for query in `price_insights_product_view` table.
+ PriceInsightsProductView price_insights_product_view = 4;
+
+ // Fields available for query in `best_sellers_product_cluster_view` table.
+ BestSellersProductClusterView best_sellers_product_cluster_view = 5;
+
+ // Fields available for query in `best_sellers_brand_view` table.
+ BestSellersBrandView best_sellers_brand_view = 6;
+
+ // Fields available for query in `competitive_visibility_competitor_view`
+ // table.
+ CompetitiveVisibilityCompetitorView competitive_visibility_competitor_view =
+ 8;
+
+ // Fields available for query in `competitive_visibility_top_merchant_view`
+ // table.
+ CompetitiveVisibilityTopMerchantView
+ competitive_visibility_top_merchant_view = 9;
+
+ // Fields available for query in `competitive_visibility_benchmark_view`
+ // table.
+ CompetitiveVisibilityBenchmarkView competitive_visibility_benchmark_view = 10;
+
+ // Fields available for query in `youtube_creator_performance_view` table.
+ YoutubeCreatorPerformanceView youtube_creator_performance_view = 11;
+
+ // Fields available for query in `youtube_content_performance_view` table.
+ YoutubeContentPerformanceView youtube_content_performance_view = 12;
+
+ // Fields available for query in `youtube_product_performance_view` table.
+ YoutubeProductPerformanceView youtube_product_performance_view = 13;
+}
+
+// Fields available for query in `product_performance_view` table.
+//
+// Product performance data for your account, including performance metrics (for
+// example, `clicks`) and dimensions according to which performance metrics are
+// segmented (for example, `offer_id`). Values of product dimensions, such as
+// `offer_id`, reflect the state of a product at the time of the impression.
+//
+// Segment fields cannot be selected in queries without also selecting at least
+// one metric field.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message ProductPerformanceView {
+ // Marketing method to which metrics apply. Segment.
+ optional MarketingMethod.MarketingMethodEnum marketing_method = 1;
+
+ // Date in the merchant timezone to which metrics apply. Segment.
+ //
+ // Condition on `date` is required in the `WHERE` clause.
+ google.type.Date date = 2;
+
+ // First day of the week (Monday) of the metrics date in the merchant
+ // timezone. Segment.
+ google.type.Date week = 3;
+
+ // Code of the country where the customer is located at the time of the event.
+ // Represented in the ISO 3166 format. Segment.
+ //
+ // If the customer country cannot be determined, a special 'ZZ' code is
+ // returned.
+ optional string customer_country_code = 4;
+
+ // Merchant-provided id of the product. Segment.
+ optional string offer_id = 5;
+
+ // Title of the product. Segment.
+ optional string title = 6;
+
+ // Brand of the product. Segment.
+ optional string brand = 7;
+
+ // [Product category (1st
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in Google's product taxonomy. Segment.
+ optional string category_l1 = 8;
+
+ // [Product category (2nd
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in Google's product taxonomy. Segment.
+ optional string category_l2 = 9;
+
+ // [Product category (3rd
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in Google's product taxonomy. Segment.
+ optional string category_l3 = 10;
+
+ // [Product category (4th
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in Google's product taxonomy. Segment.
+ optional string category_l4 = 11;
+
+ // [Product category (5th
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in Google's product taxonomy. Segment.
+ optional string category_l5 = 12;
+
+ // [Product type (1st
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in merchant's own product taxonomy. Segment.
+ optional string product_type_l1 = 13;
+
+ // [Product type (2nd
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in merchant's own product taxonomy. Segment.
+ optional string product_type_l2 = 14;
+
+ // [Product type (3rd
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in merchant's own product taxonomy. Segment.
+ optional string product_type_l3 = 15;
+
+ // [Product type (4th
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in merchant's own product taxonomy. Segment.
+ optional string product_type_l4 = 16;
+
+ // [Product type (5th
+ // level)](https://developers.google.com/shopping-content/guides/reports/segmentation#category_and_product_type)
+ // in merchant's own product taxonomy. Segment.
+ optional string product_type_l5 = 17;
+
+ // Custom label 0 for custom grouping of products. Segment.
+ optional string custom_label0 = 18;
+
+ // Custom label 1 for custom grouping of products. Segment.
+ optional string custom_label1 = 19;
+
+ // Custom label 2 for custom grouping of products. Segment.
+ optional string custom_label2 = 20;
+
+ // Custom label 3 for custom grouping of products. Segment.
+ optional string custom_label3 = 21;
+
+ // Custom label 4 for custom grouping of products. Segment.
+ optional string custom_label4 = 22;
+
+ // Number of clicks. Metric.
+ optional int64 clicks = 23;
+
+ // Number of times merchant's products are shown. Metric.
+ optional int64 impressions = 24;
+
+ // Click-through rate - the number of clicks merchant's products receive
+ // (clicks) divided by the number of times the products are shown
+ // (impressions). Metric.
+ optional double click_through_rate = 25;
+
+ // Number of conversions attributed to the product, reported on the conversion
+ // date. Depending on the attribution model, a conversion might be distributed
+ // across multiple clicks, where each click gets its own credit assigned. This
+ // metric is a sum of all such credits. Metric.
+ //
+ // Available only for the `FREE` traffic source.
+ optional double conversions = 26;
+
+ // Value of conversions attributed to the product, reported on the conversion
+ // date. Metric.
+ //
+ // Available only for the `FREE` traffic source.
+ google.shopping.type.Price conversion_value = 27;
+
+ // Number of conversions divided by the number of clicks, reported on the
+ // impression date. Metric.
+ //
+ // Available only for the `FREE` traffic source.
+ optional double conversion_rate = 28;
+}
+
+// Fields available for query in `product_view` table.
+//
+// Products in the current inventory. Products in this table are the same as in
+// Products sub-API but not all product attributes from Products sub-API are
+// available for query in this table. In contrast to Products sub-API, this
+// table allows to filter the returned list of products by product attributes.
+// To retrieve a single product by `id` or list all products, Products sub-API
+// should be used.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+//
+message ProductView {
+ // Item issue associated with the product.
+ message ItemIssue {
+ // Issue type.
+ message ItemIssueType {
+ // Error code of the issue, equivalent to the `code` of [Product
+ // issues](https://developers.google.com/shopping-content/guides/product-issues).
+ optional string code = 1;
+
+ // Canonical attribute name for attribute-specific issues.
+ optional string canonical_attribute = 2;
+ }
+
+ // How the issue affects the serving of the product.
+ message ItemIssueSeverity {
+ // Issue severity per reporting context.
+ message IssueSeverityPerReportingContext {
+ // Reporting context the issue applies to.
+ optional google.shopping.type.ReportingContext.ReportingContextEnum
+ reporting_context = 1;
+
+ // List of disapproved countries in the reporting context, represented
+ // in ISO 3166 format.
+ repeated string disapproved_countries = 2;
+
+ // List of demoted countries in the reporting context, represented in
+ // ISO 3166 format.
+ repeated string demoted_countries = 3;
+ }
+
+ // Issue severity aggregated for all reporting contexts.
+ enum AggregatedIssueSeverity {
+ // Not specified.
+ AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED = 0;
+
+ // Issue disapproves the product in at least one reporting context.
+ DISAPPROVED = 1;
+
+ // Issue demotes the product in all reporting contexts it affects.
+ DEMOTED = 2;
+
+ // Issue resolution is `PENDING_PROCESSING`.
+ PENDING = 3;
+ }
+
+ // Issue severity per reporting context.
+ repeated IssueSeverityPerReportingContext severity_per_reporting_context =
+ 1;
+
+ // Aggregated severity of the issue for all reporting contexts it affects.
+ //
+ // **This field can be used for filtering the results.**
+ optional AggregatedIssueSeverity aggregated_severity = 2;
+ }
+
+ // How to resolve the issue.
+ enum ItemIssueResolution {
+ // Not specified.
+ ITEM_ISSUE_RESOLUTION_UNSPECIFIED = 0;
+
+ // The merchant has to fix the issue.
+ MERCHANT_ACTION = 1;
+
+ // The issue will be resolved automatically (for example, image crawl) or
+ // through a Google review. No merchant action is required now. Resolution
+ // might lead to another issue (for example, if crawl fails).
+ PENDING_PROCESSING = 2;
+ }
+
+ // Item issue type.
+ ItemIssueType type = 1;
+
+ // Item issue severity.
+ ItemIssueSeverity severity = 2;
+
+ // Item issue resolution.
+ optional ItemIssueResolution resolution = 3;
+ }
+
+ // Status of the product aggregated for all reporting contexts.
+ //
+ // Here's an example of how the aggregated status is computed:
+ //
+ // Free listings | Shopping ads | Status
+ // --------------|--------------|------------------------------
+ // Approved | Approved | ELIGIBLE
+ // Approved | Pending | ELIGIBLE
+ // Approved | Disapproved | ELIGIBLE_LIMITED
+ // Pending | Pending | PENDING
+ // Disapproved | Disapproved | NOT_ELIGIBLE_OR_DISAPPROVED
+ //
+ //
+ enum AggregatedReportingContextStatus {
+ // Not specified.
+ AGGREGATED_REPORTING_CONTEXT_STATUS_UNSPECIFIED = 0;
+
+ // Product is not eligible or is disapproved for all reporting contexts.
+ NOT_ELIGIBLE_OR_DISAPPROVED = 1;
+
+ // Product's status is pending in all reporting contexts.
+ PENDING = 2;
+
+ // Product is eligible for some (but not all) reporting contexts.
+ ELIGIBLE_LIMITED = 3;
+
+ // Product is eligible for all reporting contexts.
+ ELIGIBLE = 4;
+ }
+
+ // A product's [click
+ // potential](https://support.google.com/merchants/answer/188488) estimates
+ // its performance potential compared to highest performing products of the
+ // merchant. Click potential of a product helps merchants to prioritize which
+ // products to fix and helps them understand how products are performing
+ // against their potential.
+ enum ClickPotential {
+ // Unknown predicted clicks impact.
+ CLICK_POTENTIAL_UNSPECIFIED = 0;
+
+ // Potential to receive a low number of clicks compared to the highest
+ // performing products of the merchant.
+ LOW = 1;
+
+ // Potential to receive a moderate number of clicks compared to the highest
+ // performing products of the merchant.
+ MEDIUM = 2;
+
+ // Potential to receive a similar number of clicks as the highest performing
+ // products of the merchant.
+ HIGH = 3;
+ }
+
+ // REST ID of the product, in the form of
+ // `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate
+ // on products take this as their `name` parameter.
+ //
+ // Required in the `SELECT` clause.
+ optional string id = 1;
+
+ // Channel of the product. Can be `ONLINE` or `LOCAL`.
+ optional google.shopping.type.Channel.ChannelEnum channel = 28;
+
+ // Language code of the product in BCP 47 format.
+ optional string language_code = 2;
+
+ // Feed label of the product.
+ optional string feed_label = 3;
+
+ // Merchant-provided id of the product.
+ optional string offer_id = 4;
+
+ // Title of the product.
+ optional string title = 5;
+
+ // Brand of the product.
+ optional string brand = 6;
+
+ // Product category (1st level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l1 = 7;
+
+ // Product category (2nd level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l2 = 8;
+
+ // Product category (3rd level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l3 = 9;
+
+ // Product category (4th level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l4 = 10;
+
+ // Product category (5th level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l5 = 11;
+
+ // Product type (1st level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l1 = 12;
+
+ // Product type (2nd level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l2 = 13;
+
+ // Product type (3rd level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l3 = 14;
+
+ // Product type (4th level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l4 = 15;
+
+ // Product type (5th level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l5 = 16;
+
+ // Product price. Absent if the information about the price of the product is
+ // not available.
+ google.shopping.type.Price price = 17;
+
+ // [Condition](https://support.google.com/merchants/answer/6324469) of the
+ // product.
+ optional string condition = 18;
+
+ // [Availability](https://support.google.com/merchants/answer/6324448) of the
+ // product.
+ optional string availability = 19;
+
+ // Normalized [shipping
+ // label](https://support.google.com/merchants/answer/6324504) specified in
+ // the data source.
+ optional string shipping_label = 20;
+
+ // List of Global Trade Item Numbers (GTINs) of the product.
+ repeated string gtin = 21;
+
+ // Item group id provided by the merchant for grouping variants together.
+ optional string item_group_id = 22;
+
+ // Link to the processed image of the product, hosted on the Google
+ // infrastructure.
+ optional string thumbnail_link = 23;
+
+ // The time the merchant created the product in timestamp seconds.
+ google.protobuf.Timestamp creation_time = 24;
+
+ // Expiration date for the product, specified on insertion.
+ google.type.Date expiration_date = 25;
+
+ // Aggregated status.
+ optional AggregatedReportingContextStatus
+ aggregated_reporting_context_status = 26;
+
+ // List of item issues for the product.
+ //
+ // **This field cannot be used for sorting the results.**
+ //
+ // **Only selected attributes of this field (for example,
+ // `item_issues.severity.aggregated_severity`) can be used for filtering the
+ // results.**
+ repeated ItemIssue item_issues = 27;
+
+ // Estimated performance potential compared to highest performing products of
+ // the merchant.
+ ClickPotential click_potential = 29;
+
+ // Rank of the product based on its click potential. A product with
+ // `click_potential_rank` 1 has the highest click potential among the
+ // merchant's products that fulfill the search query conditions.
+ optional int64 click_potential_rank = 30;
+}
+
+// Fields available for query in `price_competitiveness_product_view` table.
+//
+// [Price competitiveness](https://support.google.com/merchants/answer/9626903)
+// report.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message PriceCompetitivenessProductView {
+ // Country of the price benchmark. Represented in the ISO 3166 format.
+ //
+ // Required in the `SELECT` clause.
+ optional string report_country_code = 1;
+
+ // REST ID of the product, in the form of
+ // `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+ // `product_view` table.
+ //
+ // Required in the `SELECT` clause.
+ optional string id = 2;
+
+ // Merchant-provided id of the product.
+ optional string offer_id = 3;
+
+ // Title of the product.
+ optional string title = 4;
+
+ // Brand of the product.
+ optional string brand = 5;
+
+ // Product category (1st level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l1 = 6;
+
+ // Product category (2nd level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l2 = 7;
+
+ // Product category (3rd level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l3 = 8;
+
+ // Product category (4th level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l4 = 9;
+
+ // Product category (5th level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l5 = 10;
+
+ // Product type (1st level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l1 = 11;
+
+ // Product type (2nd level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l2 = 12;
+
+ // Product type (3rd level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l3 = 13;
+
+ // Product type (4th level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l4 = 14;
+
+ // Product type (5th level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l5 = 15;
+
+ // Current price of the product.
+ google.shopping.type.Price price = 16;
+
+ // Latest available price benchmark for the product's catalog in the benchmark
+ // country.
+ google.shopping.type.Price benchmark_price = 17;
+}
+
+// Fields available for query in `price_insights_product_view` table.
+//
+// [Price insights](https://support.google.com/merchants/answer/11916926)
+// report.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message PriceInsightsProductView {
+ // Predicted effectiveness bucket.
+ //
+ // Effectiveness indicates which products would benefit most from price
+ // changes. This rating takes into consideration the performance boost
+ // predicted by adjusting the sale price and the difference between your
+ // current price and the suggested price. Price suggestions with `HIGH`
+ // effectiveness are predicted to drive the largest increase in performance.
+ enum Effectiveness {
+ // Effectiveness is unknown.
+ EFFECTIVENESS_UNSPECIFIED = 0;
+
+ // Effectiveness is low.
+ LOW = 1;
+
+ // Effectiveness is medium.
+ MEDIUM = 2;
+
+ // Effectiveness is high.
+ HIGH = 3;
+ }
+
+ // REST ID of the product, in the form of
+ // `channel~languageCode~feedLabel~offerId`. Can be used to join data with the
+ // `product_view` table.
+ //
+ // Required in the `SELECT` clause.
+ optional string id = 1;
+
+ // Merchant-provided id of the product.
+ optional string offer_id = 2;
+
+ // Title of the product.
+ optional string title = 3;
+
+ // Brand of the product.
+ optional string brand = 4;
+
+ // Product category (1st level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l1 = 5;
+
+ // Product category (2nd level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l2 = 6;
+
+ // Product category (3rd level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l3 = 7;
+
+ // Product category (4th level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l4 = 8;
+
+ // Product category (5th level) in [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l5 = 9;
+
+ // Product type (1st level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l1 = 10;
+
+ // Product type (2nd level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l2 = 11;
+
+ // Product type (3rd level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l3 = 12;
+
+ // Product type (4th level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l4 = 13;
+
+ // Product type (5th level) in merchant's own [product
+ // taxonomy](https://support.google.com/merchants/answer/6324406).
+ optional string product_type_l5 = 14;
+
+ // Current price of the product.
+ google.shopping.type.Price price = 15;
+
+ // Latest suggested price for the product.
+ google.shopping.type.Price suggested_price = 16;
+
+ // Predicted change in impressions as a fraction after introducing the
+ // suggested price compared to current active price. For example, 0.05 is a 5%
+ // predicted increase in impressions.
+ optional double predicted_impressions_change_fraction = 17;
+
+ // Predicted change in clicks as a fraction after introducing the
+ // suggested price compared to current active price. For example, 0.05 is a 5%
+ // predicted increase in clicks.
+ optional double predicted_clicks_change_fraction = 18;
+
+ // Predicted change in conversions as a fraction after introducing the
+ // suggested price compared to current active price. For example, 0.05 is a 5%
+ // predicted increase in conversions).
+ optional double predicted_conversions_change_fraction = 19;
+
+ // The predicted effectiveness of applying the price suggestion, bucketed.
+ Effectiveness effectiveness = 22;
+}
+
+// Fields available for query in `best_sellers_product_cluster_view` table.
+//
+// [Best sellers](https://support.google.com/merchants/answer/9488679) report
+// with top product clusters. A product cluster is a grouping for different
+// offers and variants that represent the same product, for example, Google
+// Pixel 7.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message BestSellersProductClusterView {
+ // Status of the product cluster or brand in your inventory.
+ enum InventoryStatus {
+ // Not specified.
+ INVENTORY_STATUS_UNSPECIFIED = 0;
+
+ // You have a product for this product cluster or brand in stock.
+ IN_STOCK = 1;
+
+ // You have a product for this product cluster or brand in inventory but it
+ // is currently out of stock.
+ OUT_OF_STOCK = 2;
+
+ // You do not have a product for this product cluster or brand in inventory.
+ NOT_IN_INVENTORY = 3;
+ }
+
+ // Report date. The value of this field can only be one of the following:
+ //
+ // * The first day of the week (Monday) for weekly reports,
+ // * The first day of the month for monthly reports.
+ //
+ // Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+ // not specified in the query, the latest available weekly or monthly report
+ // is returned.
+ google.type.Date report_date = 1;
+
+ // Granularity of the report. The ranking can be done over a week or a month
+ // timeframe.
+ //
+ // Required in the `SELECT` clause. Condition on `report_granularity` is
+ // required in the `WHERE` clause.
+ optional ReportGranularity.ReportGranularityEnum report_granularity = 2;
+
+ // Country where the ranking is calculated. Represented in the ISO 3166
+ // format.
+ //
+ // Required in the `SELECT` clause. Condition on `report_country_code` is
+ // required in the `WHERE` clause.
+ optional string report_country_code = 3;
+
+ // Google product category ID to calculate the ranking for, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ //
+ // Required in the `SELECT` clause. If a `WHERE` condition on
+ // `report_category_id` is not specified in the query, rankings for all
+ // top-level categories are returned.
+ optional int64 report_category_id = 4;
+
+ // Title of the product cluster.
+ optional string title = 6;
+
+ // Brand of the product cluster.
+ optional string brand = 7;
+
+ // Product category (1st level) of the product cluster, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l1 = 8;
+
+ // Product category (2nd level) of the product cluster, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l2 = 9;
+
+ // Product category (3rd level) of the product cluster, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l3 = 10;
+
+ // Product category (4th level) of the product cluster, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l4 = 11;
+
+ // Product category (5th level) of the product cluster, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ optional string category_l5 = 12;
+
+ // GTINs of example variants of the product cluster.
+ repeated string variant_gtins = 13;
+
+ // Whether the product cluster is `IN_STOCK` in your product data source in at
+ // least one of the countries, `OUT_OF_STOCK` in your product data source in
+ // all countries, or `NOT_IN_INVENTORY` at all.
+ //
+ // The field doesn't take the Best sellers report country filter into account.
+ optional InventoryStatus inventory_status = 14;
+
+ // Whether there is at least one product of the brand currently `IN_STOCK` in
+ // your product data source in at least one of the countries, all products are
+ // `OUT_OF_STOCK` in your product data source in all countries, or
+ // `NOT_IN_INVENTORY`.
+ //
+ // The field doesn't take the Best sellers report country filter into account.
+ optional InventoryStatus brand_inventory_status = 15;
+
+ // Popularity of the product cluster on Ads and organic surfaces, in the
+ // selected category and country, based on the estimated number of units sold.
+ optional int64 rank = 16;
+
+ // Popularity rank in the previous week or month.
+ optional int64 previous_rank = 17;
+
+ // Estimated demand in relation to the product cluster with the highest
+ // popularity rank in the same category and country.
+ optional RelativeDemand.RelativeDemandEnum relative_demand = 18;
+
+ // Estimated demand in relation to the product cluster with the highest
+ // popularity rank in the same category and country in the previous week or
+ // month.
+ optional RelativeDemand.RelativeDemandEnum previous_relative_demand = 19;
+
+ // Change in the estimated demand. Whether it rose, sank or remained flat.
+ optional RelativeDemandChangeType.RelativeDemandChangeTypeEnum
+ relative_demand_change = 20;
+}
+
+// Fields available for query in `best_sellers_brand_view` table.
+//
+// [Best sellers](https://support.google.com/merchants/answer/9488679) report
+// with top brands.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message BestSellersBrandView {
+ // Report date. The value of this field can only be one of the following:
+ //
+ // * The first day of the week (Monday) for weekly reports,
+ // * The first day of the month for monthly reports.
+ //
+ // Required in the `SELECT` clause. If a `WHERE` condition on `report_date` is
+ // not specified in the query, the latest available weekly or monthly report
+ // is returned.
+ google.type.Date report_date = 1;
+
+ // Granularity of the report. The ranking can be done over a week or a month
+ // timeframe.
+ //
+ // Required in the `SELECT` clause. Condition on `report_granularity` is
+ // required in the `WHERE` clause.
+ optional ReportGranularity.ReportGranularityEnum report_granularity = 2;
+
+ // Country where the ranking is calculated. Represented in the ISO 3166
+ // format.
+ //
+ // Required in the `SELECT` clause. Condition on `report_country_code` is
+ // required in the `WHERE` clause.
+ optional string report_country_code = 3;
+
+ // Google product category ID to calculate the ranking for, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ //
+ // Required in the `SELECT` clause. If a `WHERE` condition on
+ // `report_category_id` is not specified in the query, rankings for all
+ // top-level categories are returned.
+ optional int64 report_category_id = 4;
+
+ // Name of the brand.
+ optional string brand = 6;
+
+ // Popularity of the brand on Ads and organic surfaces, in the selected
+ // category and country, based on the estimated number of units sold.
+ optional int64 rank = 7;
+
+ // Popularity rank in the previous week or month.
+ optional int64 previous_rank = 8;
+
+ // Estimated demand in relation to the brand with the highest popularity rank
+ // in the same category and country.
+ optional RelativeDemand.RelativeDemandEnum relative_demand = 9;
+
+ // Estimated demand in relation to the brand with the highest popularity rank
+ // in the same category and country in the previous week or month.
+ optional RelativeDemand.RelativeDemandEnum previous_relative_demand = 10;
+
+ // Change in the estimated demand. Whether it rose, sank or remained flat.
+ optional RelativeDemandChangeType.RelativeDemandChangeTypeEnum
+ relative_demand_change = 11;
+}
+
+// Fields available for query in `non_product_performance_view` table.
+//
+// Performance data on images and online store links leading to your non-product
+// pages. This includes performance metrics (for example, `clicks`)
+// and dimensions according to which performance metrics are segmented (for
+// example, `date`).
+//
+// Segment fields cannot be selected in queries without also selecting at least
+// one metric field.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message NonProductPerformanceView {
+ // Date in the merchant timezone to which metrics apply. Segment.
+ //
+ // Condition on `date` is required in the `WHERE` clause.
+ google.type.Date date = 1;
+
+ // First day of the week (Monday) of the metrics date in the merchant
+ // timezone. Segment.
+ google.type.Date week = 2;
+
+ // Number of clicks on images and online store links leading to your
+ // non-product pages. Metric.
+ optional int64 clicks = 3;
+
+ // Number of times images and online store links leading to your non-product
+ // pages were shown. Metric.
+ optional int64 impressions = 4;
+
+ // Click-through rate - the number of clicks (`clicks`) divided by the number
+ // of impressions (`impressions`) of images and online store links leading to
+ // your non-product pages. Metric.
+ optional double click_through_rate = 5;
+}
+
+// Fields available for query in `competitive_visibility_competitor_view` table.
+//
+// [Competitive
+// visibility](https://support.google.com/merchants/answer/11366442) report with
+// businesses with similar visibility.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message CompetitiveVisibilityCompetitorView {
+ // Date of this row.
+ //
+ // A condition on `date` is required in the `WHERE` clause.
+ google.type.Date date = 1;
+
+ // Domain of your competitor or your domain, if 'is_your_domain' is true.
+ //
+ // Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+ // clause.
+ optional string domain = 2;
+
+ // True if this row contains data for your domain.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional bool is_your_domain = 3;
+
+ // Country where impressions appeared.
+ //
+ // Required in the `SELECT` clause. A condition on `report_country_code` is
+ // required in the `WHERE` clause.
+ optional string report_country_code = 4;
+
+ // Google product category ID to calculate the report for, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ //
+ // Required in the `SELECT` clause. A condition on `report_category_id` is
+ // required in the `WHERE` clause.
+ optional int64 report_category_id = 5;
+
+ // Traffic source of impressions.
+ //
+ // Required in the `SELECT` clause.
+ optional TrafficSource.TrafficSourceEnum traffic_source = 6;
+
+ // Position of the domain in the similar businesses ranking for the selected
+ // keys (`date`, `report_category_id`, `report_country_code`,
+ // `traffic_source`) based on impressions. 1 is the highest.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional int64 rank = 7;
+
+ // [Ads / organic ratio]
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+ // shows how often the domain receives impressions from Shopping ads compared
+ // to organic traffic. The number is rounded and bucketed.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double ads_organic_ratio = 8;
+
+ // [Page overlap rate]
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+ // shows how frequently competing retailers’ offers are shown together with
+ // your offers on the same page.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double page_overlap_rate = 9;
+
+ // [Higher position rate]
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+ // shows how often a competitor’s offer got placed in a higher position on the
+ // page than your offer.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double higher_position_rate = 10;
+
+ // [Relative visibility]
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Crelative-visibility)
+ // shows how often your competitors’ offers are shown compared to your offers.
+ // In other words, this is the number of displayed impressions of a competitor
+ // retailer divided by the number of your displayed impressions during a
+ // selected time range for a selected product category and country.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double relative_visibility = 11;
+}
+
+// Fields available for query in `competitive_visibility_top_merchant_view`
+// table.
+//
+// [Competitive
+// visibility](https://support.google.com/merchants/answer/11366442) report with
+// business with highest visibility.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message CompetitiveVisibilityTopMerchantView {
+ // Date of this row.
+ //
+ // Cannot be selected in the `SELECT` clause. A condition on `date` is
+ // required in the `WHERE` clause.
+ google.type.Date date = 1;
+
+ // Domain of your competitor or your domain, if 'is_your_domain' is true.
+ //
+ // Required in the `SELECT` clause. Cannot be filtered on in the 'WHERE'
+ // clause.
+ optional string domain = 2;
+
+ // True if this row contains data for your domain.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional bool is_your_domain = 3;
+
+ // Country where impressions appeared.
+ //
+ // Required in the `SELECT` clause. A condition on `report_country_code` is
+ // required in the `WHERE` clause.
+ optional string report_country_code = 4;
+
+ // Google product category ID to calculate the report for, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ //
+ // Required in the `SELECT` clause. A condition on `report_category_id` is
+ // required in the `WHERE` clause.
+ optional int64 report_category_id = 5;
+
+ // Traffic source of impressions.
+ //
+ // Required in the `SELECT` clause.
+ optional TrafficSource.TrafficSourceEnum traffic_source = 6;
+
+ // Position of the domain in the top merchants ranking for the selected keys
+ // (`date`, `report_category_id`, `report_country_code`, `traffic_source`)
+ // based on impressions. 1 is the highest.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional int64 rank = 7;
+
+ // [Ads / organic ratio]
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cads-free-ratio)
+ // shows how often the domain receives impressions from Shopping ads compared
+ // to organic traffic. The number is rounded and bucketed.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double ads_organic_ratio = 8;
+
+ // [Page overlap rate]
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Cpage-overlap-rate)
+ // shows how frequently competing retailers’ offers are shown together with
+ // your offers on the same page.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double page_overlap_rate = 9;
+
+ // [Higher position rate]
+ // (https://support.google.com/merchants/answer/11366442#zippy=%2Chigher-position-rate)
+ // shows how often a competitor’s offer got placed in a higher position on the
+ // page than your offer.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double higher_position_rate = 10;
+}
+
+// Fields available for query in `competitive_visibility_benchmark_view` table.
+//
+// [Competitive
+// visibility](https://support.google.com/merchants/answer/11366442) report with
+// the category benchmark.
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message CompetitiveVisibilityBenchmarkView {
+ // Date of this row.
+ //
+ // Required in the `SELECT` clause. A condition on `date` is required in the
+ // `WHERE` clause.
+ google.type.Date date = 1;
+
+ // Country where impressions appeared.
+ //
+ // Required in the `SELECT` clause. A condition on `report_country_code` is
+ // required in the `WHERE` clause.
+ optional string report_country_code = 2;
+
+ // Google product category ID to calculate the report for, represented in
+ // [Google's product
+ // taxonomy](https://support.google.com/merchants/answer/6324436).
+ //
+ // Required in the `SELECT` clause. A condition on `report_category_id` is
+ // required in the `WHERE` clause.
+ optional int64 report_category_id = 3;
+
+ // Traffic source of impressions.
+ //
+ // Required in the `SELECT` clause.
+ optional TrafficSource.TrafficSourceEnum traffic_source = 4;
+
+ // Change in visibility based on impressions for your domain with respect to
+ // the start of the selected time range (or first day with non-zero
+ // impressions).
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double your_domain_visibility_trend = 5;
+
+ // Change in visibility based on impressions with respect to the start of the
+ // selected time range (or first day with non-zero impressions) for a
+ // combined set of merchants with highest visibility approximating the
+ // market.
+ //
+ // Cannot be filtered on in the 'WHERE' clause.
+ optional double category_benchmark_visibility_trend = 6;
+}
+
+// Marketing method used to promote your products on Google (organic versus
+// ads).
+message MarketingMethod {
+ // Marketing method values.
+ enum MarketingMethodEnum {
+ // Not specified.
+ MARKETING_METHOD_ENUM_UNSPECIFIED = 0;
+
+ // Organic marketing.
+ ORGANIC = 1;
+
+ // Ads-based marketing.
+ ADS = 2;
+ }
+}
+
+// Granularity of the Best sellers report. Best sellers reports are computed
+// over a week and a month timeframe.
+message ReportGranularity {
+ // Report granularity values.
+ enum ReportGranularityEnum {
+ // Not specified.
+ REPORT_GRANULARITY_ENUM_UNSPECIFIED = 0;
+
+ // Report is computed over a week timeframe.
+ WEEKLY = 1;
+
+ // Report is computed over a month timeframe.
+ MONTHLY = 2;
+ }
+}
+
+// Relative demand of a product cluster or brand in the Best sellers report.
+message RelativeDemand {
+ // Relative demand values.
+ enum RelativeDemandEnum {
+ // Not specified.
+ RELATIVE_DEMAND_ENUM_UNSPECIFIED = 0;
+
+ // Demand is 0-5% of the demand of the highest ranked product cluster or
+ // brand.
+ VERY_LOW = 10;
+
+ // Demand is 6-10% of the demand of the highest ranked product cluster or
+ // brand.
+ LOW = 20;
+
+ // Demand is 11-20% of the demand of the highest ranked product cluster or
+ // brand.
+ MEDIUM = 30;
+
+ // Demand is 21-50% of the demand of the highest ranked product cluster or
+ // brand.
+ HIGH = 40;
+
+ // Demand is 51-100% of the demand of the highest ranked product cluster or
+ // brand.
+ VERY_HIGH = 50;
+ }
+}
+
+// Relative demand of a product cluster or brand in the Best sellers report
+// compared to the previous time period.
+message RelativeDemandChangeType {
+ // Relative demand change type values.
+ enum RelativeDemandChangeTypeEnum {
+ // Not specified.
+ RELATIVE_DEMAND_CHANGE_TYPE_ENUM_UNSPECIFIED = 0;
+
+ // Relative demand is lower than the previous time period.
+ SINKER = 1;
+
+ // Relative demand is equal to the previous time period.
+ FLAT = 2;
+
+ // Relative demand is higher than the previous time period.
+ RISER = 3;
+ }
+}
+
+// Traffic source of impressions in the Competitive visibility report.
+message TrafficSource {
+ // Traffic source values.
+ enum TrafficSourceEnum {
+ // Not specified.
+ TRAFFIC_SOURCE_ENUM_UNSPECIFIED = 0;
+
+ // Organic traffic.
+ ORGANIC = 1;
+
+ // Traffic from ads.
+ ADS = 2;
+
+ // Organic and ads traffic.
+ ALL = 3;
+ }
+}
+
+// Fields available for query in `youtube_creator_performance_view` table.
+//
+// [YouTube creator performance
+// data](https://support.google.com/merchants/answer/14947975) for your account.
+// This data is only available if an account is enrolled in the [YouTube
+// Shopping Affiliate
+// program](https://support.google.com/merchants/answer/14815513?hl=en).
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message YoutubeCreatorPerformanceView {
+ // Date in the merchant timezone to which metrics apply. Segment.
+ //
+ // Condition on `date` is required in the `WHERE` clause.
+ google.type.Date date = 1;
+
+ // The title of the creator channel.
+ optional string title = 2;
+
+ // The id for the creator channel.
+ optional string channel_id = 3;
+
+ // The gross sales amount, before refunds.
+ optional google.shopping.type.Price gross_sales = 4;
+
+ // The commissions amount (pending and paid).
+ optional google.shopping.type.Price commissions = 5;
+
+ // The number of orders.
+ optional int64 orders = 6;
+
+ // The number of YouTube views.
+ optional int64 views = 7;
+
+ // The number of product clicks.
+ optional int64 clicks = 8;
+
+ // The net sales amount (includes both purchase and refunds).
+ optional google.shopping.type.Price net_sales = 9;
+}
+
+// Fields available for query in `youtube_content_performance_view` table.
+//
+// [YouTube content performance
+// data](https://support.google.com/merchants/answer/14947975) for your account.
+// This data is only available if an account is enrolled in the [YouTube
+// Shopping Affiliate
+// program](https://support.google.com/merchants/answer/14815513?hl=en).
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message YoutubeContentPerformanceView {
+ // Date in the merchant timezone to which metrics apply. Segment.
+ //
+ // Condition on `date` is required in the `WHERE` clause.
+ google.type.Date date = 1;
+
+ // The video title.
+ optional string title = 2;
+
+ // The video id.
+ optional string video_id = 3;
+
+ // The channel title.
+ optional string channel_title = 4;
+
+ // The channel id.
+ optional string channel_id = 5;
+
+ // The gross sales amount, before refunds.
+ optional google.shopping.type.Price gross_sales = 6;
+
+ // The commissions amount (pending and paid).
+ optional google.shopping.type.Price commissions = 7;
+
+ // The number of orders.
+ optional int64 orders = 8;
+
+ // The number of YouTube views.
+ optional int64 views = 9;
+
+ // The number of product clicks.
+ optional int64 clicks = 10;
+
+ // The net sales amount (includes both purchase and refunds).
+ optional google.shopping.type.Price net_sales = 11;
+}
+
+// Fields available for query in `youtube_product_performance_view` table.
+//
+// [YouTube product performance
+// data](https://support.google.com/merchants/answer/14947975) for your account.
+// This data is only available if an account is enrolled in the [YouTube
+// Shopping Affiliate
+// program](https://support.google.com/merchants/answer/14815513?hl=en).
+//
+// Values are only set for fields requested explicitly in the request's search
+// query.
+message YoutubeProductPerformanceView {
+ // Date in the merchant timezone to which metrics apply. Segment.
+ //
+ // Condition on `date` is required in the `WHERE` clause.
+ google.type.Date date = 1;
+
+ // The product title.
+ optional string title = 2;
+
+ // The merchant-provided product id.
+ optional string offer_id = 3;
+
+ // The number of distinct videos the product was shown on.
+ optional int64 distinct_video_count = 4;
+
+ // The number of distinct creator channels the product was shown on.
+ optional int64 distinct_creator_count = 5;
+
+ // The gross sales amount, before refunds.
+ optional google.shopping.type.Price gross_sales = 6;
+
+ // The commissions amount (pending and paid).
+ optional google.shopping.type.Price commissions = 7;
+
+ // The number of orders.
+ optional int64 orders = 8;
+
+ // The number of YouTube views.
+ optional int64 views = 9;
+
+ // The number of product clicks.
+ optional int64 clicks = 10;
+
+ // The net sales amount (includes both purchase and refunds).
+ optional google.shopping.type.Price net_sales = 11;
+}
diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetCredentialsProvider.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetCredentialsProvider.java
new file mode 100644
index 000000000000..e86d38fc794d
--- /dev/null
+++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetCredentialsProvider.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.shopping.merchant.reports.v1alpha.samples;
+
+// [START merchantapi_v1alpha_generated_ReportService_Create_SetCredentialsProvider_sync]
+import com.google.api.gax.core.FixedCredentialsProvider;
+import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient;
+import com.google.shopping.merchant.reports.v1alpha.ReportServiceSettings;
+import com.google.shopping.merchant.reports.v1alpha.myCredentials;
+
+public class SyncCreateSetCredentialsProvider {
+
+ public static void main(String[] args) throws Exception {
+ syncCreateSetCredentialsProvider();
+ }
+
+ public static void syncCreateSetCredentialsProvider() throws Exception {
+ // This snippet has been automatically generated and should be regarded as a code template only.
+ // It will require modifications to work:
+ // - It may require correct/in-range values for request initialization.
+ // - It may require specifying regional endpoints when creating the service client as shown in
+ // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ ReportServiceSettings reportServiceSettings =
+ ReportServiceSettings.newBuilder()
+ .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ .build();
+ ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ }
+}
+// [END merchantapi_v1alpha_generated_ReportService_Create_SetCredentialsProvider_sync]
diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetEndpoint.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetEndpoint.java
new file mode 100644
index 000000000000..36044ee3cab6
--- /dev/null
+++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateSetEndpoint.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.shopping.merchant.reports.v1alpha.samples;
+
+// [START merchantapi_v1alpha_generated_ReportService_Create_SetEndpoint_sync]
+import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient;
+import com.google.shopping.merchant.reports.v1alpha.ReportServiceSettings;
+import com.google.shopping.merchant.reports.v1alpha.myEndpoint;
+
+public class SyncCreateSetEndpoint {
+
+ public static void main(String[] args) throws Exception {
+ syncCreateSetEndpoint();
+ }
+
+ public static void syncCreateSetEndpoint() throws Exception {
+ // This snippet has been automatically generated and should be regarded as a code template only.
+ // It will require modifications to work:
+ // - It may require correct/in-range values for request initialization.
+ // - It may require specifying regional endpoints when creating the service client as shown in
+ // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ ReportServiceSettings reportServiceSettings =
+ ReportServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
+ ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ }
+}
+// [END merchantapi_v1alpha_generated_ReportService_Create_SetEndpoint_sync]
diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateUseHttpJsonTransport.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateUseHttpJsonTransport.java
new file mode 100644
index 000000000000..036ed3d61230
--- /dev/null
+++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/create/SyncCreateUseHttpJsonTransport.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.shopping.merchant.reports.v1alpha.samples;
+
+// [START merchantapi_v1alpha_generated_ReportService_Create_UseHttpJsonTransport_sync]
+import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient;
+import com.google.shopping.merchant.reports.v1alpha.ReportServiceSettings;
+
+public class SyncCreateUseHttpJsonTransport {
+
+ public static void main(String[] args) throws Exception {
+ syncCreateUseHttpJsonTransport();
+ }
+
+ public static void syncCreateUseHttpJsonTransport() throws Exception {
+ // This snippet has been automatically generated and should be regarded as a code template only.
+ // It will require modifications to work:
+ // - It may require correct/in-range values for request initialization.
+ // - It may require specifying regional endpoints when creating the service client as shown in
+ // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ ReportServiceSettings reportServiceSettings =
+ ReportServiceSettings.newHttpJsonBuilder().build();
+ ReportServiceClient reportServiceClient = ReportServiceClient.create(reportServiceSettings);
+ }
+}
+// [END merchantapi_v1alpha_generated_ReportService_Create_UseHttpJsonTransport_sync]
diff --git a/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearch.java b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearch.java
new file mode 100644
index 000000000000..228b1fcda04b
--- /dev/null
+++ b/java-shopping-merchant-reports/samples/snippets/generated/com/google/shopping/merchant/reports/v1alpha/reportservice/search/AsyncSearch.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.shopping.merchant.reports.v1alpha.samples;
+
+// [START merchantapi_v1alpha_generated_ReportService_Search_async]
+import com.google.api.core.ApiFuture;
+import com.google.shopping.merchant.reports.v1alpha.ReportRow;
+import com.google.shopping.merchant.reports.v1alpha.ReportServiceClient;
+import com.google.shopping.merchant.reports.v1alpha.SearchRequest;
+
+public class AsyncSearch {
+
+ public static void main(String[] args) throws Exception {
+ asyncSearch();
+ }
+
+ public static void asyncSearch() throws Exception {
+ // This snippet has been automatically generated and should be regarded as a code template only.
+ // It will require modifications to work:
+ // - It may require correct/in-range values for request initialization.
+ // - It may require specifying regional endpoints when creating the service client as shown in
+ // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
+ SearchRequest request =
+ SearchRequest.newBuilder()
+ .setParent("parent-995424086")
+ .setQuery("query107944136")
+ .setPageSize(883849137)
+ .setPageToken("pageToken873572522")
+ .build();
+ ApiFuture