All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.ads.googleads.v10.common.Metrics Maven / Gradle / Ivy

The newest version!
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/ads/googleads/v10/common/metrics.proto

package com.google.ads.googleads.v10.common;

/**
 * 
 * Metrics data.
 * 
* * Protobuf type {@code google.ads.googleads.v10.common.Metrics} */ public final class Metrics extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:google.ads.googleads.v10.common.Metrics) MetricsOrBuilder { private static final long serialVersionUID = 0L; // Use Metrics.newBuilder() to construct. private Metrics(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Metrics() { conversionLastReceivedRequestDateTime_ = ""; conversionLastConversionDate_ = ""; historicalCreativeQualityScore_ = 0; historicalLandingPageQualityScore_ = 0; historicalSearchPredictedCtr_ = 0; interactionEventTypes_ = java.util.Collections.emptyList(); optimizationScoreUrl_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Metrics(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.ads.googleads.v10.common.MetricsProto.internal_static_google_ads_googleads_v10_common_Metrics_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.google.ads.googleads.v10.common.MetricsProto.internal_static_google_ads_googleads_v10_common_Metrics_fieldAccessorTable .ensureFieldAccessorsInitialized( com.google.ads.googleads.v10.common.Metrics.class, com.google.ads.googleads.v10.common.Metrics.Builder.class); } private int bitField0_; private int bitField1_; private int bitField2_; private int bitField3_; public static final int ABSOLUTE_TOP_IMPRESSION_PERCENTAGE_FIELD_NUMBER = 183; private double absoluteTopImpressionPercentage_; /** *
   * The percent of your ad impressions that are shown as the very first ad
   * above the organic search results.
   * 
* * optional double absolute_top_impression_percentage = 183; * @return Whether the absoluteTopImpressionPercentage field is set. */ @java.lang.Override public boolean hasAbsoluteTopImpressionPercentage() { return ((bitField0_ & 0x00000001) != 0); } /** *
   * The percent of your ad impressions that are shown as the very first ad
   * above the organic search results.
   * 
* * optional double absolute_top_impression_percentage = 183; * @return The absoluteTopImpressionPercentage. */ @java.lang.Override public double getAbsoluteTopImpressionPercentage() { return absoluteTopImpressionPercentage_; } public static final int ACTIVE_VIEW_CPM_FIELD_NUMBER = 184; private double activeViewCpm_; /** *
   * Average cost of viewable impressions (`active_view_impressions`).
   * 
* * optional double active_view_cpm = 184; * @return Whether the activeViewCpm field is set. */ @java.lang.Override public boolean hasActiveViewCpm() { return ((bitField0_ & 0x00000002) != 0); } /** *
   * Average cost of viewable impressions (`active_view_impressions`).
   * 
* * optional double active_view_cpm = 184; * @return The activeViewCpm. */ @java.lang.Override public double getActiveViewCpm() { return activeViewCpm_; } public static final int ACTIVE_VIEW_CTR_FIELD_NUMBER = 185; private double activeViewCtr_; /** *
   * Active view measurable clicks divided by active view viewable impressions.
   * This metric is reported only for display network.
   * 
* * optional double active_view_ctr = 185; * @return Whether the activeViewCtr field is set. */ @java.lang.Override public boolean hasActiveViewCtr() { return ((bitField0_ & 0x00000004) != 0); } /** *
   * Active view measurable clicks divided by active view viewable impressions.
   * This metric is reported only for display network.
   * 
* * optional double active_view_ctr = 185; * @return The activeViewCtr. */ @java.lang.Override public double getActiveViewCtr() { return activeViewCtr_; } public static final int ACTIVE_VIEW_IMPRESSIONS_FIELD_NUMBER = 186; private long activeViewImpressions_; /** *
   * A measurement of how often your ad has become viewable on a Display
   * Network site.
   * 
* * optional int64 active_view_impressions = 186; * @return Whether the activeViewImpressions field is set. */ @java.lang.Override public boolean hasActiveViewImpressions() { return ((bitField0_ & 0x00000008) != 0); } /** *
   * A measurement of how often your ad has become viewable on a Display
   * Network site.
   * 
* * optional int64 active_view_impressions = 186; * @return The activeViewImpressions. */ @java.lang.Override public long getActiveViewImpressions() { return activeViewImpressions_; } public static final int ACTIVE_VIEW_MEASURABILITY_FIELD_NUMBER = 187; private double activeViewMeasurability_; /** *
   * The ratio of impressions that could be measured by Active View over the
   * number of served impressions.
   * 
* * optional double active_view_measurability = 187; * @return Whether the activeViewMeasurability field is set. */ @java.lang.Override public boolean hasActiveViewMeasurability() { return ((bitField0_ & 0x00000010) != 0); } /** *
   * The ratio of impressions that could be measured by Active View over the
   * number of served impressions.
   * 
* * optional double active_view_measurability = 187; * @return The activeViewMeasurability. */ @java.lang.Override public double getActiveViewMeasurability() { return activeViewMeasurability_; } public static final int ACTIVE_VIEW_MEASURABLE_COST_MICROS_FIELD_NUMBER = 188; private long activeViewMeasurableCostMicros_; /** *
   * The cost of the impressions you received that were measurable by Active
   * View.
   * 
* * optional int64 active_view_measurable_cost_micros = 188; * @return Whether the activeViewMeasurableCostMicros field is set. */ @java.lang.Override public boolean hasActiveViewMeasurableCostMicros() { return ((bitField0_ & 0x00000020) != 0); } /** *
   * The cost of the impressions you received that were measurable by Active
   * View.
   * 
* * optional int64 active_view_measurable_cost_micros = 188; * @return The activeViewMeasurableCostMicros. */ @java.lang.Override public long getActiveViewMeasurableCostMicros() { return activeViewMeasurableCostMicros_; } public static final int ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_FIELD_NUMBER = 189; private long activeViewMeasurableImpressions_; /** *
   * The number of times your ads are appearing on placements in positions
   * where they can be seen.
   * 
* * optional int64 active_view_measurable_impressions = 189; * @return Whether the activeViewMeasurableImpressions field is set. */ @java.lang.Override public boolean hasActiveViewMeasurableImpressions() { return ((bitField0_ & 0x00000040) != 0); } /** *
   * The number of times your ads are appearing on placements in positions
   * where they can be seen.
   * 
* * optional int64 active_view_measurable_impressions = 189; * @return The activeViewMeasurableImpressions. */ @java.lang.Override public long getActiveViewMeasurableImpressions() { return activeViewMeasurableImpressions_; } public static final int ACTIVE_VIEW_VIEWABILITY_FIELD_NUMBER = 190; private double activeViewViewability_; /** *
   * The percentage of time when your ad appeared on an Active View enabled site
   * (measurable impressions) and was viewable (viewable impressions).
   * 
* * optional double active_view_viewability = 190; * @return Whether the activeViewViewability field is set. */ @java.lang.Override public boolean hasActiveViewViewability() { return ((bitField0_ & 0x00000080) != 0); } /** *
   * The percentage of time when your ad appeared on an Active View enabled site
   * (measurable impressions) and was viewable (viewable impressions).
   * 
* * optional double active_view_viewability = 190; * @return The activeViewViewability. */ @java.lang.Override public double getActiveViewViewability() { return activeViewViewability_; } public static final int ALL_CONVERSIONS_FROM_INTERACTIONS_RATE_FIELD_NUMBER = 191; private double allConversionsFromInteractionsRate_; /** *
   * All conversions from interactions (as oppose to view through conversions)
   * divided by the number of ad interactions.
   * 
* * optional double all_conversions_from_interactions_rate = 191; * @return Whether the allConversionsFromInteractionsRate field is set. */ @java.lang.Override public boolean hasAllConversionsFromInteractionsRate() { return ((bitField0_ & 0x00000100) != 0); } /** *
   * All conversions from interactions (as oppose to view through conversions)
   * divided by the number of ad interactions.
   * 
* * optional double all_conversions_from_interactions_rate = 191; * @return The allConversionsFromInteractionsRate. */ @java.lang.Override public double getAllConversionsFromInteractionsRate() { return allConversionsFromInteractionsRate_; } public static final int ALL_CONVERSIONS_VALUE_FIELD_NUMBER = 192; private double allConversionsValue_; /** *
   * The value of all conversions.
   * 
* * optional double all_conversions_value = 192; * @return Whether the allConversionsValue field is set. */ @java.lang.Override public boolean hasAllConversionsValue() { return ((bitField0_ & 0x00000200) != 0); } /** *
   * The value of all conversions.
   * 
* * optional double all_conversions_value = 192; * @return The allConversionsValue. */ @java.lang.Override public double getAllConversionsValue() { return allConversionsValue_; } public static final int ALL_CONVERSIONS_VALUE_BY_CONVERSION_DATE_FIELD_NUMBER = 240; private double allConversionsValueByConversionDate_; /** *
   * The value of all conversions. When this column is selected with date, the
   * values in date column means the conversion date. Details for the
   * by_conversion_date columns are available at
   * https://support.google.com/google-ads/answer/9549009.
   * 
* * double all_conversions_value_by_conversion_date = 240; * @return The allConversionsValueByConversionDate. */ @java.lang.Override public double getAllConversionsValueByConversionDate() { return allConversionsValueByConversionDate_; } public static final int ALL_CONVERSIONS_FIELD_NUMBER = 193; private double allConversions_; /** *
   * The total number of conversions. This includes all conversions regardless
   * of the value of include_in_conversions_metric.
   * 
* * optional double all_conversions = 193; * @return Whether the allConversions field is set. */ @java.lang.Override public boolean hasAllConversions() { return ((bitField0_ & 0x00000400) != 0); } /** *
   * The total number of conversions. This includes all conversions regardless
   * of the value of include_in_conversions_metric.
   * 
* * optional double all_conversions = 193; * @return The allConversions. */ @java.lang.Override public double getAllConversions() { return allConversions_; } public static final int ALL_CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER = 241; private double allConversionsByConversionDate_; /** *
   * The total number of conversions. This includes all conversions regardless
   * of the value of include_in_conversions_metric. When this column is selected
   * with date, the values in date column means the conversion date. Details for
   * the by_conversion_date columns are available at
   * https://support.google.com/google-ads/answer/9549009.
   * 
* * double all_conversions_by_conversion_date = 241; * @return The allConversionsByConversionDate. */ @java.lang.Override public double getAllConversionsByConversionDate() { return allConversionsByConversionDate_; } public static final int ALL_CONVERSIONS_VALUE_PER_COST_FIELD_NUMBER = 194; private double allConversionsValuePerCost_; /** *
   * The value of all conversions divided by the total cost of ad interactions
   * (such as clicks for text ads or views for video ads).
   * 
* * optional double all_conversions_value_per_cost = 194; * @return Whether the allConversionsValuePerCost field is set. */ @java.lang.Override public boolean hasAllConversionsValuePerCost() { return ((bitField0_ & 0x00000800) != 0); } /** *
   * The value of all conversions divided by the total cost of ad interactions
   * (such as clicks for text ads or views for video ads).
   * 
* * optional double all_conversions_value_per_cost = 194; * @return The allConversionsValuePerCost. */ @java.lang.Override public double getAllConversionsValuePerCost() { return allConversionsValuePerCost_; } public static final int ALL_CONVERSIONS_FROM_CLICK_TO_CALL_FIELD_NUMBER = 195; private double allConversionsFromClickToCall_; /** *
   * The number of times people clicked the "Call" button to call a store during
   * or after clicking an ad. This number doesn't include whether or not calls
   * were connected, or the duration of any calls.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_click_to_call = 195; * @return Whether the allConversionsFromClickToCall field is set. */ @java.lang.Override public boolean hasAllConversionsFromClickToCall() { return ((bitField0_ & 0x00001000) != 0); } /** *
   * The number of times people clicked the "Call" button to call a store during
   * or after clicking an ad. This number doesn't include whether or not calls
   * were connected, or the duration of any calls.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_click_to_call = 195; * @return The allConversionsFromClickToCall. */ @java.lang.Override public double getAllConversionsFromClickToCall() { return allConversionsFromClickToCall_; } public static final int ALL_CONVERSIONS_FROM_DIRECTIONS_FIELD_NUMBER = 196; private double allConversionsFromDirections_; /** *
   * The number of times people clicked a "Get directions" button to navigate to
   * a store after clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_directions = 196; * @return Whether the allConversionsFromDirections field is set. */ @java.lang.Override public boolean hasAllConversionsFromDirections() { return ((bitField0_ & 0x00002000) != 0); } /** *
   * The number of times people clicked a "Get directions" button to navigate to
   * a store after clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_directions = 196; * @return The allConversionsFromDirections. */ @java.lang.Override public double getAllConversionsFromDirections() { return allConversionsFromDirections_; } public static final int ALL_CONVERSIONS_FROM_INTERACTIONS_VALUE_PER_INTERACTION_FIELD_NUMBER = 197; private double allConversionsFromInteractionsValuePerInteraction_; /** *
   * The value of all conversions from interactions divided by the total number
   * of interactions.
   * 
* * optional double all_conversions_from_interactions_value_per_interaction = 197; * @return Whether the allConversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override public boolean hasAllConversionsFromInteractionsValuePerInteraction() { return ((bitField0_ & 0x00004000) != 0); } /** *
   * The value of all conversions from interactions divided by the total number
   * of interactions.
   * 
* * optional double all_conversions_from_interactions_value_per_interaction = 197; * @return The allConversionsFromInteractionsValuePerInteraction. */ @java.lang.Override public double getAllConversionsFromInteractionsValuePerInteraction() { return allConversionsFromInteractionsValuePerInteraction_; } public static final int ALL_CONVERSIONS_FROM_MENU_FIELD_NUMBER = 198; private double allConversionsFromMenu_; /** *
   * The number of times people clicked a link to view a store's menu after
   * clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_menu = 198; * @return Whether the allConversionsFromMenu field is set. */ @java.lang.Override public boolean hasAllConversionsFromMenu() { return ((bitField0_ & 0x00008000) != 0); } /** *
   * The number of times people clicked a link to view a store's menu after
   * clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_menu = 198; * @return The allConversionsFromMenu. */ @java.lang.Override public double getAllConversionsFromMenu() { return allConversionsFromMenu_; } public static final int ALL_CONVERSIONS_FROM_ORDER_FIELD_NUMBER = 199; private double allConversionsFromOrder_; /** *
   * The number of times people placed an order at a store after clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_order = 199; * @return Whether the allConversionsFromOrder field is set. */ @java.lang.Override public boolean hasAllConversionsFromOrder() { return ((bitField0_ & 0x00010000) != 0); } /** *
   * The number of times people placed an order at a store after clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_order = 199; * @return The allConversionsFromOrder. */ @java.lang.Override public double getAllConversionsFromOrder() { return allConversionsFromOrder_; } public static final int ALL_CONVERSIONS_FROM_OTHER_ENGAGEMENT_FIELD_NUMBER = 200; private double allConversionsFromOtherEngagement_; /** *
   * The number of other conversions (for example, posting a review or saving a
   * location for a store) that occurred after people clicked an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_other_engagement = 200; * @return Whether the allConversionsFromOtherEngagement field is set. */ @java.lang.Override public boolean hasAllConversionsFromOtherEngagement() { return ((bitField0_ & 0x00020000) != 0); } /** *
   * The number of other conversions (for example, posting a review or saving a
   * location for a store) that occurred after people clicked an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_other_engagement = 200; * @return The allConversionsFromOtherEngagement. */ @java.lang.Override public double getAllConversionsFromOtherEngagement() { return allConversionsFromOtherEngagement_; } public static final int ALL_CONVERSIONS_FROM_STORE_VISIT_FIELD_NUMBER = 201; private double allConversionsFromStoreVisit_; /** *
   * Estimated number of times people visited a store after clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_store_visit = 201; * @return Whether the allConversionsFromStoreVisit field is set. */ @java.lang.Override public boolean hasAllConversionsFromStoreVisit() { return ((bitField0_ & 0x00040000) != 0); } /** *
   * Estimated number of times people visited a store after clicking an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_store_visit = 201; * @return The allConversionsFromStoreVisit. */ @java.lang.Override public double getAllConversionsFromStoreVisit() { return allConversionsFromStoreVisit_; } public static final int ALL_CONVERSIONS_FROM_STORE_WEBSITE_FIELD_NUMBER = 202; private double allConversionsFromStoreWebsite_; /** *
   * The number of times that people were taken to a store's URL after clicking
   * an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_store_website = 202; * @return Whether the allConversionsFromStoreWebsite field is set. */ @java.lang.Override public boolean hasAllConversionsFromStoreWebsite() { return ((bitField0_ & 0x00080000) != 0); } /** *
   * The number of times that people were taken to a store's URL after clicking
   * an ad.
   * This metric applies to feed items only.
   * 
* * optional double all_conversions_from_store_website = 202; * @return The allConversionsFromStoreWebsite. */ @java.lang.Override public double getAllConversionsFromStoreWebsite() { return allConversionsFromStoreWebsite_; } public static final int AVERAGE_COST_FIELD_NUMBER = 203; private double averageCost_; /** *
   * The average amount you pay per interaction. This amount is the total cost
   * of your ads divided by the total number of interactions.
   * 
* * optional double average_cost = 203; * @return Whether the averageCost field is set. */ @java.lang.Override public boolean hasAverageCost() { return ((bitField0_ & 0x00100000) != 0); } /** *
   * The average amount you pay per interaction. This amount is the total cost
   * of your ads divided by the total number of interactions.
   * 
* * optional double average_cost = 203; * @return The averageCost. */ @java.lang.Override public double getAverageCost() { return averageCost_; } public static final int AVERAGE_CPC_FIELD_NUMBER = 204; private double averageCpc_; /** *
   * The total cost of all clicks divided by the total number of clicks
   * received.
   * 
* * optional double average_cpc = 204; * @return Whether the averageCpc field is set. */ @java.lang.Override public boolean hasAverageCpc() { return ((bitField0_ & 0x00200000) != 0); } /** *
   * The total cost of all clicks divided by the total number of clicks
   * received.
   * 
* * optional double average_cpc = 204; * @return The averageCpc. */ @java.lang.Override public double getAverageCpc() { return averageCpc_; } public static final int AVERAGE_CPE_FIELD_NUMBER = 205; private double averageCpe_; /** *
   * The average amount that you've been charged for an ad engagement. This
   * amount is the total cost of all ad engagements divided by the total number
   * of ad engagements.
   * 
* * optional double average_cpe = 205; * @return Whether the averageCpe field is set. */ @java.lang.Override public boolean hasAverageCpe() { return ((bitField0_ & 0x00400000) != 0); } /** *
   * The average amount that you've been charged for an ad engagement. This
   * amount is the total cost of all ad engagements divided by the total number
   * of ad engagements.
   * 
* * optional double average_cpe = 205; * @return The averageCpe. */ @java.lang.Override public double getAverageCpe() { return averageCpe_; } public static final int AVERAGE_CPM_FIELD_NUMBER = 206; private double averageCpm_; /** *
   * Average cost-per-thousand impressions (CPM).
   * 
* * optional double average_cpm = 206; * @return Whether the averageCpm field is set. */ @java.lang.Override public boolean hasAverageCpm() { return ((bitField0_ & 0x00800000) != 0); } /** *
   * Average cost-per-thousand impressions (CPM).
   * 
* * optional double average_cpm = 206; * @return The averageCpm. */ @java.lang.Override public double getAverageCpm() { return averageCpm_; } public static final int AVERAGE_CPV_FIELD_NUMBER = 207; private double averageCpv_; /** *
   * The average amount you pay each time someone views your ad.
   * The average CPV is defined by the total cost of all ad views divided by
   * the number of views.
   * 
* * optional double average_cpv = 207; * @return Whether the averageCpv field is set. */ @java.lang.Override public boolean hasAverageCpv() { return ((bitField0_ & 0x01000000) != 0); } /** *
   * The average amount you pay each time someone views your ad.
   * The average CPV is defined by the total cost of all ad views divided by
   * the number of views.
   * 
* * optional double average_cpv = 207; * @return The averageCpv. */ @java.lang.Override public double getAverageCpv() { return averageCpv_; } public static final int AVERAGE_PAGE_VIEWS_FIELD_NUMBER = 208; private double averagePageViews_; /** *
   * Average number of pages viewed per session.
   * 
* * optional double average_page_views = 208; * @return Whether the averagePageViews field is set. */ @java.lang.Override public boolean hasAveragePageViews() { return ((bitField0_ & 0x02000000) != 0); } /** *
   * Average number of pages viewed per session.
   * 
* * optional double average_page_views = 208; * @return The averagePageViews. */ @java.lang.Override public double getAveragePageViews() { return averagePageViews_; } public static final int AVERAGE_TIME_ON_SITE_FIELD_NUMBER = 209; private double averageTimeOnSite_; /** *
   * Total duration of all sessions (in seconds) / number of sessions. Imported
   * from Google Analytics.
   * 
* * optional double average_time_on_site = 209; * @return Whether the averageTimeOnSite field is set. */ @java.lang.Override public boolean hasAverageTimeOnSite() { return ((bitField0_ & 0x04000000) != 0); } /** *
   * Total duration of all sessions (in seconds) / number of sessions. Imported
   * from Google Analytics.
   * 
* * optional double average_time_on_site = 209; * @return The averageTimeOnSite. */ @java.lang.Override public double getAverageTimeOnSite() { return averageTimeOnSite_; } public static final int BENCHMARK_AVERAGE_MAX_CPC_FIELD_NUMBER = 210; private double benchmarkAverageMaxCpc_; /** *
   * An indication of how other advertisers are bidding on similar products.
   * 
* * optional double benchmark_average_max_cpc = 210; * @return Whether the benchmarkAverageMaxCpc field is set. */ @java.lang.Override public boolean hasBenchmarkAverageMaxCpc() { return ((bitField0_ & 0x08000000) != 0); } /** *
   * An indication of how other advertisers are bidding on similar products.
   * 
* * optional double benchmark_average_max_cpc = 210; * @return The benchmarkAverageMaxCpc. */ @java.lang.Override public double getBenchmarkAverageMaxCpc() { return benchmarkAverageMaxCpc_; } public static final int BIDDABLE_APP_INSTALL_CONVERSIONS_FIELD_NUMBER = 254; private double biddableAppInstallConversions_; /** *
   * Number of app installs.
   * 
* * optional double biddable_app_install_conversions = 254; * @return Whether the biddableAppInstallConversions field is set. */ @java.lang.Override public boolean hasBiddableAppInstallConversions() { return ((bitField0_ & 0x10000000) != 0); } /** *
   * Number of app installs.
   * 
* * optional double biddable_app_install_conversions = 254; * @return The biddableAppInstallConversions. */ @java.lang.Override public double getBiddableAppInstallConversions() { return biddableAppInstallConversions_; } public static final int BIDDABLE_APP_POST_INSTALL_CONVERSIONS_FIELD_NUMBER = 255; private double biddableAppPostInstallConversions_; /** *
   * Number of in-app actions.
   * 
* * optional double biddable_app_post_install_conversions = 255; * @return Whether the biddableAppPostInstallConversions field is set. */ @java.lang.Override public boolean hasBiddableAppPostInstallConversions() { return ((bitField0_ & 0x20000000) != 0); } /** *
   * Number of in-app actions.
   * 
* * optional double biddable_app_post_install_conversions = 255; * @return The biddableAppPostInstallConversions. */ @java.lang.Override public double getBiddableAppPostInstallConversions() { return biddableAppPostInstallConversions_; } public static final int BENCHMARK_CTR_FIELD_NUMBER = 211; private double benchmarkCtr_; /** *
   * An indication on how other advertisers' Shopping ads for similar products
   * are performing based on how often people who see their ad click on it.
   * 
* * optional double benchmark_ctr = 211; * @return Whether the benchmarkCtr field is set. */ @java.lang.Override public boolean hasBenchmarkCtr() { return ((bitField0_ & 0x40000000) != 0); } /** *
   * An indication on how other advertisers' Shopping ads for similar products
   * are performing based on how often people who see their ad click on it.
   * 
* * optional double benchmark_ctr = 211; * @return The benchmarkCtr. */ @java.lang.Override public double getBenchmarkCtr() { return benchmarkCtr_; } public static final int BOUNCE_RATE_FIELD_NUMBER = 212; private double bounceRate_; /** *
   * Percentage of clicks where the user only visited a single page on your
   * site. Imported from Google Analytics.
   * 
* * optional double bounce_rate = 212; * @return Whether the bounceRate field is set. */ @java.lang.Override public boolean hasBounceRate() { return ((bitField0_ & 0x80000000) != 0); } /** *
   * Percentage of clicks where the user only visited a single page on your
   * site. Imported from Google Analytics.
   * 
* * optional double bounce_rate = 212; * @return The bounceRate. */ @java.lang.Override public double getBounceRate() { return bounceRate_; } public static final int CLICKS_FIELD_NUMBER = 131; private long clicks_; /** *
   * The number of clicks.
   * 
* * optional int64 clicks = 131; * @return Whether the clicks field is set. */ @java.lang.Override public boolean hasClicks() { return ((bitField1_ & 0x00000001) != 0); } /** *
   * The number of clicks.
   * 
* * optional int64 clicks = 131; * @return The clicks. */ @java.lang.Override public long getClicks() { return clicks_; } public static final int COMBINED_CLICKS_FIELD_NUMBER = 156; private long combinedClicks_; /** *
   * The number of times your ad or your site's listing in the unpaid
   * results was clicked. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 combined_clicks = 156; * @return Whether the combinedClicks field is set. */ @java.lang.Override public boolean hasCombinedClicks() { return ((bitField1_ & 0x00000002) != 0); } /** *
   * The number of times your ad or your site's listing in the unpaid
   * results was clicked. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 combined_clicks = 156; * @return The combinedClicks. */ @java.lang.Override public long getCombinedClicks() { return combinedClicks_; } public static final int COMBINED_CLICKS_PER_QUERY_FIELD_NUMBER = 157; private double combinedClicksPerQuery_; /** *
   * The number of times your ad or your site's listing in the unpaid
   * results was clicked (combined_clicks) divided by combined_queries. See the
   * help page at https://support.google.com/google-ads/answer/3097241 for
   * details.
   * 
* * optional double combined_clicks_per_query = 157; * @return Whether the combinedClicksPerQuery field is set. */ @java.lang.Override public boolean hasCombinedClicksPerQuery() { return ((bitField1_ & 0x00000004) != 0); } /** *
   * The number of times your ad or your site's listing in the unpaid
   * results was clicked (combined_clicks) divided by combined_queries. See the
   * help page at https://support.google.com/google-ads/answer/3097241 for
   * details.
   * 
* * optional double combined_clicks_per_query = 157; * @return The combinedClicksPerQuery. */ @java.lang.Override public double getCombinedClicksPerQuery() { return combinedClicksPerQuery_; } public static final int COMBINED_QUERIES_FIELD_NUMBER = 158; private long combinedQueries_; /** *
   * The number of searches that returned pages from your site in the unpaid
   * results or showed one of your text ads. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 combined_queries = 158; * @return Whether the combinedQueries field is set. */ @java.lang.Override public boolean hasCombinedQueries() { return ((bitField1_ & 0x00000008) != 0); } /** *
   * The number of searches that returned pages from your site in the unpaid
   * results or showed one of your text ads. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 combined_queries = 158; * @return The combinedQueries. */ @java.lang.Override public long getCombinedQueries() { return combinedQueries_; } public static final int CONTENT_BUDGET_LOST_IMPRESSION_SHARE_FIELD_NUMBER = 159; private double contentBudgetLostImpressionShare_; /** *
   * The estimated percent of times that your ad was eligible to show
   * on the Display Network but didn't because your budget was too low.
   * Note: Content budget lost impression share is reported in the range of 0
   * to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double content_budget_lost_impression_share = 159; * @return Whether the contentBudgetLostImpressionShare field is set. */ @java.lang.Override public boolean hasContentBudgetLostImpressionShare() { return ((bitField1_ & 0x00000010) != 0); } /** *
   * The estimated percent of times that your ad was eligible to show
   * on the Display Network but didn't because your budget was too low.
   * Note: Content budget lost impression share is reported in the range of 0
   * to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double content_budget_lost_impression_share = 159; * @return The contentBudgetLostImpressionShare. */ @java.lang.Override public double getContentBudgetLostImpressionShare() { return contentBudgetLostImpressionShare_; } public static final int CONTENT_IMPRESSION_SHARE_FIELD_NUMBER = 160; private double contentImpressionShare_; /** *
   * The impressions you've received on the Display Network divided
   * by the estimated number of impressions you were eligible to receive.
   * Note: Content impression share is reported in the range of 0.1 to 1. Any
   * value below 0.1 is reported as 0.0999.
   * 
* * optional double content_impression_share = 160; * @return Whether the contentImpressionShare field is set. */ @java.lang.Override public boolean hasContentImpressionShare() { return ((bitField1_ & 0x00000020) != 0); } /** *
   * The impressions you've received on the Display Network divided
   * by the estimated number of impressions you were eligible to receive.
   * Note: Content impression share is reported in the range of 0.1 to 1. Any
   * value below 0.1 is reported as 0.0999.
   * 
* * optional double content_impression_share = 160; * @return The contentImpressionShare. */ @java.lang.Override public double getContentImpressionShare() { return contentImpressionShare_; } public static final int CONVERSION_LAST_RECEIVED_REQUEST_DATE_TIME_FIELD_NUMBER = 161; private volatile java.lang.Object conversionLastReceivedRequestDateTime_; /** *
   * The last date/time a conversion tag for this conversion action successfully
   * fired and was seen by Google Ads. This firing event may not have been the
   * result of an attributable conversion (for example, because the tag was
   * fired from a browser that did not previously click an ad from an
   * appropriate advertiser). The date/time is in the customer's time zone.
   * 
* * optional string conversion_last_received_request_date_time = 161; * @return Whether the conversionLastReceivedRequestDateTime field is set. */ @java.lang.Override public boolean hasConversionLastReceivedRequestDateTime() { return ((bitField1_ & 0x00000040) != 0); } /** *
   * The last date/time a conversion tag for this conversion action successfully
   * fired and was seen by Google Ads. This firing event may not have been the
   * result of an attributable conversion (for example, because the tag was
   * fired from a browser that did not previously click an ad from an
   * appropriate advertiser). The date/time is in the customer's time zone.
   * 
* * optional string conversion_last_received_request_date_time = 161; * @return The conversionLastReceivedRequestDateTime. */ @java.lang.Override public java.lang.String getConversionLastReceivedRequestDateTime() { java.lang.Object ref = conversionLastReceivedRequestDateTime_; 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(); conversionLastReceivedRequestDateTime_ = s; return s; } } /** *
   * The last date/time a conversion tag for this conversion action successfully
   * fired and was seen by Google Ads. This firing event may not have been the
   * result of an attributable conversion (for example, because the tag was
   * fired from a browser that did not previously click an ad from an
   * appropriate advertiser). The date/time is in the customer's time zone.
   * 
* * optional string conversion_last_received_request_date_time = 161; * @return The bytes for conversionLastReceivedRequestDateTime. */ @java.lang.Override public com.google.protobuf.ByteString getConversionLastReceivedRequestDateTimeBytes() { java.lang.Object ref = conversionLastReceivedRequestDateTime_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); conversionLastReceivedRequestDateTime_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CONVERSION_LAST_CONVERSION_DATE_FIELD_NUMBER = 162; private volatile java.lang.Object conversionLastConversionDate_; /** *
   * The date of the most recent conversion for this conversion action. The date
   * is in the customer's time zone.
   * 
* * optional string conversion_last_conversion_date = 162; * @return Whether the conversionLastConversionDate field is set. */ @java.lang.Override public boolean hasConversionLastConversionDate() { return ((bitField1_ & 0x00000080) != 0); } /** *
   * The date of the most recent conversion for this conversion action. The date
   * is in the customer's time zone.
   * 
* * optional string conversion_last_conversion_date = 162; * @return The conversionLastConversionDate. */ @java.lang.Override public java.lang.String getConversionLastConversionDate() { java.lang.Object ref = conversionLastConversionDate_; 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(); conversionLastConversionDate_ = s; return s; } } /** *
   * The date of the most recent conversion for this conversion action. The date
   * is in the customer's time zone.
   * 
* * optional string conversion_last_conversion_date = 162; * @return The bytes for conversionLastConversionDate. */ @java.lang.Override public com.google.protobuf.ByteString getConversionLastConversionDateBytes() { java.lang.Object ref = conversionLastConversionDate_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); conversionLastConversionDate_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CONTENT_RANK_LOST_IMPRESSION_SHARE_FIELD_NUMBER = 163; private double contentRankLostImpressionShare_; /** *
   * The estimated percentage of impressions on the Display Network
   * that your ads didn't receive due to poor Ad Rank.
   * Note: Content rank lost impression share is reported in the range of 0
   * to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double content_rank_lost_impression_share = 163; * @return Whether the contentRankLostImpressionShare field is set. */ @java.lang.Override public boolean hasContentRankLostImpressionShare() { return ((bitField1_ & 0x00000100) != 0); } /** *
   * The estimated percentage of impressions on the Display Network
   * that your ads didn't receive due to poor Ad Rank.
   * Note: Content rank lost impression share is reported in the range of 0
   * to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double content_rank_lost_impression_share = 163; * @return The contentRankLostImpressionShare. */ @java.lang.Override public double getContentRankLostImpressionShare() { return contentRankLostImpressionShare_; } public static final int CONVERSIONS_FROM_INTERACTIONS_RATE_FIELD_NUMBER = 164; private double conversionsFromInteractionsRate_; /** *
   * Conversions from interactions divided by the number of ad interactions
   * (such as clicks for text ads or views for video ads). This only includes
   * conversion actions which include_in_conversions_metric attribute is set to
   * true. If you use conversion-based bidding, your bid strategies will
   * optimize for these conversions.
   * 
* * optional double conversions_from_interactions_rate = 164; * @return Whether the conversionsFromInteractionsRate field is set. */ @java.lang.Override public boolean hasConversionsFromInteractionsRate() { return ((bitField1_ & 0x00000200) != 0); } /** *
   * Conversions from interactions divided by the number of ad interactions
   * (such as clicks for text ads or views for video ads). This only includes
   * conversion actions which include_in_conversions_metric attribute is set to
   * true. If you use conversion-based bidding, your bid strategies will
   * optimize for these conversions.
   * 
* * optional double conversions_from_interactions_rate = 164; * @return The conversionsFromInteractionsRate. */ @java.lang.Override public double getConversionsFromInteractionsRate() { return conversionsFromInteractionsRate_; } public static final int CONVERSIONS_VALUE_FIELD_NUMBER = 165; private double conversionsValue_; /** *
   * The value of conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double conversions_value = 165; * @return Whether the conversionsValue field is set. */ @java.lang.Override public boolean hasConversionsValue() { return ((bitField1_ & 0x00000400) != 0); } /** *
   * The value of conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double conversions_value = 165; * @return The conversionsValue. */ @java.lang.Override public double getConversionsValue() { return conversionsValue_; } public static final int CONVERSIONS_VALUE_BY_CONVERSION_DATE_FIELD_NUMBER = 242; private double conversionsValueByConversionDate_; /** *
   * The value of conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions. When this column is selected with date, the values in date
   * column means the conversion date. Details for the by_conversion_date
   * columns are available at
   * https://support.google.com/google-ads/answer/9549009.
   * 
* * double conversions_value_by_conversion_date = 242; * @return The conversionsValueByConversionDate. */ @java.lang.Override public double getConversionsValueByConversionDate() { return conversionsValueByConversionDate_; } public static final int CONVERSIONS_VALUE_PER_COST_FIELD_NUMBER = 166; private double conversionsValuePerCost_; /** *
   * The value of conversions divided by the cost of ad interactions. This only
   * includes conversion actions which include_in_conversions_metric attribute
   * is set to true. If you use conversion-based bidding, your bid strategies
   * will optimize for these conversions.
   * 
* * optional double conversions_value_per_cost = 166; * @return Whether the conversionsValuePerCost field is set. */ @java.lang.Override public boolean hasConversionsValuePerCost() { return ((bitField1_ & 0x00000800) != 0); } /** *
   * The value of conversions divided by the cost of ad interactions. This only
   * includes conversion actions which include_in_conversions_metric attribute
   * is set to true. If you use conversion-based bidding, your bid strategies
   * will optimize for these conversions.
   * 
* * optional double conversions_value_per_cost = 166; * @return The conversionsValuePerCost. */ @java.lang.Override public double getConversionsValuePerCost() { return conversionsValuePerCost_; } public static final int CONVERSIONS_FROM_INTERACTIONS_VALUE_PER_INTERACTION_FIELD_NUMBER = 167; private double conversionsFromInteractionsValuePerInteraction_; /** *
   * The value of conversions from interactions divided by the number of ad
   * interactions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double conversions_from_interactions_value_per_interaction = 167; * @return Whether the conversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override public boolean hasConversionsFromInteractionsValuePerInteraction() { return ((bitField1_ & 0x00001000) != 0); } /** *
   * The value of conversions from interactions divided by the number of ad
   * interactions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double conversions_from_interactions_value_per_interaction = 167; * @return The conversionsFromInteractionsValuePerInteraction. */ @java.lang.Override public double getConversionsFromInteractionsValuePerInteraction() { return conversionsFromInteractionsValuePerInteraction_; } public static final int CONVERSIONS_FIELD_NUMBER = 168; private double conversions_; /** *
   * The number of conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double conversions = 168; * @return Whether the conversions field is set. */ @java.lang.Override public boolean hasConversions() { return ((bitField1_ & 0x00002000) != 0); } /** *
   * The number of conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double conversions = 168; * @return The conversions. */ @java.lang.Override public double getConversions() { return conversions_; } public static final int CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER = 243; private double conversionsByConversionDate_; /** *
   * The number of conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions. When this column is selected with date, the values in date
   * column means the conversion date. Details for the by_conversion_date
   * columns are available at
   * https://support.google.com/google-ads/answer/9549009.
   * 
* * double conversions_by_conversion_date = 243; * @return The conversionsByConversionDate. */ @java.lang.Override public double getConversionsByConversionDate() { return conversionsByConversionDate_; } public static final int COST_MICROS_FIELD_NUMBER = 169; private long costMicros_; /** *
   * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
   * (CPM) costs during this period.
   * 
* * optional int64 cost_micros = 169; * @return Whether the costMicros field is set. */ @java.lang.Override public boolean hasCostMicros() { return ((bitField1_ & 0x00004000) != 0); } /** *
   * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
   * (CPM) costs during this period.
   * 
* * optional int64 cost_micros = 169; * @return The costMicros. */ @java.lang.Override public long getCostMicros() { return costMicros_; } public static final int COST_PER_ALL_CONVERSIONS_FIELD_NUMBER = 170; private double costPerAllConversions_; /** *
   * The cost of ad interactions divided by all conversions.
   * 
* * optional double cost_per_all_conversions = 170; * @return Whether the costPerAllConversions field is set. */ @java.lang.Override public boolean hasCostPerAllConversions() { return ((bitField1_ & 0x00008000) != 0); } /** *
   * The cost of ad interactions divided by all conversions.
   * 
* * optional double cost_per_all_conversions = 170; * @return The costPerAllConversions. */ @java.lang.Override public double getCostPerAllConversions() { return costPerAllConversions_; } public static final int COST_PER_CONVERSION_FIELD_NUMBER = 171; private double costPerConversion_; /** *
   * The cost of ad interactions divided by conversions. This only includes
   * conversion actions which include_in_conversions_metric attribute is set to
   * true. If you use conversion-based bidding, your bid strategies will
   * optimize for these conversions.
   * 
* * optional double cost_per_conversion = 171; * @return Whether the costPerConversion field is set. */ @java.lang.Override public boolean hasCostPerConversion() { return ((bitField1_ & 0x00010000) != 0); } /** *
   * The cost of ad interactions divided by conversions. This only includes
   * conversion actions which include_in_conversions_metric attribute is set to
   * true. If you use conversion-based bidding, your bid strategies will
   * optimize for these conversions.
   * 
* * optional double cost_per_conversion = 171; * @return The costPerConversion. */ @java.lang.Override public double getCostPerConversion() { return costPerConversion_; } public static final int COST_PER_CURRENT_MODEL_ATTRIBUTED_CONVERSION_FIELD_NUMBER = 172; private double costPerCurrentModelAttributedConversion_; /** *
   * The cost of ad interactions divided by current model attributed
   * conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double cost_per_current_model_attributed_conversion = 172; * @return Whether the costPerCurrentModelAttributedConversion field is set. */ @java.lang.Override public boolean hasCostPerCurrentModelAttributedConversion() { return ((bitField1_ & 0x00020000) != 0); } /** *
   * The cost of ad interactions divided by current model attributed
   * conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double cost_per_current_model_attributed_conversion = 172; * @return The costPerCurrentModelAttributedConversion. */ @java.lang.Override public double getCostPerCurrentModelAttributedConversion() { return costPerCurrentModelAttributedConversion_; } public static final int CROSS_DEVICE_CONVERSIONS_FIELD_NUMBER = 173; private double crossDeviceConversions_; /** *
   * Conversions from when a customer clicks on a Google Ads ad on one device,
   * then converts on a different device or browser.
   * Cross-device conversions are already included in all_conversions.
   * 
* * optional double cross_device_conversions = 173; * @return Whether the crossDeviceConversions field is set. */ @java.lang.Override public boolean hasCrossDeviceConversions() { return ((bitField1_ & 0x00040000) != 0); } /** *
   * Conversions from when a customer clicks on a Google Ads ad on one device,
   * then converts on a different device or browser.
   * Cross-device conversions are already included in all_conversions.
   * 
* * optional double cross_device_conversions = 173; * @return The crossDeviceConversions. */ @java.lang.Override public double getCrossDeviceConversions() { return crossDeviceConversions_; } public static final int CTR_FIELD_NUMBER = 174; private double ctr_; /** *
   * The number of clicks your ad receives (Clicks) divided by the number
   * of times your ad is shown (Impressions).
   * 
* * optional double ctr = 174; * @return Whether the ctr field is set. */ @java.lang.Override public boolean hasCtr() { return ((bitField1_ & 0x00080000) != 0); } /** *
   * The number of clicks your ad receives (Clicks) divided by the number
   * of times your ad is shown (Impressions).
   * 
* * optional double ctr = 174; * @return The ctr. */ @java.lang.Override public double getCtr() { return ctr_; } public static final int CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_FIELD_NUMBER = 175; private double currentModelAttributedConversions_; /** *
   * Shows how your historic conversions data would look under the attribution
   * model you've currently selected. This only includes conversion actions
   * which include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions = 175; * @return Whether the currentModelAttributedConversions field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversions() { return ((bitField1_ & 0x00100000) != 0); } /** *
   * Shows how your historic conversions data would look under the attribution
   * model you've currently selected. This only includes conversion actions
   * which include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions = 175; * @return The currentModelAttributedConversions. */ @java.lang.Override public double getCurrentModelAttributedConversions() { return currentModelAttributedConversions_; } public static final int CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_FROM_INTERACTIONS_RATE_FIELD_NUMBER = 176; private double currentModelAttributedConversionsFromInteractionsRate_; /** *
   * Current model attributed conversions from interactions divided by the
   * number of ad interactions (such as clicks for text ads or views for video
   * ads). This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions_from_interactions_rate = 176; * @return Whether the currentModelAttributedConversionsFromInteractionsRate field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsFromInteractionsRate() { return ((bitField1_ & 0x00200000) != 0); } /** *
   * Current model attributed conversions from interactions divided by the
   * number of ad interactions (such as clicks for text ads or views for video
   * ads). This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions_from_interactions_rate = 176; * @return The currentModelAttributedConversionsFromInteractionsRate. */ @java.lang.Override public double getCurrentModelAttributedConversionsFromInteractionsRate() { return currentModelAttributedConversionsFromInteractionsRate_; } public static final int CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_FROM_INTERACTIONS_VALUE_PER_INTERACTION_FIELD_NUMBER = 177; private double currentModelAttributedConversionsFromInteractionsValuePerInteraction_; /** *
   * The value of current model attributed conversions from interactions divided
   * by the number of ad interactions. This only includes conversion actions
   * which include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; * @return Whether the currentModelAttributedConversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { return ((bitField1_ & 0x00400000) != 0); } /** *
   * The value of current model attributed conversions from interactions divided
   * by the number of ad interactions. This only includes conversion actions
   * which include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; * @return The currentModelAttributedConversionsFromInteractionsValuePerInteraction. */ @java.lang.Override public double getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { return currentModelAttributedConversionsFromInteractionsValuePerInteraction_; } public static final int CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_VALUE_FIELD_NUMBER = 178; private double currentModelAttributedConversionsValue_; /** *
   * The value of current model attributed conversions. This only includes
   * conversion actions which include_in_conversions_metric attribute is set to
   * true. If you use conversion-based bidding, your bid strategies will
   * optimize for these conversions.
   * 
* * optional double current_model_attributed_conversions_value = 178; * @return Whether the currentModelAttributedConversionsValue field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsValue() { return ((bitField1_ & 0x00800000) != 0); } /** *
   * The value of current model attributed conversions. This only includes
   * conversion actions which include_in_conversions_metric attribute is set to
   * true. If you use conversion-based bidding, your bid strategies will
   * optimize for these conversions.
   * 
* * optional double current_model_attributed_conversions_value = 178; * @return The currentModelAttributedConversionsValue. */ @java.lang.Override public double getCurrentModelAttributedConversionsValue() { return currentModelAttributedConversionsValue_; } public static final int CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_VALUE_PER_COST_FIELD_NUMBER = 179; private double currentModelAttributedConversionsValuePerCost_; /** *
   * The value of current model attributed conversions divided by the cost of ad
   * interactions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions_value_per_cost = 179; * @return Whether the currentModelAttributedConversionsValuePerCost field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsValuePerCost() { return ((bitField1_ & 0x01000000) != 0); } /** *
   * The value of current model attributed conversions divided by the cost of ad
   * interactions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double current_model_attributed_conversions_value_per_cost = 179; * @return The currentModelAttributedConversionsValuePerCost. */ @java.lang.Override public double getCurrentModelAttributedConversionsValuePerCost() { return currentModelAttributedConversionsValuePerCost_; } public static final int ENGAGEMENT_RATE_FIELD_NUMBER = 180; private double engagementRate_; /** *
   * How often people engage with your ad after it's shown to them. This is the
   * number of ad expansions divided by the number of times your ad is shown.
   * 
* * optional double engagement_rate = 180; * @return Whether the engagementRate field is set. */ @java.lang.Override public boolean hasEngagementRate() { return ((bitField1_ & 0x02000000) != 0); } /** *
   * How often people engage with your ad after it's shown to them. This is the
   * number of ad expansions divided by the number of times your ad is shown.
   * 
* * optional double engagement_rate = 180; * @return The engagementRate. */ @java.lang.Override public double getEngagementRate() { return engagementRate_; } public static final int ENGAGEMENTS_FIELD_NUMBER = 181; private long engagements_; /** *
   * The number of engagements.
   * An engagement occurs when a viewer expands your Lightbox ad. Also, in the
   * future, other ad types may support engagement metrics.
   * 
* * optional int64 engagements = 181; * @return Whether the engagements field is set. */ @java.lang.Override public boolean hasEngagements() { return ((bitField1_ & 0x04000000) != 0); } /** *
   * The number of engagements.
   * An engagement occurs when a viewer expands your Lightbox ad. Also, in the
   * future, other ad types may support engagement metrics.
   * 
* * optional int64 engagements = 181; * @return The engagements. */ @java.lang.Override public long getEngagements() { return engagements_; } public static final int HOTEL_AVERAGE_LEAD_VALUE_MICROS_FIELD_NUMBER = 213; private double hotelAverageLeadValueMicros_; /** *
   * Average lead value based on clicks.
   * 
* * optional double hotel_average_lead_value_micros = 213; * @return Whether the hotelAverageLeadValueMicros field is set. */ @java.lang.Override public boolean hasHotelAverageLeadValueMicros() { return ((bitField1_ & 0x08000000) != 0); } /** *
   * Average lead value based on clicks.
   * 
* * optional double hotel_average_lead_value_micros = 213; * @return The hotelAverageLeadValueMicros. */ @java.lang.Override public double getHotelAverageLeadValueMicros() { return hotelAverageLeadValueMicros_; } public static final int HOTEL_COMMISSION_RATE_MICROS_FIELD_NUMBER = 256; private long hotelCommissionRateMicros_; /** *
   * Commission bid rate in micros. A 20% commission is represented as
   * 200,000.
   * 
* * optional int64 hotel_commission_rate_micros = 256; * @return Whether the hotelCommissionRateMicros field is set. */ @java.lang.Override public boolean hasHotelCommissionRateMicros() { return ((bitField1_ & 0x10000000) != 0); } /** *
   * Commission bid rate in micros. A 20% commission is represented as
   * 200,000.
   * 
* * optional int64 hotel_commission_rate_micros = 256; * @return The hotelCommissionRateMicros. */ @java.lang.Override public long getHotelCommissionRateMicros() { return hotelCommissionRateMicros_; } public static final int HOTEL_EXPECTED_COMMISSION_COST_FIELD_NUMBER = 257; private double hotelExpectedCommissionCost_; /** *
   * Expected commission cost. The result of multiplying the commission value
   * times the hotel_commission_rate in advertiser currency.
   * 
* * optional double hotel_expected_commission_cost = 257; * @return Whether the hotelExpectedCommissionCost field is set. */ @java.lang.Override public boolean hasHotelExpectedCommissionCost() { return ((bitField1_ & 0x20000000) != 0); } /** *
   * Expected commission cost. The result of multiplying the commission value
   * times the hotel_commission_rate in advertiser currency.
   * 
* * optional double hotel_expected_commission_cost = 257; * @return The hotelExpectedCommissionCost. */ @java.lang.Override public double getHotelExpectedCommissionCost() { return hotelExpectedCommissionCost_; } public static final int HOTEL_PRICE_DIFFERENCE_PERCENTAGE_FIELD_NUMBER = 214; private double hotelPriceDifferencePercentage_; /** *
   * The average price difference between the price offered by reporting hotel
   * advertiser and the cheapest price offered by the competing advertiser.
   * 
* * optional double hotel_price_difference_percentage = 214; * @return Whether the hotelPriceDifferencePercentage field is set. */ @java.lang.Override public boolean hasHotelPriceDifferencePercentage() { return ((bitField1_ & 0x40000000) != 0); } /** *
   * The average price difference between the price offered by reporting hotel
   * advertiser and the cheapest price offered by the competing advertiser.
   * 
* * optional double hotel_price_difference_percentage = 214; * @return The hotelPriceDifferencePercentage. */ @java.lang.Override public double getHotelPriceDifferencePercentage() { return hotelPriceDifferencePercentage_; } public static final int HOTEL_ELIGIBLE_IMPRESSIONS_FIELD_NUMBER = 215; private long hotelEligibleImpressions_; /** *
   * The number of impressions that hotel partners could have had given their
   * feed performance.
   * 
* * optional int64 hotel_eligible_impressions = 215; * @return Whether the hotelEligibleImpressions field is set. */ @java.lang.Override public boolean hasHotelEligibleImpressions() { return ((bitField1_ & 0x80000000) != 0); } /** *
   * The number of impressions that hotel partners could have had given their
   * feed performance.
   * 
* * optional int64 hotel_eligible_impressions = 215; * @return The hotelEligibleImpressions. */ @java.lang.Override public long getHotelEligibleImpressions() { return hotelEligibleImpressions_; } public static final int HISTORICAL_CREATIVE_QUALITY_SCORE_FIELD_NUMBER = 80; private int historicalCreativeQualityScore_; /** *
   * The creative historical quality score.
   * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @return The enum numeric value on the wire for historicalCreativeQualityScore. */ @java.lang.Override public int getHistoricalCreativeQualityScoreValue() { return historicalCreativeQualityScore_; } /** *
   * The creative historical quality score.
   * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @return The historicalCreativeQualityScore. */ @java.lang.Override public com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalCreativeQualityScore() { @SuppressWarnings("deprecation") com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.valueOf(historicalCreativeQualityScore_); return result == null ? com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } public static final int HISTORICAL_LANDING_PAGE_QUALITY_SCORE_FIELD_NUMBER = 81; private int historicalLandingPageQualityScore_; /** *
   * The quality of historical landing page experience.
   * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @return The enum numeric value on the wire for historicalLandingPageQualityScore. */ @java.lang.Override public int getHistoricalLandingPageQualityScoreValue() { return historicalLandingPageQualityScore_; } /** *
   * The quality of historical landing page experience.
   * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @return The historicalLandingPageQualityScore. */ @java.lang.Override public com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalLandingPageQualityScore() { @SuppressWarnings("deprecation") com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.valueOf(historicalLandingPageQualityScore_); return result == null ? com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } public static final int HISTORICAL_QUALITY_SCORE_FIELD_NUMBER = 216; private long historicalQualityScore_; /** *
   * The historical quality score.
   * 
* * optional int64 historical_quality_score = 216; * @return Whether the historicalQualityScore field is set. */ @java.lang.Override public boolean hasHistoricalQualityScore() { return ((bitField2_ & 0x00000001) != 0); } /** *
   * The historical quality score.
   * 
* * optional int64 historical_quality_score = 216; * @return The historicalQualityScore. */ @java.lang.Override public long getHistoricalQualityScore() { return historicalQualityScore_; } public static final int HISTORICAL_SEARCH_PREDICTED_CTR_FIELD_NUMBER = 83; private int historicalSearchPredictedCtr_; /** *
   * The historical search predicted click through rate (CTR).
   * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @return The enum numeric value on the wire for historicalSearchPredictedCtr. */ @java.lang.Override public int getHistoricalSearchPredictedCtrValue() { return historicalSearchPredictedCtr_; } /** *
   * The historical search predicted click through rate (CTR).
   * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @return The historicalSearchPredictedCtr. */ @java.lang.Override public com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalSearchPredictedCtr() { @SuppressWarnings("deprecation") com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.valueOf(historicalSearchPredictedCtr_); return result == null ? com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } public static final int GMAIL_FORWARDS_FIELD_NUMBER = 217; private long gmailForwards_; /** *
   * The number of times the ad was forwarded to someone else as a message.
   * 
* * optional int64 gmail_forwards = 217; * @return Whether the gmailForwards field is set. */ @java.lang.Override public boolean hasGmailForwards() { return ((bitField2_ & 0x00000002) != 0); } /** *
   * The number of times the ad was forwarded to someone else as a message.
   * 
* * optional int64 gmail_forwards = 217; * @return The gmailForwards. */ @java.lang.Override public long getGmailForwards() { return gmailForwards_; } public static final int GMAIL_SAVES_FIELD_NUMBER = 218; private long gmailSaves_; /** *
   * The number of times someone has saved your Gmail ad to their inbox as a
   * message.
   * 
* * optional int64 gmail_saves = 218; * @return Whether the gmailSaves field is set. */ @java.lang.Override public boolean hasGmailSaves() { return ((bitField2_ & 0x00000004) != 0); } /** *
   * The number of times someone has saved your Gmail ad to their inbox as a
   * message.
   * 
* * optional int64 gmail_saves = 218; * @return The gmailSaves. */ @java.lang.Override public long getGmailSaves() { return gmailSaves_; } public static final int GMAIL_SECONDARY_CLICKS_FIELD_NUMBER = 219; private long gmailSecondaryClicks_; /** *
   * The number of clicks to the landing page on the expanded state of Gmail
   * ads.
   * 
* * optional int64 gmail_secondary_clicks = 219; * @return Whether the gmailSecondaryClicks field is set. */ @java.lang.Override public boolean hasGmailSecondaryClicks() { return ((bitField2_ & 0x00000008) != 0); } /** *
   * The number of clicks to the landing page on the expanded state of Gmail
   * ads.
   * 
* * optional int64 gmail_secondary_clicks = 219; * @return The gmailSecondaryClicks. */ @java.lang.Override public long getGmailSecondaryClicks() { return gmailSecondaryClicks_; } public static final int IMPRESSIONS_FROM_STORE_REACH_FIELD_NUMBER = 220; private long impressionsFromStoreReach_; /** *
   * The number of times a store's location-based ad was shown.
   * This metric applies to feed items only.
   * 
* * optional int64 impressions_from_store_reach = 220; * @return Whether the impressionsFromStoreReach field is set. */ @java.lang.Override public boolean hasImpressionsFromStoreReach() { return ((bitField2_ & 0x00000010) != 0); } /** *
   * The number of times a store's location-based ad was shown.
   * This metric applies to feed items only.
   * 
* * optional int64 impressions_from_store_reach = 220; * @return The impressionsFromStoreReach. */ @java.lang.Override public long getImpressionsFromStoreReach() { return impressionsFromStoreReach_; } public static final int IMPRESSIONS_FIELD_NUMBER = 221; private long impressions_; /** *
   * Count of how often your ad has appeared on a search results page or
   * website on the Google Network.
   * 
* * optional int64 impressions = 221; * @return Whether the impressions field is set. */ @java.lang.Override public boolean hasImpressions() { return ((bitField2_ & 0x00000020) != 0); } /** *
   * Count of how often your ad has appeared on a search results page or
   * website on the Google Network.
   * 
* * optional int64 impressions = 221; * @return The impressions. */ @java.lang.Override public long getImpressions() { return impressions_; } public static final int INTERACTION_RATE_FIELD_NUMBER = 222; private double interactionRate_; /** *
   * How often people interact with your ad after it is shown to them.
   * This is the number of interactions divided by the number of times your ad
   * is shown.
   * 
* * optional double interaction_rate = 222; * @return Whether the interactionRate field is set. */ @java.lang.Override public boolean hasInteractionRate() { return ((bitField2_ & 0x00000040) != 0); } /** *
   * How often people interact with your ad after it is shown to them.
   * This is the number of interactions divided by the number of times your ad
   * is shown.
   * 
* * optional double interaction_rate = 222; * @return The interactionRate. */ @java.lang.Override public double getInteractionRate() { return interactionRate_; } public static final int INTERACTIONS_FIELD_NUMBER = 223; private long interactions_; /** *
   * The number of interactions.
   * An interaction is the main user action associated with an ad format-clicks
   * for text and shopping ads, views for video ads, and so on.
   * 
* * optional int64 interactions = 223; * @return Whether the interactions field is set. */ @java.lang.Override public boolean hasInteractions() { return ((bitField2_ & 0x00000080) != 0); } /** *
   * The number of interactions.
   * An interaction is the main user action associated with an ad format-clicks
   * for text and shopping ads, views for video ads, and so on.
   * 
* * optional int64 interactions = 223; * @return The interactions. */ @java.lang.Override public long getInteractions() { return interactions_; } public static final int INTERACTION_EVENT_TYPES_FIELD_NUMBER = 100; private java.util.List interactionEventTypes_; private static final com.google.protobuf.Internal.ListAdapter.Converter< java.lang.Integer, com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType> interactionEventTypes_converter_ = new com.google.protobuf.Internal.ListAdapter.Converter< java.lang.Integer, com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType>() { public com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType convert(java.lang.Integer from) { @SuppressWarnings("deprecation") com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType result = com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType.valueOf(from); return result == null ? com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType.UNRECOGNIZED : result; } }; /** *
   * The types of payable and free interactions.
   * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return A list containing the interactionEventTypes. */ @java.lang.Override public java.util.List getInteractionEventTypesList() { return new com.google.protobuf.Internal.ListAdapter< java.lang.Integer, com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType>(interactionEventTypes_, interactionEventTypes_converter_); } /** *
   * The types of payable and free interactions.
   * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return The count of interactionEventTypes. */ @java.lang.Override public int getInteractionEventTypesCount() { return interactionEventTypes_.size(); } /** *
   * The types of payable and free interactions.
   * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param index The index of the element to return. * @return The interactionEventTypes at the given index. */ @java.lang.Override public com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType getInteractionEventTypes(int index) { return interactionEventTypes_converter_.convert(interactionEventTypes_.get(index)); } /** *
   * The types of payable and free interactions.
   * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return A list containing the enum numeric values on the wire for interactionEventTypes. */ @java.lang.Override public java.util.List getInteractionEventTypesValueList() { return interactionEventTypes_; } /** *
   * The types of payable and free interactions.
   * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param index The index of the value to return. * @return The enum numeric value on the wire of interactionEventTypes at the given index. */ @java.lang.Override public int getInteractionEventTypesValue(int index) { return interactionEventTypes_.get(index); } private int interactionEventTypesMemoizedSerializedSize; public static final int INVALID_CLICK_RATE_FIELD_NUMBER = 224; private double invalidClickRate_; /** *
   * The percentage of clicks filtered out of your total number of clicks
   * (filtered + non-filtered clicks) during the reporting period.
   * 
* * optional double invalid_click_rate = 224; * @return Whether the invalidClickRate field is set. */ @java.lang.Override public boolean hasInvalidClickRate() { return ((bitField2_ & 0x00000100) != 0); } /** *
   * The percentage of clicks filtered out of your total number of clicks
   * (filtered + non-filtered clicks) during the reporting period.
   * 
* * optional double invalid_click_rate = 224; * @return The invalidClickRate. */ @java.lang.Override public double getInvalidClickRate() { return invalidClickRate_; } public static final int INVALID_CLICKS_FIELD_NUMBER = 225; private long invalidClicks_; /** *
   * Number of clicks Google considers illegitimate and doesn't charge you for.
   * 
* * optional int64 invalid_clicks = 225; * @return Whether the invalidClicks field is set. */ @java.lang.Override public boolean hasInvalidClicks() { return ((bitField2_ & 0x00000200) != 0); } /** *
   * Number of clicks Google considers illegitimate and doesn't charge you for.
   * 
* * optional int64 invalid_clicks = 225; * @return The invalidClicks. */ @java.lang.Override public long getInvalidClicks() { return invalidClicks_; } public static final int MESSAGE_CHATS_FIELD_NUMBER = 226; private long messageChats_; /** *
   * Number of message chats initiated for Click To Message impressions that
   * were message tracking eligible.
   * 
* * optional int64 message_chats = 226; * @return Whether the messageChats field is set. */ @java.lang.Override public boolean hasMessageChats() { return ((bitField2_ & 0x00000400) != 0); } /** *
   * Number of message chats initiated for Click To Message impressions that
   * were message tracking eligible.
   * 
* * optional int64 message_chats = 226; * @return The messageChats. */ @java.lang.Override public long getMessageChats() { return messageChats_; } public static final int MESSAGE_IMPRESSIONS_FIELD_NUMBER = 227; private long messageImpressions_; /** *
   * Number of Click To Message impressions that were message tracking eligible.
   * 
* * optional int64 message_impressions = 227; * @return Whether the messageImpressions field is set. */ @java.lang.Override public boolean hasMessageImpressions() { return ((bitField2_ & 0x00000800) != 0); } /** *
   * Number of Click To Message impressions that were message tracking eligible.
   * 
* * optional int64 message_impressions = 227; * @return The messageImpressions. */ @java.lang.Override public long getMessageImpressions() { return messageImpressions_; } public static final int MESSAGE_CHAT_RATE_FIELD_NUMBER = 228; private double messageChatRate_; /** *
   * Number of message chats initiated (message_chats) divided by the number
   * of message impressions (message_impressions).
   * Rate at which a user initiates a message chat from an ad impression with
   * a messaging option and message tracking enabled.
   * Note that this rate can be more than 1.0 for a given message impression.
   * 
* * optional double message_chat_rate = 228; * @return Whether the messageChatRate field is set. */ @java.lang.Override public boolean hasMessageChatRate() { return ((bitField2_ & 0x00001000) != 0); } /** *
   * Number of message chats initiated (message_chats) divided by the number
   * of message impressions (message_impressions).
   * Rate at which a user initiates a message chat from an ad impression with
   * a messaging option and message tracking enabled.
   * Note that this rate can be more than 1.0 for a given message impression.
   * 
* * optional double message_chat_rate = 228; * @return The messageChatRate. */ @java.lang.Override public double getMessageChatRate() { return messageChatRate_; } public static final int MOBILE_FRIENDLY_CLICKS_PERCENTAGE_FIELD_NUMBER = 229; private double mobileFriendlyClicksPercentage_; /** *
   * The percentage of mobile clicks that go to a mobile-friendly page.
   * 
* * optional double mobile_friendly_clicks_percentage = 229; * @return Whether the mobileFriendlyClicksPercentage field is set. */ @java.lang.Override public boolean hasMobileFriendlyClicksPercentage() { return ((bitField2_ & 0x00002000) != 0); } /** *
   * The percentage of mobile clicks that go to a mobile-friendly page.
   * 
* * optional double mobile_friendly_clicks_percentage = 229; * @return The mobileFriendlyClicksPercentage. */ @java.lang.Override public double getMobileFriendlyClicksPercentage() { return mobileFriendlyClicksPercentage_; } public static final int OPTIMIZATION_SCORE_UPLIFT_FIELD_NUMBER = 247; private double optimizationScoreUplift_; /** *
   * Total optimization score uplift of all recommendations.
   * 
* * optional double optimization_score_uplift = 247; * @return Whether the optimizationScoreUplift field is set. */ @java.lang.Override public boolean hasOptimizationScoreUplift() { return ((bitField2_ & 0x00004000) != 0); } /** *
   * Total optimization score uplift of all recommendations.
   * 
* * optional double optimization_score_uplift = 247; * @return The optimizationScoreUplift. */ @java.lang.Override public double getOptimizationScoreUplift() { return optimizationScoreUplift_; } public static final int OPTIMIZATION_SCORE_URL_FIELD_NUMBER = 248; private volatile java.lang.Object optimizationScoreUrl_; /** *
   * URL for the optimization score page in the Google Ads web interface.
   * This metric can be selected from `customer` or `campaign`, and can be
   * segmented by `segments.recommendation_type`. For example, `SELECT
   * metrics.optimization_score_url, segments.recommendation_type FROM
   * customer` will return a URL for each unique (customer, recommendation_type)
   * combination.
   * 
* * optional string optimization_score_url = 248; * @return Whether the optimizationScoreUrl field is set. */ @java.lang.Override public boolean hasOptimizationScoreUrl() { return ((bitField2_ & 0x00008000) != 0); } /** *
   * URL for the optimization score page in the Google Ads web interface.
   * This metric can be selected from `customer` or `campaign`, and can be
   * segmented by `segments.recommendation_type`. For example, `SELECT
   * metrics.optimization_score_url, segments.recommendation_type FROM
   * customer` will return a URL for each unique (customer, recommendation_type)
   * combination.
   * 
* * optional string optimization_score_url = 248; * @return The optimizationScoreUrl. */ @java.lang.Override public java.lang.String getOptimizationScoreUrl() { java.lang.Object ref = optimizationScoreUrl_; 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(); optimizationScoreUrl_ = s; return s; } } /** *
   * URL for the optimization score page in the Google Ads web interface.
   * This metric can be selected from `customer` or `campaign`, and can be
   * segmented by `segments.recommendation_type`. For example, `SELECT
   * metrics.optimization_score_url, segments.recommendation_type FROM
   * customer` will return a URL for each unique (customer, recommendation_type)
   * combination.
   * 
* * optional string optimization_score_url = 248; * @return The bytes for optimizationScoreUrl. */ @java.lang.Override public com.google.protobuf.ByteString getOptimizationScoreUrlBytes() { java.lang.Object ref = optimizationScoreUrl_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); optimizationScoreUrl_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int ORGANIC_CLICKS_FIELD_NUMBER = 230; private long organicClicks_; /** *
   * The number of times someone clicked your site's listing in the unpaid
   * results for a particular query. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 organic_clicks = 230; * @return Whether the organicClicks field is set. */ @java.lang.Override public boolean hasOrganicClicks() { return ((bitField2_ & 0x00010000) != 0); } /** *
   * The number of times someone clicked your site's listing in the unpaid
   * results for a particular query. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 organic_clicks = 230; * @return The organicClicks. */ @java.lang.Override public long getOrganicClicks() { return organicClicks_; } public static final int ORGANIC_CLICKS_PER_QUERY_FIELD_NUMBER = 231; private double organicClicksPerQuery_; /** *
   * The number of times someone clicked your site's listing in the unpaid
   * results (organic_clicks) divided by the total number of searches that
   * returned pages from your site (organic_queries). See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional double organic_clicks_per_query = 231; * @return Whether the organicClicksPerQuery field is set. */ @java.lang.Override public boolean hasOrganicClicksPerQuery() { return ((bitField2_ & 0x00020000) != 0); } /** *
   * The number of times someone clicked your site's listing in the unpaid
   * results (organic_clicks) divided by the total number of searches that
   * returned pages from your site (organic_queries). See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional double organic_clicks_per_query = 231; * @return The organicClicksPerQuery. */ @java.lang.Override public double getOrganicClicksPerQuery() { return organicClicksPerQuery_; } public static final int ORGANIC_IMPRESSIONS_FIELD_NUMBER = 232; private long organicImpressions_; /** *
   * The number of listings for your site in the unpaid search results. See the
   * help page at https://support.google.com/google-ads/answer/3097241 for
   * details.
   * 
* * optional int64 organic_impressions = 232; * @return Whether the organicImpressions field is set. */ @java.lang.Override public boolean hasOrganicImpressions() { return ((bitField2_ & 0x00040000) != 0); } /** *
   * The number of listings for your site in the unpaid search results. See the
   * help page at https://support.google.com/google-ads/answer/3097241 for
   * details.
   * 
* * optional int64 organic_impressions = 232; * @return The organicImpressions. */ @java.lang.Override public long getOrganicImpressions() { return organicImpressions_; } public static final int ORGANIC_IMPRESSIONS_PER_QUERY_FIELD_NUMBER = 233; private double organicImpressionsPerQuery_; /** *
   * The number of times a page from your site was listed in the unpaid search
   * results (organic_impressions) divided by the number of searches returning
   * your site's listing in the unpaid results (organic_queries). See the help
   * page at https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional double organic_impressions_per_query = 233; * @return Whether the organicImpressionsPerQuery field is set. */ @java.lang.Override public boolean hasOrganicImpressionsPerQuery() { return ((bitField2_ & 0x00080000) != 0); } /** *
   * The number of times a page from your site was listed in the unpaid search
   * results (organic_impressions) divided by the number of searches returning
   * your site's listing in the unpaid results (organic_queries). See the help
   * page at https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional double organic_impressions_per_query = 233; * @return The organicImpressionsPerQuery. */ @java.lang.Override public double getOrganicImpressionsPerQuery() { return organicImpressionsPerQuery_; } public static final int ORGANIC_QUERIES_FIELD_NUMBER = 234; private long organicQueries_; /** *
   * The total number of searches that returned your site's listing in the
   * unpaid results. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 organic_queries = 234; * @return Whether the organicQueries field is set. */ @java.lang.Override public boolean hasOrganicQueries() { return ((bitField2_ & 0x00100000) != 0); } /** *
   * The total number of searches that returned your site's listing in the
   * unpaid results. See the help page at
   * https://support.google.com/google-ads/answer/3097241 for details.
   * 
* * optional int64 organic_queries = 234; * @return The organicQueries. */ @java.lang.Override public long getOrganicQueries() { return organicQueries_; } public static final int PERCENT_NEW_VISITORS_FIELD_NUMBER = 235; private double percentNewVisitors_; /** *
   * Percentage of first-time sessions (from people who had never visited your
   * site before). Imported from Google Analytics.
   * 
* * optional double percent_new_visitors = 235; * @return Whether the percentNewVisitors field is set. */ @java.lang.Override public boolean hasPercentNewVisitors() { return ((bitField2_ & 0x00200000) != 0); } /** *
   * Percentage of first-time sessions (from people who had never visited your
   * site before). Imported from Google Analytics.
   * 
* * optional double percent_new_visitors = 235; * @return The percentNewVisitors. */ @java.lang.Override public double getPercentNewVisitors() { return percentNewVisitors_; } public static final int PHONE_CALLS_FIELD_NUMBER = 236; private long phoneCalls_; /** *
   * Number of offline phone calls.
   * 
* * optional int64 phone_calls = 236; * @return Whether the phoneCalls field is set. */ @java.lang.Override public boolean hasPhoneCalls() { return ((bitField2_ & 0x00400000) != 0); } /** *
   * Number of offline phone calls.
   * 
* * optional int64 phone_calls = 236; * @return The phoneCalls. */ @java.lang.Override public long getPhoneCalls() { return phoneCalls_; } public static final int PHONE_IMPRESSIONS_FIELD_NUMBER = 237; private long phoneImpressions_; /** *
   * Number of offline phone impressions.
   * 
* * optional int64 phone_impressions = 237; * @return Whether the phoneImpressions field is set. */ @java.lang.Override public boolean hasPhoneImpressions() { return ((bitField2_ & 0x00800000) != 0); } /** *
   * Number of offline phone impressions.
   * 
* * optional int64 phone_impressions = 237; * @return The phoneImpressions. */ @java.lang.Override public long getPhoneImpressions() { return phoneImpressions_; } public static final int PHONE_THROUGH_RATE_FIELD_NUMBER = 238; private double phoneThroughRate_; /** *
   * Number of phone calls received (phone_calls) divided by the number of
   * times your phone number is shown (phone_impressions).
   * 
* * optional double phone_through_rate = 238; * @return Whether the phoneThroughRate field is set. */ @java.lang.Override public boolean hasPhoneThroughRate() { return ((bitField2_ & 0x01000000) != 0); } /** *
   * Number of phone calls received (phone_calls) divided by the number of
   * times your phone number is shown (phone_impressions).
   * 
* * optional double phone_through_rate = 238; * @return The phoneThroughRate. */ @java.lang.Override public double getPhoneThroughRate() { return phoneThroughRate_; } public static final int RELATIVE_CTR_FIELD_NUMBER = 239; private double relativeCtr_; /** *
   * Your clickthrough rate (Ctr) divided by the average clickthrough rate of
   * all advertisers on the websites that show your ads. Measures how your ads
   * perform on Display Network sites compared to other ads on the same sites.
   * 
* * optional double relative_ctr = 239; * @return Whether the relativeCtr field is set. */ @java.lang.Override public boolean hasRelativeCtr() { return ((bitField2_ & 0x02000000) != 0); } /** *
   * Your clickthrough rate (Ctr) divided by the average clickthrough rate of
   * all advertisers on the websites that show your ads. Measures how your ads
   * perform on Display Network sites compared to other ads on the same sites.
   * 
* * optional double relative_ctr = 239; * @return The relativeCtr. */ @java.lang.Override public double getRelativeCtr() { return relativeCtr_; } public static final int SEARCH_ABSOLUTE_TOP_IMPRESSION_SHARE_FIELD_NUMBER = 136; private double searchAbsoluteTopImpressionShare_; /** *
   * The percentage of the customer's Shopping or Search ad impressions that are
   * shown in the most prominent Shopping position. See
   * https://support.google.com/google-ads/answer/7501826
   * for details. Any value below 0.1 is reported as 0.0999.
   * 
* * optional double search_absolute_top_impression_share = 136; * @return Whether the searchAbsoluteTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchAbsoluteTopImpressionShare() { return ((bitField2_ & 0x04000000) != 0); } /** *
   * The percentage of the customer's Shopping or Search ad impressions that are
   * shown in the most prominent Shopping position. See
   * https://support.google.com/google-ads/answer/7501826
   * for details. Any value below 0.1 is reported as 0.0999.
   * 
* * optional double search_absolute_top_impression_share = 136; * @return The searchAbsoluteTopImpressionShare. */ @java.lang.Override public double getSearchAbsoluteTopImpressionShare() { return searchAbsoluteTopImpressionShare_; } public static final int SEARCH_BUDGET_LOST_ABSOLUTE_TOP_IMPRESSION_SHARE_FIELD_NUMBER = 137; private double searchBudgetLostAbsoluteTopImpressionShare_; /** *
   * The number estimating how often your ad wasn't the very first ad above the
   * organic search results due to a low budget. Note: Search
   * budget lost absolute top impression share is reported in the range of 0 to
   * 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_budget_lost_absolute_top_impression_share = 137; * @return Whether the searchBudgetLostAbsoluteTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchBudgetLostAbsoluteTopImpressionShare() { return ((bitField2_ & 0x08000000) != 0); } /** *
   * The number estimating how often your ad wasn't the very first ad above the
   * organic search results due to a low budget. Note: Search
   * budget lost absolute top impression share is reported in the range of 0 to
   * 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_budget_lost_absolute_top_impression_share = 137; * @return The searchBudgetLostAbsoluteTopImpressionShare. */ @java.lang.Override public double getSearchBudgetLostAbsoluteTopImpressionShare() { return searchBudgetLostAbsoluteTopImpressionShare_; } public static final int SEARCH_BUDGET_LOST_IMPRESSION_SHARE_FIELD_NUMBER = 138; private double searchBudgetLostImpressionShare_; /** *
   * The estimated percent of times that your ad was eligible to show on the
   * Search Network but didn't because your budget was too low. Note: Search
   * budget lost impression share is reported in the range of 0 to 0.9. Any
   * value above 0.9 is reported as 0.9001.
   * 
* * optional double search_budget_lost_impression_share = 138; * @return Whether the searchBudgetLostImpressionShare field is set. */ @java.lang.Override public boolean hasSearchBudgetLostImpressionShare() { return ((bitField2_ & 0x10000000) != 0); } /** *
   * The estimated percent of times that your ad was eligible to show on the
   * Search Network but didn't because your budget was too low. Note: Search
   * budget lost impression share is reported in the range of 0 to 0.9. Any
   * value above 0.9 is reported as 0.9001.
   * 
* * optional double search_budget_lost_impression_share = 138; * @return The searchBudgetLostImpressionShare. */ @java.lang.Override public double getSearchBudgetLostImpressionShare() { return searchBudgetLostImpressionShare_; } public static final int SEARCH_BUDGET_LOST_TOP_IMPRESSION_SHARE_FIELD_NUMBER = 139; private double searchBudgetLostTopImpressionShare_; /** *
   * The number estimating how often your ad didn't show anywhere above the
   * organic search results due to a low budget. Note: Search
   * budget lost top impression share is reported in the range of 0 to 0.9. Any
   * value above 0.9 is reported as 0.9001.
   * 
* * optional double search_budget_lost_top_impression_share = 139; * @return Whether the searchBudgetLostTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchBudgetLostTopImpressionShare() { return ((bitField2_ & 0x20000000) != 0); } /** *
   * The number estimating how often your ad didn't show anywhere above the
   * organic search results due to a low budget. Note: Search
   * budget lost top impression share is reported in the range of 0 to 0.9. Any
   * value above 0.9 is reported as 0.9001.
   * 
* * optional double search_budget_lost_top_impression_share = 139; * @return The searchBudgetLostTopImpressionShare. */ @java.lang.Override public double getSearchBudgetLostTopImpressionShare() { return searchBudgetLostTopImpressionShare_; } public static final int SEARCH_CLICK_SHARE_FIELD_NUMBER = 140; private double searchClickShare_; /** *
   * The number of clicks you've received on the Search Network
   * divided by the estimated number of clicks you were eligible to receive.
   * Note: Search click share is reported in the range of 0.1 to 1. Any value
   * below 0.1 is reported as 0.0999.
   * 
* * optional double search_click_share = 140; * @return Whether the searchClickShare field is set. */ @java.lang.Override public boolean hasSearchClickShare() { return ((bitField2_ & 0x40000000) != 0); } /** *
   * The number of clicks you've received on the Search Network
   * divided by the estimated number of clicks you were eligible to receive.
   * Note: Search click share is reported in the range of 0.1 to 1. Any value
   * below 0.1 is reported as 0.0999.
   * 
* * optional double search_click_share = 140; * @return The searchClickShare. */ @java.lang.Override public double getSearchClickShare() { return searchClickShare_; } public static final int SEARCH_EXACT_MATCH_IMPRESSION_SHARE_FIELD_NUMBER = 141; private double searchExactMatchImpressionShare_; /** *
   * The impressions you've received divided by the estimated number of
   * impressions you were eligible to receive on the Search Network for search
   * terms that matched your keywords exactly (or were close variants of your
   * keyword), regardless of your keyword match types. Note: Search exact match
   * impression share is reported in the range of 0.1 to 1. Any value below 0.1
   * is reported as 0.0999.
   * 
* * optional double search_exact_match_impression_share = 141; * @return Whether the searchExactMatchImpressionShare field is set. */ @java.lang.Override public boolean hasSearchExactMatchImpressionShare() { return ((bitField2_ & 0x80000000) != 0); } /** *
   * The impressions you've received divided by the estimated number of
   * impressions you were eligible to receive on the Search Network for search
   * terms that matched your keywords exactly (or were close variants of your
   * keyword), regardless of your keyword match types. Note: Search exact match
   * impression share is reported in the range of 0.1 to 1. Any value below 0.1
   * is reported as 0.0999.
   * 
* * optional double search_exact_match_impression_share = 141; * @return The searchExactMatchImpressionShare. */ @java.lang.Override public double getSearchExactMatchImpressionShare() { return searchExactMatchImpressionShare_; } public static final int SEARCH_IMPRESSION_SHARE_FIELD_NUMBER = 142; private double searchImpressionShare_; /** *
   * The impressions you've received on the Search Network divided
   * by the estimated number of impressions you were eligible to receive.
   * Note: Search impression share is reported in the range of 0.1 to 1. Any
   * value below 0.1 is reported as 0.0999.
   * 
* * optional double search_impression_share = 142; * @return Whether the searchImpressionShare field is set. */ @java.lang.Override public boolean hasSearchImpressionShare() { return ((bitField3_ & 0x00000001) != 0); } /** *
   * The impressions you've received on the Search Network divided
   * by the estimated number of impressions you were eligible to receive.
   * Note: Search impression share is reported in the range of 0.1 to 1. Any
   * value below 0.1 is reported as 0.0999.
   * 
* * optional double search_impression_share = 142; * @return The searchImpressionShare. */ @java.lang.Override public double getSearchImpressionShare() { return searchImpressionShare_; } public static final int SEARCH_RANK_LOST_ABSOLUTE_TOP_IMPRESSION_SHARE_FIELD_NUMBER = 143; private double searchRankLostAbsoluteTopImpressionShare_; /** *
   * The number estimating how often your ad wasn't the very first ad above the
   * organic search results due to poor Ad Rank.
   * Note: Search rank lost absolute top impression share is reported in the
   * range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_rank_lost_absolute_top_impression_share = 143; * @return Whether the searchRankLostAbsoluteTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchRankLostAbsoluteTopImpressionShare() { return ((bitField3_ & 0x00000002) != 0); } /** *
   * The number estimating how often your ad wasn't the very first ad above the
   * organic search results due to poor Ad Rank.
   * Note: Search rank lost absolute top impression share is reported in the
   * range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_rank_lost_absolute_top_impression_share = 143; * @return The searchRankLostAbsoluteTopImpressionShare. */ @java.lang.Override public double getSearchRankLostAbsoluteTopImpressionShare() { return searchRankLostAbsoluteTopImpressionShare_; } public static final int SEARCH_RANK_LOST_IMPRESSION_SHARE_FIELD_NUMBER = 144; private double searchRankLostImpressionShare_; /** *
   * The estimated percentage of impressions on the Search Network
   * that your ads didn't receive due to poor Ad Rank.
   * Note: Search rank lost impression share is reported in the range of 0 to
   * 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_rank_lost_impression_share = 144; * @return Whether the searchRankLostImpressionShare field is set. */ @java.lang.Override public boolean hasSearchRankLostImpressionShare() { return ((bitField3_ & 0x00000004) != 0); } /** *
   * The estimated percentage of impressions on the Search Network
   * that your ads didn't receive due to poor Ad Rank.
   * Note: Search rank lost impression share is reported in the range of 0 to
   * 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_rank_lost_impression_share = 144; * @return The searchRankLostImpressionShare. */ @java.lang.Override public double getSearchRankLostImpressionShare() { return searchRankLostImpressionShare_; } public static final int SEARCH_RANK_LOST_TOP_IMPRESSION_SHARE_FIELD_NUMBER = 145; private double searchRankLostTopImpressionShare_; /** *
   * The number estimating how often your ad didn't show anywhere above the
   * organic search results due to poor Ad Rank.
   * Note: Search rank lost top impression share is reported in the range of 0
   * to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_rank_lost_top_impression_share = 145; * @return Whether the searchRankLostTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchRankLostTopImpressionShare() { return ((bitField3_ & 0x00000008) != 0); } /** *
   * The number estimating how often your ad didn't show anywhere above the
   * organic search results due to poor Ad Rank.
   * Note: Search rank lost top impression share is reported in the range of 0
   * to 0.9. Any value above 0.9 is reported as 0.9001.
   * 
* * optional double search_rank_lost_top_impression_share = 145; * @return The searchRankLostTopImpressionShare. */ @java.lang.Override public double getSearchRankLostTopImpressionShare() { return searchRankLostTopImpressionShare_; } public static final int SEARCH_TOP_IMPRESSION_SHARE_FIELD_NUMBER = 146; private double searchTopImpressionShare_; /** *
   * The impressions you've received in the top location (anywhere above the
   * organic search results) compared to the estimated number of impressions you
   * were eligible to receive in the top location.
   * Note: Search top impression share is reported in the range of 0.1 to 1. Any
   * value below 0.1 is reported as 0.0999.
   * 
* * optional double search_top_impression_share = 146; * @return Whether the searchTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchTopImpressionShare() { return ((bitField3_ & 0x00000010) != 0); } /** *
   * The impressions you've received in the top location (anywhere above the
   * organic search results) compared to the estimated number of impressions you
   * were eligible to receive in the top location.
   * Note: Search top impression share is reported in the range of 0.1 to 1. Any
   * value below 0.1 is reported as 0.0999.
   * 
* * optional double search_top_impression_share = 146; * @return The searchTopImpressionShare. */ @java.lang.Override public double getSearchTopImpressionShare() { return searchTopImpressionShare_; } public static final int SPEED_SCORE_FIELD_NUMBER = 147; private long speedScore_; /** *
   * A measure of how quickly your page loads after clicks on your mobile ads.
   * The score is a range from 1 to 10, 10 being the fastest.
   * 
* * optional int64 speed_score = 147; * @return Whether the speedScore field is set. */ @java.lang.Override public boolean hasSpeedScore() { return ((bitField3_ & 0x00000020) != 0); } /** *
   * A measure of how quickly your page loads after clicks on your mobile ads.
   * The score is a range from 1 to 10, 10 being the fastest.
   * 
* * optional int64 speed_score = 147; * @return The speedScore. */ @java.lang.Override public long getSpeedScore() { return speedScore_; } public static final int TOP_IMPRESSION_PERCENTAGE_FIELD_NUMBER = 148; private double topImpressionPercentage_; /** *
   * The percent of your ad impressions that are shown anywhere above the
   * organic search results.
   * 
* * optional double top_impression_percentage = 148; * @return Whether the topImpressionPercentage field is set. */ @java.lang.Override public boolean hasTopImpressionPercentage() { return ((bitField3_ & 0x00000040) != 0); } /** *
   * The percent of your ad impressions that are shown anywhere above the
   * organic search results.
   * 
* * optional double top_impression_percentage = 148; * @return The topImpressionPercentage. */ @java.lang.Override public double getTopImpressionPercentage() { return topImpressionPercentage_; } public static final int VALID_ACCELERATED_MOBILE_PAGES_CLICKS_PERCENTAGE_FIELD_NUMBER = 149; private double validAcceleratedMobilePagesClicksPercentage_; /** *
   * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
   * that reach a valid AMP page.
   * 
* * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; * @return Whether the validAcceleratedMobilePagesClicksPercentage field is set. */ @java.lang.Override public boolean hasValidAcceleratedMobilePagesClicksPercentage() { return ((bitField3_ & 0x00000080) != 0); } /** *
   * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
   * that reach a valid AMP page.
   * 
* * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; * @return The validAcceleratedMobilePagesClicksPercentage. */ @java.lang.Override public double getValidAcceleratedMobilePagesClicksPercentage() { return validAcceleratedMobilePagesClicksPercentage_; } public static final int VALUE_PER_ALL_CONVERSIONS_FIELD_NUMBER = 150; private double valuePerAllConversions_; /** *
   * The value of all conversions divided by the number of all conversions.
   * 
* * optional double value_per_all_conversions = 150; * @return Whether the valuePerAllConversions field is set. */ @java.lang.Override public boolean hasValuePerAllConversions() { return ((bitField3_ & 0x00000100) != 0); } /** *
   * The value of all conversions divided by the number of all conversions.
   * 
* * optional double value_per_all_conversions = 150; * @return The valuePerAllConversions. */ @java.lang.Override public double getValuePerAllConversions() { return valuePerAllConversions_; } public static final int VALUE_PER_ALL_CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER = 244; private double valuePerAllConversionsByConversionDate_; /** *
   * The value of all conversions divided by the number of all conversions. When
   * this column is selected with date, the values in date column means the
   * conversion date. Details for the by_conversion_date columns are available
   * at https://support.google.com/google-ads/answer/9549009.
   * 
* * optional double value_per_all_conversions_by_conversion_date = 244; * @return Whether the valuePerAllConversionsByConversionDate field is set. */ @java.lang.Override public boolean hasValuePerAllConversionsByConversionDate() { return ((bitField3_ & 0x00000200) != 0); } /** *
   * The value of all conversions divided by the number of all conversions. When
   * this column is selected with date, the values in date column means the
   * conversion date. Details for the by_conversion_date columns are available
   * at https://support.google.com/google-ads/answer/9549009.
   * 
* * optional double value_per_all_conversions_by_conversion_date = 244; * @return The valuePerAllConversionsByConversionDate. */ @java.lang.Override public double getValuePerAllConversionsByConversionDate() { return valuePerAllConversionsByConversionDate_; } public static final int VALUE_PER_CONVERSION_FIELD_NUMBER = 151; private double valuePerConversion_; /** *
   * The value of conversions divided by the number of conversions. This only
   * includes conversion actions which include_in_conversions_metric attribute
   * is set to true. If you use conversion-based bidding, your bid strategies
   * will optimize for these conversions.
   * 
* * optional double value_per_conversion = 151; * @return Whether the valuePerConversion field is set. */ @java.lang.Override public boolean hasValuePerConversion() { return ((bitField3_ & 0x00000400) != 0); } /** *
   * The value of conversions divided by the number of conversions. This only
   * includes conversion actions which include_in_conversions_metric attribute
   * is set to true. If you use conversion-based bidding, your bid strategies
   * will optimize for these conversions.
   * 
* * optional double value_per_conversion = 151; * @return The valuePerConversion. */ @java.lang.Override public double getValuePerConversion() { return valuePerConversion_; } public static final int VALUE_PER_CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER = 245; private double valuePerConversionsByConversionDate_; /** *
   * The value of conversions divided by the number of conversions. This only
   * includes conversion actions which include_in_conversions_metric attribute
   * is set to true. If you use conversion-based bidding, your bid strategies
   * will optimize for these conversions. When this column is selected with
   * date, the values in date column means the conversion date. Details for the
   * by_conversion_date columns are available at
   * https://support.google.com/google-ads/answer/9549009.
   * 
* * optional double value_per_conversions_by_conversion_date = 245; * @return Whether the valuePerConversionsByConversionDate field is set. */ @java.lang.Override public boolean hasValuePerConversionsByConversionDate() { return ((bitField3_ & 0x00000800) != 0); } /** *
   * The value of conversions divided by the number of conversions. This only
   * includes conversion actions which include_in_conversions_metric attribute
   * is set to true. If you use conversion-based bidding, your bid strategies
   * will optimize for these conversions. When this column is selected with
   * date, the values in date column means the conversion date. Details for the
   * by_conversion_date columns are available at
   * https://support.google.com/google-ads/answer/9549009.
   * 
* * optional double value_per_conversions_by_conversion_date = 245; * @return The valuePerConversionsByConversionDate. */ @java.lang.Override public double getValuePerConversionsByConversionDate() { return valuePerConversionsByConversionDate_; } public static final int VALUE_PER_CURRENT_MODEL_ATTRIBUTED_CONVERSION_FIELD_NUMBER = 152; private double valuePerCurrentModelAttributedConversion_; /** *
   * The value of current model attributed conversions divided by the number of
   * the conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double value_per_current_model_attributed_conversion = 152; * @return Whether the valuePerCurrentModelAttributedConversion field is set. */ @java.lang.Override public boolean hasValuePerCurrentModelAttributedConversion() { return ((bitField3_ & 0x00001000) != 0); } /** *
   * The value of current model attributed conversions divided by the number of
   * the conversions. This only includes conversion actions which
   * include_in_conversions_metric attribute is set to true. If you use
   * conversion-based bidding, your bid strategies will optimize for these
   * conversions.
   * 
* * optional double value_per_current_model_attributed_conversion = 152; * @return The valuePerCurrentModelAttributedConversion. */ @java.lang.Override public double getValuePerCurrentModelAttributedConversion() { return valuePerCurrentModelAttributedConversion_; } public static final int VIDEO_QUARTILE_P100_RATE_FIELD_NUMBER = 132; private double videoQuartileP100Rate_; /** *
   * Percentage of impressions where the viewer watched all of your video.
   * 
* * optional double video_quartile_p100_rate = 132; * @return Whether the videoQuartileP100Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP100Rate() { return ((bitField3_ & 0x00002000) != 0); } /** *
   * Percentage of impressions where the viewer watched all of your video.
   * 
* * optional double video_quartile_p100_rate = 132; * @return The videoQuartileP100Rate. */ @java.lang.Override public double getVideoQuartileP100Rate() { return videoQuartileP100Rate_; } public static final int VIDEO_QUARTILE_P25_RATE_FIELD_NUMBER = 133; private double videoQuartileP25Rate_; /** *
   * Percentage of impressions where the viewer watched 25% of your video.
   * 
* * optional double video_quartile_p25_rate = 133; * @return Whether the videoQuartileP25Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP25Rate() { return ((bitField3_ & 0x00004000) != 0); } /** *
   * Percentage of impressions where the viewer watched 25% of your video.
   * 
* * optional double video_quartile_p25_rate = 133; * @return The videoQuartileP25Rate. */ @java.lang.Override public double getVideoQuartileP25Rate() { return videoQuartileP25Rate_; } public static final int VIDEO_QUARTILE_P50_RATE_FIELD_NUMBER = 134; private double videoQuartileP50Rate_; /** *
   * Percentage of impressions where the viewer watched 50% of your video.
   * 
* * optional double video_quartile_p50_rate = 134; * @return Whether the videoQuartileP50Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP50Rate() { return ((bitField3_ & 0x00008000) != 0); } /** *
   * Percentage of impressions where the viewer watched 50% of your video.
   * 
* * optional double video_quartile_p50_rate = 134; * @return The videoQuartileP50Rate. */ @java.lang.Override public double getVideoQuartileP50Rate() { return videoQuartileP50Rate_; } public static final int VIDEO_QUARTILE_P75_RATE_FIELD_NUMBER = 135; private double videoQuartileP75Rate_; /** *
   * Percentage of impressions where the viewer watched 75% of your video.
   * 
* * optional double video_quartile_p75_rate = 135; * @return Whether the videoQuartileP75Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP75Rate() { return ((bitField3_ & 0x00010000) != 0); } /** *
   * Percentage of impressions where the viewer watched 75% of your video.
   * 
* * optional double video_quartile_p75_rate = 135; * @return The videoQuartileP75Rate. */ @java.lang.Override public double getVideoQuartileP75Rate() { return videoQuartileP75Rate_; } public static final int VIDEO_VIEW_RATE_FIELD_NUMBER = 153; private double videoViewRate_; /** *
   * The number of views your TrueView video ad receives divided by its number
   * of impressions, including thumbnail impressions for TrueView in-display
   * ads.
   * 
* * optional double video_view_rate = 153; * @return Whether the videoViewRate field is set. */ @java.lang.Override public boolean hasVideoViewRate() { return ((bitField3_ & 0x00020000) != 0); } /** *
   * The number of views your TrueView video ad receives divided by its number
   * of impressions, including thumbnail impressions for TrueView in-display
   * ads.
   * 
* * optional double video_view_rate = 153; * @return The videoViewRate. */ @java.lang.Override public double getVideoViewRate() { return videoViewRate_; } public static final int VIDEO_VIEWS_FIELD_NUMBER = 154; private long videoViews_; /** *
   * The number of times your video ads were viewed.
   * 
* * optional int64 video_views = 154; * @return Whether the videoViews field is set. */ @java.lang.Override public boolean hasVideoViews() { return ((bitField3_ & 0x00040000) != 0); } /** *
   * The number of times your video ads were viewed.
   * 
* * optional int64 video_views = 154; * @return The videoViews. */ @java.lang.Override public long getVideoViews() { return videoViews_; } public static final int VIEW_THROUGH_CONVERSIONS_FIELD_NUMBER = 155; private long viewThroughConversions_; /** *
   * The total number of view-through conversions.
   * These happen when a customer sees an image or rich media ad, then later
   * completes a conversion on your site without interacting with (for example,
   * clicking on) another ad.
   * 
* * optional int64 view_through_conversions = 155; * @return Whether the viewThroughConversions field is set. */ @java.lang.Override public boolean hasViewThroughConversions() { return ((bitField3_ & 0x00080000) != 0); } /** *
   * The total number of view-through conversions.
   * These happen when a customer sees an image or rich media ad, then later
   * completes a conversion on your site without interacting with (for example,
   * clicking on) another ad.
   * 
* * optional int64 view_through_conversions = 155; * @return The viewThroughConversions. */ @java.lang.Override public long getViewThroughConversions() { return viewThroughConversions_; } public static final int SK_AD_NETWORK_CONVERSIONS_FIELD_NUMBER = 246; private long skAdNetworkConversions_; /** *
   * The number of iOS Store Kit Ad Network conversions.
   * 
* * int64 sk_ad_network_conversions = 246; * @return The skAdNetworkConversions. */ @java.lang.Override public long getSkAdNetworkConversions() { return skAdNetworkConversions_; } 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 { getSerializedSize(); if (historicalCreativeQualityScore_ != com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { output.writeEnum(80, historicalCreativeQualityScore_); } if (historicalLandingPageQualityScore_ != com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { output.writeEnum(81, historicalLandingPageQualityScore_); } if (historicalSearchPredictedCtr_ != com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { output.writeEnum(83, historicalSearchPredictedCtr_); } if (getInteractionEventTypesList().size() > 0) { output.writeUInt32NoTag(802); output.writeUInt32NoTag(interactionEventTypesMemoizedSerializedSize); } for (int i = 0; i < interactionEventTypes_.size(); i++) { output.writeEnumNoTag(interactionEventTypes_.get(i)); } if (((bitField1_ & 0x00000001) != 0)) { output.writeInt64(131, clicks_); } if (((bitField3_ & 0x00002000) != 0)) { output.writeDouble(132, videoQuartileP100Rate_); } if (((bitField3_ & 0x00004000) != 0)) { output.writeDouble(133, videoQuartileP25Rate_); } if (((bitField3_ & 0x00008000) != 0)) { output.writeDouble(134, videoQuartileP50Rate_); } if (((bitField3_ & 0x00010000) != 0)) { output.writeDouble(135, videoQuartileP75Rate_); } if (((bitField2_ & 0x04000000) != 0)) { output.writeDouble(136, searchAbsoluteTopImpressionShare_); } if (((bitField2_ & 0x08000000) != 0)) { output.writeDouble(137, searchBudgetLostAbsoluteTopImpressionShare_); } if (((bitField2_ & 0x10000000) != 0)) { output.writeDouble(138, searchBudgetLostImpressionShare_); } if (((bitField2_ & 0x20000000) != 0)) { output.writeDouble(139, searchBudgetLostTopImpressionShare_); } if (((bitField2_ & 0x40000000) != 0)) { output.writeDouble(140, searchClickShare_); } if (((bitField2_ & 0x80000000) != 0)) { output.writeDouble(141, searchExactMatchImpressionShare_); } if (((bitField3_ & 0x00000001) != 0)) { output.writeDouble(142, searchImpressionShare_); } if (((bitField3_ & 0x00000002) != 0)) { output.writeDouble(143, searchRankLostAbsoluteTopImpressionShare_); } if (((bitField3_ & 0x00000004) != 0)) { output.writeDouble(144, searchRankLostImpressionShare_); } if (((bitField3_ & 0x00000008) != 0)) { output.writeDouble(145, searchRankLostTopImpressionShare_); } if (((bitField3_ & 0x00000010) != 0)) { output.writeDouble(146, searchTopImpressionShare_); } if (((bitField3_ & 0x00000020) != 0)) { output.writeInt64(147, speedScore_); } if (((bitField3_ & 0x00000040) != 0)) { output.writeDouble(148, topImpressionPercentage_); } if (((bitField3_ & 0x00000080) != 0)) { output.writeDouble(149, validAcceleratedMobilePagesClicksPercentage_); } if (((bitField3_ & 0x00000100) != 0)) { output.writeDouble(150, valuePerAllConversions_); } if (((bitField3_ & 0x00000400) != 0)) { output.writeDouble(151, valuePerConversion_); } if (((bitField3_ & 0x00001000) != 0)) { output.writeDouble(152, valuePerCurrentModelAttributedConversion_); } if (((bitField3_ & 0x00020000) != 0)) { output.writeDouble(153, videoViewRate_); } if (((bitField3_ & 0x00040000) != 0)) { output.writeInt64(154, videoViews_); } if (((bitField3_ & 0x00080000) != 0)) { output.writeInt64(155, viewThroughConversions_); } if (((bitField1_ & 0x00000002) != 0)) { output.writeInt64(156, combinedClicks_); } if (((bitField1_ & 0x00000004) != 0)) { output.writeDouble(157, combinedClicksPerQuery_); } if (((bitField1_ & 0x00000008) != 0)) { output.writeInt64(158, combinedQueries_); } if (((bitField1_ & 0x00000010) != 0)) { output.writeDouble(159, contentBudgetLostImpressionShare_); } if (((bitField1_ & 0x00000020) != 0)) { output.writeDouble(160, contentImpressionShare_); } if (((bitField1_ & 0x00000040) != 0)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 161, conversionLastReceivedRequestDateTime_); } if (((bitField1_ & 0x00000080) != 0)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 162, conversionLastConversionDate_); } if (((bitField1_ & 0x00000100) != 0)) { output.writeDouble(163, contentRankLostImpressionShare_); } if (((bitField1_ & 0x00000200) != 0)) { output.writeDouble(164, conversionsFromInteractionsRate_); } if (((bitField1_ & 0x00000400) != 0)) { output.writeDouble(165, conversionsValue_); } if (((bitField1_ & 0x00000800) != 0)) { output.writeDouble(166, conversionsValuePerCost_); } if (((bitField1_ & 0x00001000) != 0)) { output.writeDouble(167, conversionsFromInteractionsValuePerInteraction_); } if (((bitField1_ & 0x00002000) != 0)) { output.writeDouble(168, conversions_); } if (((bitField1_ & 0x00004000) != 0)) { output.writeInt64(169, costMicros_); } if (((bitField1_ & 0x00008000) != 0)) { output.writeDouble(170, costPerAllConversions_); } if (((bitField1_ & 0x00010000) != 0)) { output.writeDouble(171, costPerConversion_); } if (((bitField1_ & 0x00020000) != 0)) { output.writeDouble(172, costPerCurrentModelAttributedConversion_); } if (((bitField1_ & 0x00040000) != 0)) { output.writeDouble(173, crossDeviceConversions_); } if (((bitField1_ & 0x00080000) != 0)) { output.writeDouble(174, ctr_); } if (((bitField1_ & 0x00100000) != 0)) { output.writeDouble(175, currentModelAttributedConversions_); } if (((bitField1_ & 0x00200000) != 0)) { output.writeDouble(176, currentModelAttributedConversionsFromInteractionsRate_); } if (((bitField1_ & 0x00400000) != 0)) { output.writeDouble(177, currentModelAttributedConversionsFromInteractionsValuePerInteraction_); } if (((bitField1_ & 0x00800000) != 0)) { output.writeDouble(178, currentModelAttributedConversionsValue_); } if (((bitField1_ & 0x01000000) != 0)) { output.writeDouble(179, currentModelAttributedConversionsValuePerCost_); } if (((bitField1_ & 0x02000000) != 0)) { output.writeDouble(180, engagementRate_); } if (((bitField1_ & 0x04000000) != 0)) { output.writeInt64(181, engagements_); } if (((bitField0_ & 0x00000001) != 0)) { output.writeDouble(183, absoluteTopImpressionPercentage_); } if (((bitField0_ & 0x00000002) != 0)) { output.writeDouble(184, activeViewCpm_); } if (((bitField0_ & 0x00000004) != 0)) { output.writeDouble(185, activeViewCtr_); } if (((bitField0_ & 0x00000008) != 0)) { output.writeInt64(186, activeViewImpressions_); } if (((bitField0_ & 0x00000010) != 0)) { output.writeDouble(187, activeViewMeasurability_); } if (((bitField0_ & 0x00000020) != 0)) { output.writeInt64(188, activeViewMeasurableCostMicros_); } if (((bitField0_ & 0x00000040) != 0)) { output.writeInt64(189, activeViewMeasurableImpressions_); } if (((bitField0_ & 0x00000080) != 0)) { output.writeDouble(190, activeViewViewability_); } if (((bitField0_ & 0x00000100) != 0)) { output.writeDouble(191, allConversionsFromInteractionsRate_); } if (((bitField0_ & 0x00000200) != 0)) { output.writeDouble(192, allConversionsValue_); } if (((bitField0_ & 0x00000400) != 0)) { output.writeDouble(193, allConversions_); } if (((bitField0_ & 0x00000800) != 0)) { output.writeDouble(194, allConversionsValuePerCost_); } if (((bitField0_ & 0x00001000) != 0)) { output.writeDouble(195, allConversionsFromClickToCall_); } if (((bitField0_ & 0x00002000) != 0)) { output.writeDouble(196, allConversionsFromDirections_); } if (((bitField0_ & 0x00004000) != 0)) { output.writeDouble(197, allConversionsFromInteractionsValuePerInteraction_); } if (((bitField0_ & 0x00008000) != 0)) { output.writeDouble(198, allConversionsFromMenu_); } if (((bitField0_ & 0x00010000) != 0)) { output.writeDouble(199, allConversionsFromOrder_); } if (((bitField0_ & 0x00020000) != 0)) { output.writeDouble(200, allConversionsFromOtherEngagement_); } if (((bitField0_ & 0x00040000) != 0)) { output.writeDouble(201, allConversionsFromStoreVisit_); } if (((bitField0_ & 0x00080000) != 0)) { output.writeDouble(202, allConversionsFromStoreWebsite_); } if (((bitField0_ & 0x00100000) != 0)) { output.writeDouble(203, averageCost_); } if (((bitField0_ & 0x00200000) != 0)) { output.writeDouble(204, averageCpc_); } if (((bitField0_ & 0x00400000) != 0)) { output.writeDouble(205, averageCpe_); } if (((bitField0_ & 0x00800000) != 0)) { output.writeDouble(206, averageCpm_); } if (((bitField0_ & 0x01000000) != 0)) { output.writeDouble(207, averageCpv_); } if (((bitField0_ & 0x02000000) != 0)) { output.writeDouble(208, averagePageViews_); } if (((bitField0_ & 0x04000000) != 0)) { output.writeDouble(209, averageTimeOnSite_); } if (((bitField0_ & 0x08000000) != 0)) { output.writeDouble(210, benchmarkAverageMaxCpc_); } if (((bitField0_ & 0x40000000) != 0)) { output.writeDouble(211, benchmarkCtr_); } if (((bitField0_ & 0x80000000) != 0)) { output.writeDouble(212, bounceRate_); } if (((bitField1_ & 0x08000000) != 0)) { output.writeDouble(213, hotelAverageLeadValueMicros_); } if (((bitField1_ & 0x40000000) != 0)) { output.writeDouble(214, hotelPriceDifferencePercentage_); } if (((bitField1_ & 0x80000000) != 0)) { output.writeInt64(215, hotelEligibleImpressions_); } if (((bitField2_ & 0x00000001) != 0)) { output.writeInt64(216, historicalQualityScore_); } if (((bitField2_ & 0x00000002) != 0)) { output.writeInt64(217, gmailForwards_); } if (((bitField2_ & 0x00000004) != 0)) { output.writeInt64(218, gmailSaves_); } if (((bitField2_ & 0x00000008) != 0)) { output.writeInt64(219, gmailSecondaryClicks_); } if (((bitField2_ & 0x00000010) != 0)) { output.writeInt64(220, impressionsFromStoreReach_); } if (((bitField2_ & 0x00000020) != 0)) { output.writeInt64(221, impressions_); } if (((bitField2_ & 0x00000040) != 0)) { output.writeDouble(222, interactionRate_); } if (((bitField2_ & 0x00000080) != 0)) { output.writeInt64(223, interactions_); } if (((bitField2_ & 0x00000100) != 0)) { output.writeDouble(224, invalidClickRate_); } if (((bitField2_ & 0x00000200) != 0)) { output.writeInt64(225, invalidClicks_); } if (((bitField2_ & 0x00000400) != 0)) { output.writeInt64(226, messageChats_); } if (((bitField2_ & 0x00000800) != 0)) { output.writeInt64(227, messageImpressions_); } if (((bitField2_ & 0x00001000) != 0)) { output.writeDouble(228, messageChatRate_); } if (((bitField2_ & 0x00002000) != 0)) { output.writeDouble(229, mobileFriendlyClicksPercentage_); } if (((bitField2_ & 0x00010000) != 0)) { output.writeInt64(230, organicClicks_); } if (((bitField2_ & 0x00020000) != 0)) { output.writeDouble(231, organicClicksPerQuery_); } if (((bitField2_ & 0x00040000) != 0)) { output.writeInt64(232, organicImpressions_); } if (((bitField2_ & 0x00080000) != 0)) { output.writeDouble(233, organicImpressionsPerQuery_); } if (((bitField2_ & 0x00100000) != 0)) { output.writeInt64(234, organicQueries_); } if (((bitField2_ & 0x00200000) != 0)) { output.writeDouble(235, percentNewVisitors_); } if (((bitField2_ & 0x00400000) != 0)) { output.writeInt64(236, phoneCalls_); } if (((bitField2_ & 0x00800000) != 0)) { output.writeInt64(237, phoneImpressions_); } if (((bitField2_ & 0x01000000) != 0)) { output.writeDouble(238, phoneThroughRate_); } if (((bitField2_ & 0x02000000) != 0)) { output.writeDouble(239, relativeCtr_); } if (java.lang.Double.doubleToRawLongBits(allConversionsValueByConversionDate_) != 0) { output.writeDouble(240, allConversionsValueByConversionDate_); } if (java.lang.Double.doubleToRawLongBits(allConversionsByConversionDate_) != 0) { output.writeDouble(241, allConversionsByConversionDate_); } if (java.lang.Double.doubleToRawLongBits(conversionsValueByConversionDate_) != 0) { output.writeDouble(242, conversionsValueByConversionDate_); } if (java.lang.Double.doubleToRawLongBits(conversionsByConversionDate_) != 0) { output.writeDouble(243, conversionsByConversionDate_); } if (((bitField3_ & 0x00000200) != 0)) { output.writeDouble(244, valuePerAllConversionsByConversionDate_); } if (((bitField3_ & 0x00000800) != 0)) { output.writeDouble(245, valuePerConversionsByConversionDate_); } if (skAdNetworkConversions_ != 0L) { output.writeInt64(246, skAdNetworkConversions_); } if (((bitField2_ & 0x00004000) != 0)) { output.writeDouble(247, optimizationScoreUplift_); } if (((bitField2_ & 0x00008000) != 0)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 248, optimizationScoreUrl_); } if (((bitField0_ & 0x10000000) != 0)) { output.writeDouble(254, biddableAppInstallConversions_); } if (((bitField0_ & 0x20000000) != 0)) { output.writeDouble(255, biddableAppPostInstallConversions_); } if (((bitField1_ & 0x10000000) != 0)) { output.writeInt64(256, hotelCommissionRateMicros_); } if (((bitField1_ & 0x20000000) != 0)) { output.writeDouble(257, hotelExpectedCommissionCost_); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (historicalCreativeQualityScore_ != com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(80, historicalCreativeQualityScore_); } if (historicalLandingPageQualityScore_ != com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(81, historicalLandingPageQualityScore_); } if (historicalSearchPredictedCtr_ != com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(83, historicalSearchPredictedCtr_); } { int dataSize = 0; for (int i = 0; i < interactionEventTypes_.size(); i++) { dataSize += com.google.protobuf.CodedOutputStream .computeEnumSizeNoTag(interactionEventTypes_.get(i)); } size += dataSize; if (!getInteractionEventTypesList().isEmpty()) { size += 2; size += com.google.protobuf.CodedOutputStream .computeUInt32SizeNoTag(dataSize); }interactionEventTypesMemoizedSerializedSize = dataSize; } if (((bitField1_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(131, clicks_); } if (((bitField3_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(132, videoQuartileP100Rate_); } if (((bitField3_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(133, videoQuartileP25Rate_); } if (((bitField3_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(134, videoQuartileP50Rate_); } if (((bitField3_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(135, videoQuartileP75Rate_); } if (((bitField2_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(136, searchAbsoluteTopImpressionShare_); } if (((bitField2_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(137, searchBudgetLostAbsoluteTopImpressionShare_); } if (((bitField2_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(138, searchBudgetLostImpressionShare_); } if (((bitField2_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(139, searchBudgetLostTopImpressionShare_); } if (((bitField2_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(140, searchClickShare_); } if (((bitField2_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(141, searchExactMatchImpressionShare_); } if (((bitField3_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(142, searchImpressionShare_); } if (((bitField3_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(143, searchRankLostAbsoluteTopImpressionShare_); } if (((bitField3_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(144, searchRankLostImpressionShare_); } if (((bitField3_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(145, searchRankLostTopImpressionShare_); } if (((bitField3_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(146, searchTopImpressionShare_); } if (((bitField3_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(147, speedScore_); } if (((bitField3_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(148, topImpressionPercentage_); } if (((bitField3_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(149, validAcceleratedMobilePagesClicksPercentage_); } if (((bitField3_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(150, valuePerAllConversions_); } if (((bitField3_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(151, valuePerConversion_); } if (((bitField3_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(152, valuePerCurrentModelAttributedConversion_); } if (((bitField3_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(153, videoViewRate_); } if (((bitField3_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(154, videoViews_); } if (((bitField3_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(155, viewThroughConversions_); } if (((bitField1_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(156, combinedClicks_); } if (((bitField1_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(157, combinedClicksPerQuery_); } if (((bitField1_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(158, combinedQueries_); } if (((bitField1_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(159, contentBudgetLostImpressionShare_); } if (((bitField1_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(160, contentImpressionShare_); } if (((bitField1_ & 0x00000040) != 0)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(161, conversionLastReceivedRequestDateTime_); } if (((bitField1_ & 0x00000080) != 0)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(162, conversionLastConversionDate_); } if (((bitField1_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(163, contentRankLostImpressionShare_); } if (((bitField1_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(164, conversionsFromInteractionsRate_); } if (((bitField1_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(165, conversionsValue_); } if (((bitField1_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(166, conversionsValuePerCost_); } if (((bitField1_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(167, conversionsFromInteractionsValuePerInteraction_); } if (((bitField1_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(168, conversions_); } if (((bitField1_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(169, costMicros_); } if (((bitField1_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(170, costPerAllConversions_); } if (((bitField1_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(171, costPerConversion_); } if (((bitField1_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(172, costPerCurrentModelAttributedConversion_); } if (((bitField1_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(173, crossDeviceConversions_); } if (((bitField1_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(174, ctr_); } if (((bitField1_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(175, currentModelAttributedConversions_); } if (((bitField1_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(176, currentModelAttributedConversionsFromInteractionsRate_); } if (((bitField1_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(177, currentModelAttributedConversionsFromInteractionsValuePerInteraction_); } if (((bitField1_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(178, currentModelAttributedConversionsValue_); } if (((bitField1_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(179, currentModelAttributedConversionsValuePerCost_); } if (((bitField1_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(180, engagementRate_); } if (((bitField1_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(181, engagements_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(183, absoluteTopImpressionPercentage_); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(184, activeViewCpm_); } if (((bitField0_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(185, activeViewCtr_); } if (((bitField0_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(186, activeViewImpressions_); } if (((bitField0_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(187, activeViewMeasurability_); } if (((bitField0_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(188, activeViewMeasurableCostMicros_); } if (((bitField0_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(189, activeViewMeasurableImpressions_); } if (((bitField0_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(190, activeViewViewability_); } if (((bitField0_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(191, allConversionsFromInteractionsRate_); } if (((bitField0_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(192, allConversionsValue_); } if (((bitField0_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(193, allConversions_); } if (((bitField0_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(194, allConversionsValuePerCost_); } if (((bitField0_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(195, allConversionsFromClickToCall_); } if (((bitField0_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(196, allConversionsFromDirections_); } if (((bitField0_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(197, allConversionsFromInteractionsValuePerInteraction_); } if (((bitField0_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(198, allConversionsFromMenu_); } if (((bitField0_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(199, allConversionsFromOrder_); } if (((bitField0_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(200, allConversionsFromOtherEngagement_); } if (((bitField0_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(201, allConversionsFromStoreVisit_); } if (((bitField0_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(202, allConversionsFromStoreWebsite_); } if (((bitField0_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(203, averageCost_); } if (((bitField0_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(204, averageCpc_); } if (((bitField0_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(205, averageCpe_); } if (((bitField0_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(206, averageCpm_); } if (((bitField0_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(207, averageCpv_); } if (((bitField0_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(208, averagePageViews_); } if (((bitField0_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(209, averageTimeOnSite_); } if (((bitField0_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(210, benchmarkAverageMaxCpc_); } if (((bitField0_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(211, benchmarkCtr_); } if (((bitField0_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(212, bounceRate_); } if (((bitField1_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(213, hotelAverageLeadValueMicros_); } if (((bitField1_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(214, hotelPriceDifferencePercentage_); } if (((bitField1_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(215, hotelEligibleImpressions_); } if (((bitField2_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(216, historicalQualityScore_); } if (((bitField2_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(217, gmailForwards_); } if (((bitField2_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(218, gmailSaves_); } if (((bitField2_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(219, gmailSecondaryClicks_); } if (((bitField2_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(220, impressionsFromStoreReach_); } if (((bitField2_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(221, impressions_); } if (((bitField2_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(222, interactionRate_); } if (((bitField2_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(223, interactions_); } if (((bitField2_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(224, invalidClickRate_); } if (((bitField2_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(225, invalidClicks_); } if (((bitField2_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(226, messageChats_); } if (((bitField2_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(227, messageImpressions_); } if (((bitField2_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(228, messageChatRate_); } if (((bitField2_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(229, mobileFriendlyClicksPercentage_); } if (((bitField2_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(230, organicClicks_); } if (((bitField2_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(231, organicClicksPerQuery_); } if (((bitField2_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(232, organicImpressions_); } if (((bitField2_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(233, organicImpressionsPerQuery_); } if (((bitField2_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(234, organicQueries_); } if (((bitField2_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(235, percentNewVisitors_); } if (((bitField2_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(236, phoneCalls_); } if (((bitField2_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(237, phoneImpressions_); } if (((bitField2_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(238, phoneThroughRate_); } if (((bitField2_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(239, relativeCtr_); } if (java.lang.Double.doubleToRawLongBits(allConversionsValueByConversionDate_) != 0) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(240, allConversionsValueByConversionDate_); } if (java.lang.Double.doubleToRawLongBits(allConversionsByConversionDate_) != 0) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(241, allConversionsByConversionDate_); } if (java.lang.Double.doubleToRawLongBits(conversionsValueByConversionDate_) != 0) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(242, conversionsValueByConversionDate_); } if (java.lang.Double.doubleToRawLongBits(conversionsByConversionDate_) != 0) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(243, conversionsByConversionDate_); } if (((bitField3_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(244, valuePerAllConversionsByConversionDate_); } if (((bitField3_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(245, valuePerConversionsByConversionDate_); } if (skAdNetworkConversions_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(246, skAdNetworkConversions_); } if (((bitField2_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(247, optimizationScoreUplift_); } if (((bitField2_ & 0x00008000) != 0)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(248, optimizationScoreUrl_); } if (((bitField0_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(254, biddableAppInstallConversions_); } if (((bitField0_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(255, biddableAppPostInstallConversions_); } if (((bitField1_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(256, hotelCommissionRateMicros_); } if (((bitField1_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(257, hotelExpectedCommissionCost_); } 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.ads.googleads.v10.common.Metrics)) { return super.equals(obj); } com.google.ads.googleads.v10.common.Metrics other = (com.google.ads.googleads.v10.common.Metrics) obj; if (hasAbsoluteTopImpressionPercentage() != other.hasAbsoluteTopImpressionPercentage()) return false; if (hasAbsoluteTopImpressionPercentage()) { if (java.lang.Double.doubleToLongBits(getAbsoluteTopImpressionPercentage()) != java.lang.Double.doubleToLongBits( other.getAbsoluteTopImpressionPercentage())) return false; } if (hasActiveViewCpm() != other.hasActiveViewCpm()) return false; if (hasActiveViewCpm()) { if (java.lang.Double.doubleToLongBits(getActiveViewCpm()) != java.lang.Double.doubleToLongBits( other.getActiveViewCpm())) return false; } if (hasActiveViewCtr() != other.hasActiveViewCtr()) return false; if (hasActiveViewCtr()) { if (java.lang.Double.doubleToLongBits(getActiveViewCtr()) != java.lang.Double.doubleToLongBits( other.getActiveViewCtr())) return false; } if (hasActiveViewImpressions() != other.hasActiveViewImpressions()) return false; if (hasActiveViewImpressions()) { if (getActiveViewImpressions() != other.getActiveViewImpressions()) return false; } if (hasActiveViewMeasurability() != other.hasActiveViewMeasurability()) return false; if (hasActiveViewMeasurability()) { if (java.lang.Double.doubleToLongBits(getActiveViewMeasurability()) != java.lang.Double.doubleToLongBits( other.getActiveViewMeasurability())) return false; } if (hasActiveViewMeasurableCostMicros() != other.hasActiveViewMeasurableCostMicros()) return false; if (hasActiveViewMeasurableCostMicros()) { if (getActiveViewMeasurableCostMicros() != other.getActiveViewMeasurableCostMicros()) return false; } if (hasActiveViewMeasurableImpressions() != other.hasActiveViewMeasurableImpressions()) return false; if (hasActiveViewMeasurableImpressions()) { if (getActiveViewMeasurableImpressions() != other.getActiveViewMeasurableImpressions()) return false; } if (hasActiveViewViewability() != other.hasActiveViewViewability()) return false; if (hasActiveViewViewability()) { if (java.lang.Double.doubleToLongBits(getActiveViewViewability()) != java.lang.Double.doubleToLongBits( other.getActiveViewViewability())) return false; } if (hasAllConversionsFromInteractionsRate() != other.hasAllConversionsFromInteractionsRate()) return false; if (hasAllConversionsFromInteractionsRate()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromInteractionsRate()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromInteractionsRate())) return false; } if (hasAllConversionsValue() != other.hasAllConversionsValue()) return false; if (hasAllConversionsValue()) { if (java.lang.Double.doubleToLongBits(getAllConversionsValue()) != java.lang.Double.doubleToLongBits( other.getAllConversionsValue())) return false; } if (java.lang.Double.doubleToLongBits(getAllConversionsValueByConversionDate()) != java.lang.Double.doubleToLongBits( other.getAllConversionsValueByConversionDate())) return false; if (hasAllConversions() != other.hasAllConversions()) return false; if (hasAllConversions()) { if (java.lang.Double.doubleToLongBits(getAllConversions()) != java.lang.Double.doubleToLongBits( other.getAllConversions())) return false; } if (java.lang.Double.doubleToLongBits(getAllConversionsByConversionDate()) != java.lang.Double.doubleToLongBits( other.getAllConversionsByConversionDate())) return false; if (hasAllConversionsValuePerCost() != other.hasAllConversionsValuePerCost()) return false; if (hasAllConversionsValuePerCost()) { if (java.lang.Double.doubleToLongBits(getAllConversionsValuePerCost()) != java.lang.Double.doubleToLongBits( other.getAllConversionsValuePerCost())) return false; } if (hasAllConversionsFromClickToCall() != other.hasAllConversionsFromClickToCall()) return false; if (hasAllConversionsFromClickToCall()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromClickToCall()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromClickToCall())) return false; } if (hasAllConversionsFromDirections() != other.hasAllConversionsFromDirections()) return false; if (hasAllConversionsFromDirections()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromDirections()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromDirections())) return false; } if (hasAllConversionsFromInteractionsValuePerInteraction() != other.hasAllConversionsFromInteractionsValuePerInteraction()) return false; if (hasAllConversionsFromInteractionsValuePerInteraction()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromInteractionsValuePerInteraction()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromInteractionsValuePerInteraction())) return false; } if (hasAllConversionsFromMenu() != other.hasAllConversionsFromMenu()) return false; if (hasAllConversionsFromMenu()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromMenu()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromMenu())) return false; } if (hasAllConversionsFromOrder() != other.hasAllConversionsFromOrder()) return false; if (hasAllConversionsFromOrder()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromOrder()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromOrder())) return false; } if (hasAllConversionsFromOtherEngagement() != other.hasAllConversionsFromOtherEngagement()) return false; if (hasAllConversionsFromOtherEngagement()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromOtherEngagement()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromOtherEngagement())) return false; } if (hasAllConversionsFromStoreVisit() != other.hasAllConversionsFromStoreVisit()) return false; if (hasAllConversionsFromStoreVisit()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromStoreVisit()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromStoreVisit())) return false; } if (hasAllConversionsFromStoreWebsite() != other.hasAllConversionsFromStoreWebsite()) return false; if (hasAllConversionsFromStoreWebsite()) { if (java.lang.Double.doubleToLongBits(getAllConversionsFromStoreWebsite()) != java.lang.Double.doubleToLongBits( other.getAllConversionsFromStoreWebsite())) return false; } if (hasAverageCost() != other.hasAverageCost()) return false; if (hasAverageCost()) { if (java.lang.Double.doubleToLongBits(getAverageCost()) != java.lang.Double.doubleToLongBits( other.getAverageCost())) return false; } if (hasAverageCpc() != other.hasAverageCpc()) return false; if (hasAverageCpc()) { if (java.lang.Double.doubleToLongBits(getAverageCpc()) != java.lang.Double.doubleToLongBits( other.getAverageCpc())) return false; } if (hasAverageCpe() != other.hasAverageCpe()) return false; if (hasAverageCpe()) { if (java.lang.Double.doubleToLongBits(getAverageCpe()) != java.lang.Double.doubleToLongBits( other.getAverageCpe())) return false; } if (hasAverageCpm() != other.hasAverageCpm()) return false; if (hasAverageCpm()) { if (java.lang.Double.doubleToLongBits(getAverageCpm()) != java.lang.Double.doubleToLongBits( other.getAverageCpm())) return false; } if (hasAverageCpv() != other.hasAverageCpv()) return false; if (hasAverageCpv()) { if (java.lang.Double.doubleToLongBits(getAverageCpv()) != java.lang.Double.doubleToLongBits( other.getAverageCpv())) return false; } if (hasAveragePageViews() != other.hasAveragePageViews()) return false; if (hasAveragePageViews()) { if (java.lang.Double.doubleToLongBits(getAveragePageViews()) != java.lang.Double.doubleToLongBits( other.getAveragePageViews())) return false; } if (hasAverageTimeOnSite() != other.hasAverageTimeOnSite()) return false; if (hasAverageTimeOnSite()) { if (java.lang.Double.doubleToLongBits(getAverageTimeOnSite()) != java.lang.Double.doubleToLongBits( other.getAverageTimeOnSite())) return false; } if (hasBenchmarkAverageMaxCpc() != other.hasBenchmarkAverageMaxCpc()) return false; if (hasBenchmarkAverageMaxCpc()) { if (java.lang.Double.doubleToLongBits(getBenchmarkAverageMaxCpc()) != java.lang.Double.doubleToLongBits( other.getBenchmarkAverageMaxCpc())) return false; } if (hasBiddableAppInstallConversions() != other.hasBiddableAppInstallConversions()) return false; if (hasBiddableAppInstallConversions()) { if (java.lang.Double.doubleToLongBits(getBiddableAppInstallConversions()) != java.lang.Double.doubleToLongBits( other.getBiddableAppInstallConversions())) return false; } if (hasBiddableAppPostInstallConversions() != other.hasBiddableAppPostInstallConversions()) return false; if (hasBiddableAppPostInstallConversions()) { if (java.lang.Double.doubleToLongBits(getBiddableAppPostInstallConversions()) != java.lang.Double.doubleToLongBits( other.getBiddableAppPostInstallConversions())) return false; } if (hasBenchmarkCtr() != other.hasBenchmarkCtr()) return false; if (hasBenchmarkCtr()) { if (java.lang.Double.doubleToLongBits(getBenchmarkCtr()) != java.lang.Double.doubleToLongBits( other.getBenchmarkCtr())) return false; } if (hasBounceRate() != other.hasBounceRate()) return false; if (hasBounceRate()) { if (java.lang.Double.doubleToLongBits(getBounceRate()) != java.lang.Double.doubleToLongBits( other.getBounceRate())) return false; } if (hasClicks() != other.hasClicks()) return false; if (hasClicks()) { if (getClicks() != other.getClicks()) return false; } if (hasCombinedClicks() != other.hasCombinedClicks()) return false; if (hasCombinedClicks()) { if (getCombinedClicks() != other.getCombinedClicks()) return false; } if (hasCombinedClicksPerQuery() != other.hasCombinedClicksPerQuery()) return false; if (hasCombinedClicksPerQuery()) { if (java.lang.Double.doubleToLongBits(getCombinedClicksPerQuery()) != java.lang.Double.doubleToLongBits( other.getCombinedClicksPerQuery())) return false; } if (hasCombinedQueries() != other.hasCombinedQueries()) return false; if (hasCombinedQueries()) { if (getCombinedQueries() != other.getCombinedQueries()) return false; } if (hasContentBudgetLostImpressionShare() != other.hasContentBudgetLostImpressionShare()) return false; if (hasContentBudgetLostImpressionShare()) { if (java.lang.Double.doubleToLongBits(getContentBudgetLostImpressionShare()) != java.lang.Double.doubleToLongBits( other.getContentBudgetLostImpressionShare())) return false; } if (hasContentImpressionShare() != other.hasContentImpressionShare()) return false; if (hasContentImpressionShare()) { if (java.lang.Double.doubleToLongBits(getContentImpressionShare()) != java.lang.Double.doubleToLongBits( other.getContentImpressionShare())) return false; } if (hasConversionLastReceivedRequestDateTime() != other.hasConversionLastReceivedRequestDateTime()) return false; if (hasConversionLastReceivedRequestDateTime()) { if (!getConversionLastReceivedRequestDateTime() .equals(other.getConversionLastReceivedRequestDateTime())) return false; } if (hasConversionLastConversionDate() != other.hasConversionLastConversionDate()) return false; if (hasConversionLastConversionDate()) { if (!getConversionLastConversionDate() .equals(other.getConversionLastConversionDate())) return false; } if (hasContentRankLostImpressionShare() != other.hasContentRankLostImpressionShare()) return false; if (hasContentRankLostImpressionShare()) { if (java.lang.Double.doubleToLongBits(getContentRankLostImpressionShare()) != java.lang.Double.doubleToLongBits( other.getContentRankLostImpressionShare())) return false; } if (hasConversionsFromInteractionsRate() != other.hasConversionsFromInteractionsRate()) return false; if (hasConversionsFromInteractionsRate()) { if (java.lang.Double.doubleToLongBits(getConversionsFromInteractionsRate()) != java.lang.Double.doubleToLongBits( other.getConversionsFromInteractionsRate())) return false; } if (hasConversionsValue() != other.hasConversionsValue()) return false; if (hasConversionsValue()) { if (java.lang.Double.doubleToLongBits(getConversionsValue()) != java.lang.Double.doubleToLongBits( other.getConversionsValue())) return false; } if (java.lang.Double.doubleToLongBits(getConversionsValueByConversionDate()) != java.lang.Double.doubleToLongBits( other.getConversionsValueByConversionDate())) return false; if (hasConversionsValuePerCost() != other.hasConversionsValuePerCost()) return false; if (hasConversionsValuePerCost()) { if (java.lang.Double.doubleToLongBits(getConversionsValuePerCost()) != java.lang.Double.doubleToLongBits( other.getConversionsValuePerCost())) return false; } if (hasConversionsFromInteractionsValuePerInteraction() != other.hasConversionsFromInteractionsValuePerInteraction()) return false; if (hasConversionsFromInteractionsValuePerInteraction()) { if (java.lang.Double.doubleToLongBits(getConversionsFromInteractionsValuePerInteraction()) != java.lang.Double.doubleToLongBits( other.getConversionsFromInteractionsValuePerInteraction())) 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 (java.lang.Double.doubleToLongBits(getConversionsByConversionDate()) != java.lang.Double.doubleToLongBits( other.getConversionsByConversionDate())) return false; if (hasCostMicros() != other.hasCostMicros()) return false; if (hasCostMicros()) { if (getCostMicros() != other.getCostMicros()) return false; } if (hasCostPerAllConversions() != other.hasCostPerAllConversions()) return false; if (hasCostPerAllConversions()) { if (java.lang.Double.doubleToLongBits(getCostPerAllConversions()) != java.lang.Double.doubleToLongBits( other.getCostPerAllConversions())) return false; } if (hasCostPerConversion() != other.hasCostPerConversion()) return false; if (hasCostPerConversion()) { if (java.lang.Double.doubleToLongBits(getCostPerConversion()) != java.lang.Double.doubleToLongBits( other.getCostPerConversion())) return false; } if (hasCostPerCurrentModelAttributedConversion() != other.hasCostPerCurrentModelAttributedConversion()) return false; if (hasCostPerCurrentModelAttributedConversion()) { if (java.lang.Double.doubleToLongBits(getCostPerCurrentModelAttributedConversion()) != java.lang.Double.doubleToLongBits( other.getCostPerCurrentModelAttributedConversion())) return false; } if (hasCrossDeviceConversions() != other.hasCrossDeviceConversions()) return false; if (hasCrossDeviceConversions()) { if (java.lang.Double.doubleToLongBits(getCrossDeviceConversions()) != java.lang.Double.doubleToLongBits( other.getCrossDeviceConversions())) return false; } if (hasCtr() != other.hasCtr()) return false; if (hasCtr()) { if (java.lang.Double.doubleToLongBits(getCtr()) != java.lang.Double.doubleToLongBits( other.getCtr())) return false; } if (hasCurrentModelAttributedConversions() != other.hasCurrentModelAttributedConversions()) return false; if (hasCurrentModelAttributedConversions()) { if (java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversions()) != java.lang.Double.doubleToLongBits( other.getCurrentModelAttributedConversions())) return false; } if (hasCurrentModelAttributedConversionsFromInteractionsRate() != other.hasCurrentModelAttributedConversionsFromInteractionsRate()) return false; if (hasCurrentModelAttributedConversionsFromInteractionsRate()) { if (java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsFromInteractionsRate()) != java.lang.Double.doubleToLongBits( other.getCurrentModelAttributedConversionsFromInteractionsRate())) return false; } if (hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() != other.hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction()) return false; if (hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction()) { if (java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction()) != java.lang.Double.doubleToLongBits( other.getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction())) return false; } if (hasCurrentModelAttributedConversionsValue() != other.hasCurrentModelAttributedConversionsValue()) return false; if (hasCurrentModelAttributedConversionsValue()) { if (java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsValue()) != java.lang.Double.doubleToLongBits( other.getCurrentModelAttributedConversionsValue())) return false; } if (hasCurrentModelAttributedConversionsValuePerCost() != other.hasCurrentModelAttributedConversionsValuePerCost()) return false; if (hasCurrentModelAttributedConversionsValuePerCost()) { if (java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsValuePerCost()) != java.lang.Double.doubleToLongBits( other.getCurrentModelAttributedConversionsValuePerCost())) return false; } if (hasEngagementRate() != other.hasEngagementRate()) return false; if (hasEngagementRate()) { if (java.lang.Double.doubleToLongBits(getEngagementRate()) != java.lang.Double.doubleToLongBits( other.getEngagementRate())) return false; } if (hasEngagements() != other.hasEngagements()) return false; if (hasEngagements()) { if (getEngagements() != other.getEngagements()) return false; } if (hasHotelAverageLeadValueMicros() != other.hasHotelAverageLeadValueMicros()) return false; if (hasHotelAverageLeadValueMicros()) { if (java.lang.Double.doubleToLongBits(getHotelAverageLeadValueMicros()) != java.lang.Double.doubleToLongBits( other.getHotelAverageLeadValueMicros())) return false; } if (hasHotelCommissionRateMicros() != other.hasHotelCommissionRateMicros()) return false; if (hasHotelCommissionRateMicros()) { if (getHotelCommissionRateMicros() != other.getHotelCommissionRateMicros()) return false; } if (hasHotelExpectedCommissionCost() != other.hasHotelExpectedCommissionCost()) return false; if (hasHotelExpectedCommissionCost()) { if (java.lang.Double.doubleToLongBits(getHotelExpectedCommissionCost()) != java.lang.Double.doubleToLongBits( other.getHotelExpectedCommissionCost())) return false; } if (hasHotelPriceDifferencePercentage() != other.hasHotelPriceDifferencePercentage()) return false; if (hasHotelPriceDifferencePercentage()) { if (java.lang.Double.doubleToLongBits(getHotelPriceDifferencePercentage()) != java.lang.Double.doubleToLongBits( other.getHotelPriceDifferencePercentage())) return false; } if (hasHotelEligibleImpressions() != other.hasHotelEligibleImpressions()) return false; if (hasHotelEligibleImpressions()) { if (getHotelEligibleImpressions() != other.getHotelEligibleImpressions()) return false; } if (historicalCreativeQualityScore_ != other.historicalCreativeQualityScore_) return false; if (historicalLandingPageQualityScore_ != other.historicalLandingPageQualityScore_) return false; if (hasHistoricalQualityScore() != other.hasHistoricalQualityScore()) return false; if (hasHistoricalQualityScore()) { if (getHistoricalQualityScore() != other.getHistoricalQualityScore()) return false; } if (historicalSearchPredictedCtr_ != other.historicalSearchPredictedCtr_) return false; if (hasGmailForwards() != other.hasGmailForwards()) return false; if (hasGmailForwards()) { if (getGmailForwards() != other.getGmailForwards()) return false; } if (hasGmailSaves() != other.hasGmailSaves()) return false; if (hasGmailSaves()) { if (getGmailSaves() != other.getGmailSaves()) return false; } if (hasGmailSecondaryClicks() != other.hasGmailSecondaryClicks()) return false; if (hasGmailSecondaryClicks()) { if (getGmailSecondaryClicks() != other.getGmailSecondaryClicks()) return false; } if (hasImpressionsFromStoreReach() != other.hasImpressionsFromStoreReach()) return false; if (hasImpressionsFromStoreReach()) { if (getImpressionsFromStoreReach() != other.getImpressionsFromStoreReach()) return false; } if (hasImpressions() != other.hasImpressions()) return false; if (hasImpressions()) { if (getImpressions() != other.getImpressions()) return false; } if (hasInteractionRate() != other.hasInteractionRate()) return false; if (hasInteractionRate()) { if (java.lang.Double.doubleToLongBits(getInteractionRate()) != java.lang.Double.doubleToLongBits( other.getInteractionRate())) return false; } if (hasInteractions() != other.hasInteractions()) return false; if (hasInteractions()) { if (getInteractions() != other.getInteractions()) return false; } if (!interactionEventTypes_.equals(other.interactionEventTypes_)) return false; if (hasInvalidClickRate() != other.hasInvalidClickRate()) return false; if (hasInvalidClickRate()) { if (java.lang.Double.doubleToLongBits(getInvalidClickRate()) != java.lang.Double.doubleToLongBits( other.getInvalidClickRate())) return false; } if (hasInvalidClicks() != other.hasInvalidClicks()) return false; if (hasInvalidClicks()) { if (getInvalidClicks() != other.getInvalidClicks()) return false; } if (hasMessageChats() != other.hasMessageChats()) return false; if (hasMessageChats()) { if (getMessageChats() != other.getMessageChats()) return false; } if (hasMessageImpressions() != other.hasMessageImpressions()) return false; if (hasMessageImpressions()) { if (getMessageImpressions() != other.getMessageImpressions()) return false; } if (hasMessageChatRate() != other.hasMessageChatRate()) return false; if (hasMessageChatRate()) { if (java.lang.Double.doubleToLongBits(getMessageChatRate()) != java.lang.Double.doubleToLongBits( other.getMessageChatRate())) return false; } if (hasMobileFriendlyClicksPercentage() != other.hasMobileFriendlyClicksPercentage()) return false; if (hasMobileFriendlyClicksPercentage()) { if (java.lang.Double.doubleToLongBits(getMobileFriendlyClicksPercentage()) != java.lang.Double.doubleToLongBits( other.getMobileFriendlyClicksPercentage())) return false; } if (hasOptimizationScoreUplift() != other.hasOptimizationScoreUplift()) return false; if (hasOptimizationScoreUplift()) { if (java.lang.Double.doubleToLongBits(getOptimizationScoreUplift()) != java.lang.Double.doubleToLongBits( other.getOptimizationScoreUplift())) return false; } if (hasOptimizationScoreUrl() != other.hasOptimizationScoreUrl()) return false; if (hasOptimizationScoreUrl()) { if (!getOptimizationScoreUrl() .equals(other.getOptimizationScoreUrl())) return false; } if (hasOrganicClicks() != other.hasOrganicClicks()) return false; if (hasOrganicClicks()) { if (getOrganicClicks() != other.getOrganicClicks()) return false; } if (hasOrganicClicksPerQuery() != other.hasOrganicClicksPerQuery()) return false; if (hasOrganicClicksPerQuery()) { if (java.lang.Double.doubleToLongBits(getOrganicClicksPerQuery()) != java.lang.Double.doubleToLongBits( other.getOrganicClicksPerQuery())) return false; } if (hasOrganicImpressions() != other.hasOrganicImpressions()) return false; if (hasOrganicImpressions()) { if (getOrganicImpressions() != other.getOrganicImpressions()) return false; } if (hasOrganicImpressionsPerQuery() != other.hasOrganicImpressionsPerQuery()) return false; if (hasOrganicImpressionsPerQuery()) { if (java.lang.Double.doubleToLongBits(getOrganicImpressionsPerQuery()) != java.lang.Double.doubleToLongBits( other.getOrganicImpressionsPerQuery())) return false; } if (hasOrganicQueries() != other.hasOrganicQueries()) return false; if (hasOrganicQueries()) { if (getOrganicQueries() != other.getOrganicQueries()) return false; } if (hasPercentNewVisitors() != other.hasPercentNewVisitors()) return false; if (hasPercentNewVisitors()) { if (java.lang.Double.doubleToLongBits(getPercentNewVisitors()) != java.lang.Double.doubleToLongBits( other.getPercentNewVisitors())) return false; } if (hasPhoneCalls() != other.hasPhoneCalls()) return false; if (hasPhoneCalls()) { if (getPhoneCalls() != other.getPhoneCalls()) return false; } if (hasPhoneImpressions() != other.hasPhoneImpressions()) return false; if (hasPhoneImpressions()) { if (getPhoneImpressions() != other.getPhoneImpressions()) return false; } if (hasPhoneThroughRate() != other.hasPhoneThroughRate()) return false; if (hasPhoneThroughRate()) { if (java.lang.Double.doubleToLongBits(getPhoneThroughRate()) != java.lang.Double.doubleToLongBits( other.getPhoneThroughRate())) return false; } if (hasRelativeCtr() != other.hasRelativeCtr()) return false; if (hasRelativeCtr()) { if (java.lang.Double.doubleToLongBits(getRelativeCtr()) != java.lang.Double.doubleToLongBits( other.getRelativeCtr())) return false; } if (hasSearchAbsoluteTopImpressionShare() != other.hasSearchAbsoluteTopImpressionShare()) return false; if (hasSearchAbsoluteTopImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchAbsoluteTopImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchAbsoluteTopImpressionShare())) return false; } if (hasSearchBudgetLostAbsoluteTopImpressionShare() != other.hasSearchBudgetLostAbsoluteTopImpressionShare()) return false; if (hasSearchBudgetLostAbsoluteTopImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchBudgetLostAbsoluteTopImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchBudgetLostAbsoluteTopImpressionShare())) return false; } if (hasSearchBudgetLostImpressionShare() != other.hasSearchBudgetLostImpressionShare()) return false; if (hasSearchBudgetLostImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchBudgetLostImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchBudgetLostImpressionShare())) return false; } if (hasSearchBudgetLostTopImpressionShare() != other.hasSearchBudgetLostTopImpressionShare()) return false; if (hasSearchBudgetLostTopImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchBudgetLostTopImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchBudgetLostTopImpressionShare())) return false; } if (hasSearchClickShare() != other.hasSearchClickShare()) return false; if (hasSearchClickShare()) { if (java.lang.Double.doubleToLongBits(getSearchClickShare()) != java.lang.Double.doubleToLongBits( other.getSearchClickShare())) return false; } if (hasSearchExactMatchImpressionShare() != other.hasSearchExactMatchImpressionShare()) return false; if (hasSearchExactMatchImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchExactMatchImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchExactMatchImpressionShare())) return false; } if (hasSearchImpressionShare() != other.hasSearchImpressionShare()) return false; if (hasSearchImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchImpressionShare())) return false; } if (hasSearchRankLostAbsoluteTopImpressionShare() != other.hasSearchRankLostAbsoluteTopImpressionShare()) return false; if (hasSearchRankLostAbsoluteTopImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchRankLostAbsoluteTopImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchRankLostAbsoluteTopImpressionShare())) return false; } if (hasSearchRankLostImpressionShare() != other.hasSearchRankLostImpressionShare()) return false; if (hasSearchRankLostImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchRankLostImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchRankLostImpressionShare())) return false; } if (hasSearchRankLostTopImpressionShare() != other.hasSearchRankLostTopImpressionShare()) return false; if (hasSearchRankLostTopImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchRankLostTopImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchRankLostTopImpressionShare())) return false; } if (hasSearchTopImpressionShare() != other.hasSearchTopImpressionShare()) return false; if (hasSearchTopImpressionShare()) { if (java.lang.Double.doubleToLongBits(getSearchTopImpressionShare()) != java.lang.Double.doubleToLongBits( other.getSearchTopImpressionShare())) return false; } if (hasSpeedScore() != other.hasSpeedScore()) return false; if (hasSpeedScore()) { if (getSpeedScore() != other.getSpeedScore()) return false; } if (hasTopImpressionPercentage() != other.hasTopImpressionPercentage()) return false; if (hasTopImpressionPercentage()) { if (java.lang.Double.doubleToLongBits(getTopImpressionPercentage()) != java.lang.Double.doubleToLongBits( other.getTopImpressionPercentage())) return false; } if (hasValidAcceleratedMobilePagesClicksPercentage() != other.hasValidAcceleratedMobilePagesClicksPercentage()) return false; if (hasValidAcceleratedMobilePagesClicksPercentage()) { if (java.lang.Double.doubleToLongBits(getValidAcceleratedMobilePagesClicksPercentage()) != java.lang.Double.doubleToLongBits( other.getValidAcceleratedMobilePagesClicksPercentage())) return false; } if (hasValuePerAllConversions() != other.hasValuePerAllConversions()) return false; if (hasValuePerAllConversions()) { if (java.lang.Double.doubleToLongBits(getValuePerAllConversions()) != java.lang.Double.doubleToLongBits( other.getValuePerAllConversions())) return false; } if (hasValuePerAllConversionsByConversionDate() != other.hasValuePerAllConversionsByConversionDate()) return false; if (hasValuePerAllConversionsByConversionDate()) { if (java.lang.Double.doubleToLongBits(getValuePerAllConversionsByConversionDate()) != java.lang.Double.doubleToLongBits( other.getValuePerAllConversionsByConversionDate())) return false; } if (hasValuePerConversion() != other.hasValuePerConversion()) return false; if (hasValuePerConversion()) { if (java.lang.Double.doubleToLongBits(getValuePerConversion()) != java.lang.Double.doubleToLongBits( other.getValuePerConversion())) return false; } if (hasValuePerConversionsByConversionDate() != other.hasValuePerConversionsByConversionDate()) return false; if (hasValuePerConversionsByConversionDate()) { if (java.lang.Double.doubleToLongBits(getValuePerConversionsByConversionDate()) != java.lang.Double.doubleToLongBits( other.getValuePerConversionsByConversionDate())) return false; } if (hasValuePerCurrentModelAttributedConversion() != other.hasValuePerCurrentModelAttributedConversion()) return false; if (hasValuePerCurrentModelAttributedConversion()) { if (java.lang.Double.doubleToLongBits(getValuePerCurrentModelAttributedConversion()) != java.lang.Double.doubleToLongBits( other.getValuePerCurrentModelAttributedConversion())) return false; } if (hasVideoQuartileP100Rate() != other.hasVideoQuartileP100Rate()) return false; if (hasVideoQuartileP100Rate()) { if (java.lang.Double.doubleToLongBits(getVideoQuartileP100Rate()) != java.lang.Double.doubleToLongBits( other.getVideoQuartileP100Rate())) return false; } if (hasVideoQuartileP25Rate() != other.hasVideoQuartileP25Rate()) return false; if (hasVideoQuartileP25Rate()) { if (java.lang.Double.doubleToLongBits(getVideoQuartileP25Rate()) != java.lang.Double.doubleToLongBits( other.getVideoQuartileP25Rate())) return false; } if (hasVideoQuartileP50Rate() != other.hasVideoQuartileP50Rate()) return false; if (hasVideoQuartileP50Rate()) { if (java.lang.Double.doubleToLongBits(getVideoQuartileP50Rate()) != java.lang.Double.doubleToLongBits( other.getVideoQuartileP50Rate())) return false; } if (hasVideoQuartileP75Rate() != other.hasVideoQuartileP75Rate()) return false; if (hasVideoQuartileP75Rate()) { if (java.lang.Double.doubleToLongBits(getVideoQuartileP75Rate()) != java.lang.Double.doubleToLongBits( other.getVideoQuartileP75Rate())) return false; } if (hasVideoViewRate() != other.hasVideoViewRate()) return false; if (hasVideoViewRate()) { if (java.lang.Double.doubleToLongBits(getVideoViewRate()) != java.lang.Double.doubleToLongBits( other.getVideoViewRate())) return false; } if (hasVideoViews() != other.hasVideoViews()) return false; if (hasVideoViews()) { if (getVideoViews() != other.getVideoViews()) return false; } if (hasViewThroughConversions() != other.hasViewThroughConversions()) return false; if (hasViewThroughConversions()) { if (getViewThroughConversions() != other.getViewThroughConversions()) return false; } if (getSkAdNetworkConversions() != other.getSkAdNetworkConversions()) 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 (hasAbsoluteTopImpressionPercentage()) { hash = (37 * hash) + ABSOLUTE_TOP_IMPRESSION_PERCENTAGE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAbsoluteTopImpressionPercentage())); } if (hasActiveViewCpm()) { hash = (37 * hash) + ACTIVE_VIEW_CPM_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getActiveViewCpm())); } if (hasActiveViewCtr()) { hash = (37 * hash) + ACTIVE_VIEW_CTR_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getActiveViewCtr())); } if (hasActiveViewImpressions()) { hash = (37 * hash) + ACTIVE_VIEW_IMPRESSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getActiveViewImpressions()); } if (hasActiveViewMeasurability()) { hash = (37 * hash) + ACTIVE_VIEW_MEASURABILITY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getActiveViewMeasurability())); } if (hasActiveViewMeasurableCostMicros()) { hash = (37 * hash) + ACTIVE_VIEW_MEASURABLE_COST_MICROS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getActiveViewMeasurableCostMicros()); } if (hasActiveViewMeasurableImpressions()) { hash = (37 * hash) + ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getActiveViewMeasurableImpressions()); } if (hasActiveViewViewability()) { hash = (37 * hash) + ACTIVE_VIEW_VIEWABILITY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getActiveViewViewability())); } if (hasAllConversionsFromInteractionsRate()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_INTERACTIONS_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromInteractionsRate())); } if (hasAllConversionsValue()) { hash = (37 * hash) + ALL_CONVERSIONS_VALUE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsValue())); } hash = (37 * hash) + ALL_CONVERSIONS_VALUE_BY_CONVERSION_DATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsValueByConversionDate())); if (hasAllConversions()) { hash = (37 * hash) + ALL_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversions())); } hash = (37 * hash) + ALL_CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsByConversionDate())); if (hasAllConversionsValuePerCost()) { hash = (37 * hash) + ALL_CONVERSIONS_VALUE_PER_COST_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsValuePerCost())); } if (hasAllConversionsFromClickToCall()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_CLICK_TO_CALL_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromClickToCall())); } if (hasAllConversionsFromDirections()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_DIRECTIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromDirections())); } if (hasAllConversionsFromInteractionsValuePerInteraction()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_INTERACTIONS_VALUE_PER_INTERACTION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromInteractionsValuePerInteraction())); } if (hasAllConversionsFromMenu()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_MENU_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromMenu())); } if (hasAllConversionsFromOrder()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_ORDER_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromOrder())); } if (hasAllConversionsFromOtherEngagement()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_OTHER_ENGAGEMENT_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromOtherEngagement())); } if (hasAllConversionsFromStoreVisit()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_STORE_VISIT_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromStoreVisit())); } if (hasAllConversionsFromStoreWebsite()) { hash = (37 * hash) + ALL_CONVERSIONS_FROM_STORE_WEBSITE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllConversionsFromStoreWebsite())); } if (hasAverageCost()) { hash = (37 * hash) + AVERAGE_COST_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAverageCost())); } if (hasAverageCpc()) { hash = (37 * hash) + AVERAGE_CPC_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAverageCpc())); } if (hasAverageCpe()) { hash = (37 * hash) + AVERAGE_CPE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAverageCpe())); } if (hasAverageCpm()) { hash = (37 * hash) + AVERAGE_CPM_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAverageCpm())); } if (hasAverageCpv()) { hash = (37 * hash) + AVERAGE_CPV_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAverageCpv())); } if (hasAveragePageViews()) { hash = (37 * hash) + AVERAGE_PAGE_VIEWS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAveragePageViews())); } if (hasAverageTimeOnSite()) { hash = (37 * hash) + AVERAGE_TIME_ON_SITE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAverageTimeOnSite())); } if (hasBenchmarkAverageMaxCpc()) { hash = (37 * hash) + BENCHMARK_AVERAGE_MAX_CPC_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getBenchmarkAverageMaxCpc())); } if (hasBiddableAppInstallConversions()) { hash = (37 * hash) + BIDDABLE_APP_INSTALL_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getBiddableAppInstallConversions())); } if (hasBiddableAppPostInstallConversions()) { hash = (37 * hash) + BIDDABLE_APP_POST_INSTALL_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getBiddableAppPostInstallConversions())); } if (hasBenchmarkCtr()) { hash = (37 * hash) + BENCHMARK_CTR_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getBenchmarkCtr())); } if (hasBounceRate()) { hash = (37 * hash) + BOUNCE_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getBounceRate())); } if (hasClicks()) { hash = (37 * hash) + CLICKS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getClicks()); } if (hasCombinedClicks()) { hash = (37 * hash) + COMBINED_CLICKS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getCombinedClicks()); } if (hasCombinedClicksPerQuery()) { hash = (37 * hash) + COMBINED_CLICKS_PER_QUERY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCombinedClicksPerQuery())); } if (hasCombinedQueries()) { hash = (37 * hash) + COMBINED_QUERIES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getCombinedQueries()); } if (hasContentBudgetLostImpressionShare()) { hash = (37 * hash) + CONTENT_BUDGET_LOST_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getContentBudgetLostImpressionShare())); } if (hasContentImpressionShare()) { hash = (37 * hash) + CONTENT_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getContentImpressionShare())); } if (hasConversionLastReceivedRequestDateTime()) { hash = (37 * hash) + CONVERSION_LAST_RECEIVED_REQUEST_DATE_TIME_FIELD_NUMBER; hash = (53 * hash) + getConversionLastReceivedRequestDateTime().hashCode(); } if (hasConversionLastConversionDate()) { hash = (37 * hash) + CONVERSION_LAST_CONVERSION_DATE_FIELD_NUMBER; hash = (53 * hash) + getConversionLastConversionDate().hashCode(); } if (hasContentRankLostImpressionShare()) { hash = (37 * hash) + CONTENT_RANK_LOST_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getContentRankLostImpressionShare())); } if (hasConversionsFromInteractionsRate()) { hash = (37 * hash) + CONVERSIONS_FROM_INTERACTIONS_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getConversionsFromInteractionsRate())); } if (hasConversionsValue()) { hash = (37 * hash) + CONVERSIONS_VALUE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getConversionsValue())); } hash = (37 * hash) + CONVERSIONS_VALUE_BY_CONVERSION_DATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getConversionsValueByConversionDate())); if (hasConversionsValuePerCost()) { hash = (37 * hash) + CONVERSIONS_VALUE_PER_COST_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getConversionsValuePerCost())); } if (hasConversionsFromInteractionsValuePerInteraction()) { hash = (37 * hash) + CONVERSIONS_FROM_INTERACTIONS_VALUE_PER_INTERACTION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getConversionsFromInteractionsValuePerInteraction())); } if (hasConversions()) { hash = (37 * hash) + CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getConversions())); } hash = (37 * hash) + CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getConversionsByConversionDate())); if (hasCostMicros()) { hash = (37 * hash) + COST_MICROS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getCostMicros()); } if (hasCostPerAllConversions()) { hash = (37 * hash) + COST_PER_ALL_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCostPerAllConversions())); } if (hasCostPerConversion()) { hash = (37 * hash) + COST_PER_CONVERSION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCostPerConversion())); } if (hasCostPerCurrentModelAttributedConversion()) { hash = (37 * hash) + COST_PER_CURRENT_MODEL_ATTRIBUTED_CONVERSION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCostPerCurrentModelAttributedConversion())); } if (hasCrossDeviceConversions()) { hash = (37 * hash) + CROSS_DEVICE_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCrossDeviceConversions())); } if (hasCtr()) { hash = (37 * hash) + CTR_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCtr())); } if (hasCurrentModelAttributedConversions()) { hash = (37 * hash) + CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversions())); } if (hasCurrentModelAttributedConversionsFromInteractionsRate()) { hash = (37 * hash) + CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_FROM_INTERACTIONS_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsFromInteractionsRate())); } if (hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction()) { hash = (37 * hash) + CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_FROM_INTERACTIONS_VALUE_PER_INTERACTION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction())); } if (hasCurrentModelAttributedConversionsValue()) { hash = (37 * hash) + CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_VALUE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsValue())); } if (hasCurrentModelAttributedConversionsValuePerCost()) { hash = (37 * hash) + CURRENT_MODEL_ATTRIBUTED_CONVERSIONS_VALUE_PER_COST_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCurrentModelAttributedConversionsValuePerCost())); } if (hasEngagementRate()) { hash = (37 * hash) + ENGAGEMENT_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getEngagementRate())); } if (hasEngagements()) { hash = (37 * hash) + ENGAGEMENTS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getEngagements()); } if (hasHotelAverageLeadValueMicros()) { hash = (37 * hash) + HOTEL_AVERAGE_LEAD_VALUE_MICROS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getHotelAverageLeadValueMicros())); } if (hasHotelCommissionRateMicros()) { hash = (37 * hash) + HOTEL_COMMISSION_RATE_MICROS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getHotelCommissionRateMicros()); } if (hasHotelExpectedCommissionCost()) { hash = (37 * hash) + HOTEL_EXPECTED_COMMISSION_COST_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getHotelExpectedCommissionCost())); } if (hasHotelPriceDifferencePercentage()) { hash = (37 * hash) + HOTEL_PRICE_DIFFERENCE_PERCENTAGE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getHotelPriceDifferencePercentage())); } if (hasHotelEligibleImpressions()) { hash = (37 * hash) + HOTEL_ELIGIBLE_IMPRESSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getHotelEligibleImpressions()); } hash = (37 * hash) + HISTORICAL_CREATIVE_QUALITY_SCORE_FIELD_NUMBER; hash = (53 * hash) + historicalCreativeQualityScore_; hash = (37 * hash) + HISTORICAL_LANDING_PAGE_QUALITY_SCORE_FIELD_NUMBER; hash = (53 * hash) + historicalLandingPageQualityScore_; if (hasHistoricalQualityScore()) { hash = (37 * hash) + HISTORICAL_QUALITY_SCORE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getHistoricalQualityScore()); } hash = (37 * hash) + HISTORICAL_SEARCH_PREDICTED_CTR_FIELD_NUMBER; hash = (53 * hash) + historicalSearchPredictedCtr_; if (hasGmailForwards()) { hash = (37 * hash) + GMAIL_FORWARDS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getGmailForwards()); } if (hasGmailSaves()) { hash = (37 * hash) + GMAIL_SAVES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getGmailSaves()); } if (hasGmailSecondaryClicks()) { hash = (37 * hash) + GMAIL_SECONDARY_CLICKS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getGmailSecondaryClicks()); } if (hasImpressionsFromStoreReach()) { hash = (37 * hash) + IMPRESSIONS_FROM_STORE_REACH_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getImpressionsFromStoreReach()); } if (hasImpressions()) { hash = (37 * hash) + IMPRESSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getImpressions()); } if (hasInteractionRate()) { hash = (37 * hash) + INTERACTION_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getInteractionRate())); } if (hasInteractions()) { hash = (37 * hash) + INTERACTIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getInteractions()); } if (getInteractionEventTypesCount() > 0) { hash = (37 * hash) + INTERACTION_EVENT_TYPES_FIELD_NUMBER; hash = (53 * hash) + interactionEventTypes_.hashCode(); } if (hasInvalidClickRate()) { hash = (37 * hash) + INVALID_CLICK_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getInvalidClickRate())); } if (hasInvalidClicks()) { hash = (37 * hash) + INVALID_CLICKS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getInvalidClicks()); } if (hasMessageChats()) { hash = (37 * hash) + MESSAGE_CHATS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getMessageChats()); } if (hasMessageImpressions()) { hash = (37 * hash) + MESSAGE_IMPRESSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getMessageImpressions()); } if (hasMessageChatRate()) { hash = (37 * hash) + MESSAGE_CHAT_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getMessageChatRate())); } if (hasMobileFriendlyClicksPercentage()) { hash = (37 * hash) + MOBILE_FRIENDLY_CLICKS_PERCENTAGE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getMobileFriendlyClicksPercentage())); } if (hasOptimizationScoreUplift()) { hash = (37 * hash) + OPTIMIZATION_SCORE_UPLIFT_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getOptimizationScoreUplift())); } if (hasOptimizationScoreUrl()) { hash = (37 * hash) + OPTIMIZATION_SCORE_URL_FIELD_NUMBER; hash = (53 * hash) + getOptimizationScoreUrl().hashCode(); } if (hasOrganicClicks()) { hash = (37 * hash) + ORGANIC_CLICKS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getOrganicClicks()); } if (hasOrganicClicksPerQuery()) { hash = (37 * hash) + ORGANIC_CLICKS_PER_QUERY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getOrganicClicksPerQuery())); } if (hasOrganicImpressions()) { hash = (37 * hash) + ORGANIC_IMPRESSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getOrganicImpressions()); } if (hasOrganicImpressionsPerQuery()) { hash = (37 * hash) + ORGANIC_IMPRESSIONS_PER_QUERY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getOrganicImpressionsPerQuery())); } if (hasOrganicQueries()) { hash = (37 * hash) + ORGANIC_QUERIES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getOrganicQueries()); } if (hasPercentNewVisitors()) { hash = (37 * hash) + PERCENT_NEW_VISITORS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getPercentNewVisitors())); } if (hasPhoneCalls()) { hash = (37 * hash) + PHONE_CALLS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getPhoneCalls()); } if (hasPhoneImpressions()) { hash = (37 * hash) + PHONE_IMPRESSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getPhoneImpressions()); } if (hasPhoneThroughRate()) { hash = (37 * hash) + PHONE_THROUGH_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getPhoneThroughRate())); } if (hasRelativeCtr()) { hash = (37 * hash) + RELATIVE_CTR_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getRelativeCtr())); } if (hasSearchAbsoluteTopImpressionShare()) { hash = (37 * hash) + SEARCH_ABSOLUTE_TOP_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchAbsoluteTopImpressionShare())); } if (hasSearchBudgetLostAbsoluteTopImpressionShare()) { hash = (37 * hash) + SEARCH_BUDGET_LOST_ABSOLUTE_TOP_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchBudgetLostAbsoluteTopImpressionShare())); } if (hasSearchBudgetLostImpressionShare()) { hash = (37 * hash) + SEARCH_BUDGET_LOST_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchBudgetLostImpressionShare())); } if (hasSearchBudgetLostTopImpressionShare()) { hash = (37 * hash) + SEARCH_BUDGET_LOST_TOP_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchBudgetLostTopImpressionShare())); } if (hasSearchClickShare()) { hash = (37 * hash) + SEARCH_CLICK_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchClickShare())); } if (hasSearchExactMatchImpressionShare()) { hash = (37 * hash) + SEARCH_EXACT_MATCH_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchExactMatchImpressionShare())); } if (hasSearchImpressionShare()) { hash = (37 * hash) + SEARCH_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchImpressionShare())); } if (hasSearchRankLostAbsoluteTopImpressionShare()) { hash = (37 * hash) + SEARCH_RANK_LOST_ABSOLUTE_TOP_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchRankLostAbsoluteTopImpressionShare())); } if (hasSearchRankLostImpressionShare()) { hash = (37 * hash) + SEARCH_RANK_LOST_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchRankLostImpressionShare())); } if (hasSearchRankLostTopImpressionShare()) { hash = (37 * hash) + SEARCH_RANK_LOST_TOP_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchRankLostTopImpressionShare())); } if (hasSearchTopImpressionShare()) { hash = (37 * hash) + SEARCH_TOP_IMPRESSION_SHARE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getSearchTopImpressionShare())); } if (hasSpeedScore()) { hash = (37 * hash) + SPEED_SCORE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getSpeedScore()); } if (hasTopImpressionPercentage()) { hash = (37 * hash) + TOP_IMPRESSION_PERCENTAGE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getTopImpressionPercentage())); } if (hasValidAcceleratedMobilePagesClicksPercentage()) { hash = (37 * hash) + VALID_ACCELERATED_MOBILE_PAGES_CLICKS_PERCENTAGE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getValidAcceleratedMobilePagesClicksPercentage())); } if (hasValuePerAllConversions()) { hash = (37 * hash) + VALUE_PER_ALL_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getValuePerAllConversions())); } if (hasValuePerAllConversionsByConversionDate()) { hash = (37 * hash) + VALUE_PER_ALL_CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getValuePerAllConversionsByConversionDate())); } if (hasValuePerConversion()) { hash = (37 * hash) + VALUE_PER_CONVERSION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getValuePerConversion())); } if (hasValuePerConversionsByConversionDate()) { hash = (37 * hash) + VALUE_PER_CONVERSIONS_BY_CONVERSION_DATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getValuePerConversionsByConversionDate())); } if (hasValuePerCurrentModelAttributedConversion()) { hash = (37 * hash) + VALUE_PER_CURRENT_MODEL_ATTRIBUTED_CONVERSION_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getValuePerCurrentModelAttributedConversion())); } if (hasVideoQuartileP100Rate()) { hash = (37 * hash) + VIDEO_QUARTILE_P100_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getVideoQuartileP100Rate())); } if (hasVideoQuartileP25Rate()) { hash = (37 * hash) + VIDEO_QUARTILE_P25_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getVideoQuartileP25Rate())); } if (hasVideoQuartileP50Rate()) { hash = (37 * hash) + VIDEO_QUARTILE_P50_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getVideoQuartileP50Rate())); } if (hasVideoQuartileP75Rate()) { hash = (37 * hash) + VIDEO_QUARTILE_P75_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getVideoQuartileP75Rate())); } if (hasVideoViewRate()) { hash = (37 * hash) + VIDEO_VIEW_RATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getVideoViewRate())); } if (hasVideoViews()) { hash = (37 * hash) + VIDEO_VIEWS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getVideoViews()); } if (hasViewThroughConversions()) { hash = (37 * hash) + VIEW_THROUGH_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getViewThroughConversions()); } hash = (37 * hash) + SK_AD_NETWORK_CONVERSIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getSkAdNetworkConversions()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static com.google.ads.googleads.v10.common.Metrics parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.ads.googleads.v10.common.Metrics parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.ads.googleads.v10.common.Metrics parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.ads.googleads.v10.common.Metrics 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.ads.googleads.v10.common.Metrics parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.ads.googleads.v10.common.Metrics parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.ads.googleads.v10.common.Metrics parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.google.ads.googleads.v10.common.Metrics 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.ads.googleads.v10.common.Metrics parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static com.google.ads.googleads.v10.common.Metrics 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.ads.googleads.v10.common.Metrics parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.google.ads.googleads.v10.common.Metrics 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.ads.googleads.v10.common.Metrics 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; } /** *
   * Metrics data.
   * 
* * Protobuf type {@code google.ads.googleads.v10.common.Metrics} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:google.ads.googleads.v10.common.Metrics) com.google.ads.googleads.v10.common.MetricsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.ads.googleads.v10.common.MetricsProto.internal_static_google_ads_googleads_v10_common_Metrics_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.google.ads.googleads.v10.common.MetricsProto.internal_static_google_ads_googleads_v10_common_Metrics_fieldAccessorTable .ensureFieldAccessorsInitialized( com.google.ads.googleads.v10.common.Metrics.class, com.google.ads.googleads.v10.common.Metrics.Builder.class); } // Construct using com.google.ads.googleads.v10.common.Metrics.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); absoluteTopImpressionPercentage_ = 0D; bitField0_ = (bitField0_ & ~0x00000001); activeViewCpm_ = 0D; bitField0_ = (bitField0_ & ~0x00000002); activeViewCtr_ = 0D; bitField0_ = (bitField0_ & ~0x00000004); activeViewImpressions_ = 0L; bitField0_ = (bitField0_ & ~0x00000008); activeViewMeasurability_ = 0D; bitField0_ = (bitField0_ & ~0x00000010); activeViewMeasurableCostMicros_ = 0L; bitField0_ = (bitField0_ & ~0x00000020); activeViewMeasurableImpressions_ = 0L; bitField0_ = (bitField0_ & ~0x00000040); activeViewViewability_ = 0D; bitField0_ = (bitField0_ & ~0x00000080); allConversionsFromInteractionsRate_ = 0D; bitField0_ = (bitField0_ & ~0x00000100); allConversionsValue_ = 0D; bitField0_ = (bitField0_ & ~0x00000200); allConversionsValueByConversionDate_ = 0D; allConversions_ = 0D; bitField0_ = (bitField0_ & ~0x00000400); allConversionsByConversionDate_ = 0D; allConversionsValuePerCost_ = 0D; bitField0_ = (bitField0_ & ~0x00000800); allConversionsFromClickToCall_ = 0D; bitField0_ = (bitField0_ & ~0x00001000); allConversionsFromDirections_ = 0D; bitField0_ = (bitField0_ & ~0x00002000); allConversionsFromInteractionsValuePerInteraction_ = 0D; bitField0_ = (bitField0_ & ~0x00004000); allConversionsFromMenu_ = 0D; bitField0_ = (bitField0_ & ~0x00008000); allConversionsFromOrder_ = 0D; bitField0_ = (bitField0_ & ~0x00010000); allConversionsFromOtherEngagement_ = 0D; bitField0_ = (bitField0_ & ~0x00020000); allConversionsFromStoreVisit_ = 0D; bitField0_ = (bitField0_ & ~0x00040000); allConversionsFromStoreWebsite_ = 0D; bitField0_ = (bitField0_ & ~0x00080000); averageCost_ = 0D; bitField0_ = (bitField0_ & ~0x00100000); averageCpc_ = 0D; bitField0_ = (bitField0_ & ~0x00200000); averageCpe_ = 0D; bitField0_ = (bitField0_ & ~0x00400000); averageCpm_ = 0D; bitField0_ = (bitField0_ & ~0x00800000); averageCpv_ = 0D; bitField0_ = (bitField0_ & ~0x01000000); averagePageViews_ = 0D; bitField0_ = (bitField0_ & ~0x02000000); averageTimeOnSite_ = 0D; bitField0_ = (bitField0_ & ~0x04000000); benchmarkAverageMaxCpc_ = 0D; bitField0_ = (bitField0_ & ~0x08000000); biddableAppInstallConversions_ = 0D; bitField0_ = (bitField0_ & ~0x10000000); biddableAppPostInstallConversions_ = 0D; bitField0_ = (bitField0_ & ~0x20000000); benchmarkCtr_ = 0D; bitField0_ = (bitField0_ & ~0x40000000); bounceRate_ = 0D; bitField0_ = (bitField0_ & ~0x80000000); clicks_ = 0L; bitField1_ = (bitField1_ & ~0x00000001); combinedClicks_ = 0L; bitField1_ = (bitField1_ & ~0x00000002); combinedClicksPerQuery_ = 0D; bitField1_ = (bitField1_ & ~0x00000004); combinedQueries_ = 0L; bitField1_ = (bitField1_ & ~0x00000008); contentBudgetLostImpressionShare_ = 0D; bitField1_ = (bitField1_ & ~0x00000010); contentImpressionShare_ = 0D; bitField1_ = (bitField1_ & ~0x00000020); conversionLastReceivedRequestDateTime_ = ""; bitField1_ = (bitField1_ & ~0x00000040); conversionLastConversionDate_ = ""; bitField1_ = (bitField1_ & ~0x00000080); contentRankLostImpressionShare_ = 0D; bitField1_ = (bitField1_ & ~0x00000100); conversionsFromInteractionsRate_ = 0D; bitField1_ = (bitField1_ & ~0x00000200); conversionsValue_ = 0D; bitField1_ = (bitField1_ & ~0x00000400); conversionsValueByConversionDate_ = 0D; conversionsValuePerCost_ = 0D; bitField1_ = (bitField1_ & ~0x00000800); conversionsFromInteractionsValuePerInteraction_ = 0D; bitField1_ = (bitField1_ & ~0x00001000); conversions_ = 0D; bitField1_ = (bitField1_ & ~0x00002000); conversionsByConversionDate_ = 0D; costMicros_ = 0L; bitField1_ = (bitField1_ & ~0x00004000); costPerAllConversions_ = 0D; bitField1_ = (bitField1_ & ~0x00008000); costPerConversion_ = 0D; bitField1_ = (bitField1_ & ~0x00010000); costPerCurrentModelAttributedConversion_ = 0D; bitField1_ = (bitField1_ & ~0x00020000); crossDeviceConversions_ = 0D; bitField1_ = (bitField1_ & ~0x00040000); ctr_ = 0D; bitField1_ = (bitField1_ & ~0x00080000); currentModelAttributedConversions_ = 0D; bitField1_ = (bitField1_ & ~0x00100000); currentModelAttributedConversionsFromInteractionsRate_ = 0D; bitField1_ = (bitField1_ & ~0x00200000); currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = 0D; bitField1_ = (bitField1_ & ~0x00400000); currentModelAttributedConversionsValue_ = 0D; bitField1_ = (bitField1_ & ~0x00800000); currentModelAttributedConversionsValuePerCost_ = 0D; bitField1_ = (bitField1_ & ~0x01000000); engagementRate_ = 0D; bitField1_ = (bitField1_ & ~0x02000000); engagements_ = 0L; bitField1_ = (bitField1_ & ~0x04000000); hotelAverageLeadValueMicros_ = 0D; bitField1_ = (bitField1_ & ~0x08000000); hotelCommissionRateMicros_ = 0L; bitField1_ = (bitField1_ & ~0x10000000); hotelExpectedCommissionCost_ = 0D; bitField1_ = (bitField1_ & ~0x20000000); hotelPriceDifferencePercentage_ = 0D; bitField1_ = (bitField1_ & ~0x40000000); hotelEligibleImpressions_ = 0L; bitField1_ = (bitField1_ & ~0x80000000); historicalCreativeQualityScore_ = 0; historicalLandingPageQualityScore_ = 0; historicalQualityScore_ = 0L; bitField2_ = (bitField2_ & ~0x00000001); historicalSearchPredictedCtr_ = 0; gmailForwards_ = 0L; bitField2_ = (bitField2_ & ~0x00000002); gmailSaves_ = 0L; bitField2_ = (bitField2_ & ~0x00000004); gmailSecondaryClicks_ = 0L; bitField2_ = (bitField2_ & ~0x00000008); impressionsFromStoreReach_ = 0L; bitField2_ = (bitField2_ & ~0x00000010); impressions_ = 0L; bitField2_ = (bitField2_ & ~0x00000020); interactionRate_ = 0D; bitField2_ = (bitField2_ & ~0x00000040); interactions_ = 0L; bitField2_ = (bitField2_ & ~0x00000080); interactionEventTypes_ = java.util.Collections.emptyList(); bitField2_ = (bitField2_ & ~0x00000100); invalidClickRate_ = 0D; bitField2_ = (bitField2_ & ~0x00000200); invalidClicks_ = 0L; bitField2_ = (bitField2_ & ~0x00000400); messageChats_ = 0L; bitField2_ = (bitField2_ & ~0x00000800); messageImpressions_ = 0L; bitField2_ = (bitField2_ & ~0x00001000); messageChatRate_ = 0D; bitField2_ = (bitField2_ & ~0x00002000); mobileFriendlyClicksPercentage_ = 0D; bitField2_ = (bitField2_ & ~0x00004000); optimizationScoreUplift_ = 0D; bitField2_ = (bitField2_ & ~0x00008000); optimizationScoreUrl_ = ""; bitField2_ = (bitField2_ & ~0x00010000); organicClicks_ = 0L; bitField2_ = (bitField2_ & ~0x00020000); organicClicksPerQuery_ = 0D; bitField2_ = (bitField2_ & ~0x00040000); organicImpressions_ = 0L; bitField2_ = (bitField2_ & ~0x00080000); organicImpressionsPerQuery_ = 0D; bitField2_ = (bitField2_ & ~0x00100000); organicQueries_ = 0L; bitField2_ = (bitField2_ & ~0x00200000); percentNewVisitors_ = 0D; bitField2_ = (bitField2_ & ~0x00400000); phoneCalls_ = 0L; bitField2_ = (bitField2_ & ~0x00800000); phoneImpressions_ = 0L; bitField2_ = (bitField2_ & ~0x01000000); phoneThroughRate_ = 0D; bitField2_ = (bitField2_ & ~0x02000000); relativeCtr_ = 0D; bitField2_ = (bitField2_ & ~0x04000000); searchAbsoluteTopImpressionShare_ = 0D; bitField2_ = (bitField2_ & ~0x08000000); searchBudgetLostAbsoluteTopImpressionShare_ = 0D; bitField2_ = (bitField2_ & ~0x10000000); searchBudgetLostImpressionShare_ = 0D; bitField2_ = (bitField2_ & ~0x20000000); searchBudgetLostTopImpressionShare_ = 0D; bitField2_ = (bitField2_ & ~0x40000000); searchClickShare_ = 0D; bitField2_ = (bitField2_ & ~0x80000000); searchExactMatchImpressionShare_ = 0D; bitField3_ = (bitField3_ & ~0x00000001); searchImpressionShare_ = 0D; bitField3_ = (bitField3_ & ~0x00000002); searchRankLostAbsoluteTopImpressionShare_ = 0D; bitField3_ = (bitField3_ & ~0x00000004); searchRankLostImpressionShare_ = 0D; bitField3_ = (bitField3_ & ~0x00000008); searchRankLostTopImpressionShare_ = 0D; bitField3_ = (bitField3_ & ~0x00000010); searchTopImpressionShare_ = 0D; bitField3_ = (bitField3_ & ~0x00000020); speedScore_ = 0L; bitField3_ = (bitField3_ & ~0x00000040); topImpressionPercentage_ = 0D; bitField3_ = (bitField3_ & ~0x00000080); validAcceleratedMobilePagesClicksPercentage_ = 0D; bitField3_ = (bitField3_ & ~0x00000100); valuePerAllConversions_ = 0D; bitField3_ = (bitField3_ & ~0x00000200); valuePerAllConversionsByConversionDate_ = 0D; bitField3_ = (bitField3_ & ~0x00000400); valuePerConversion_ = 0D; bitField3_ = (bitField3_ & ~0x00000800); valuePerConversionsByConversionDate_ = 0D; bitField3_ = (bitField3_ & ~0x00001000); valuePerCurrentModelAttributedConversion_ = 0D; bitField3_ = (bitField3_ & ~0x00002000); videoQuartileP100Rate_ = 0D; bitField3_ = (bitField3_ & ~0x00004000); videoQuartileP25Rate_ = 0D; bitField3_ = (bitField3_ & ~0x00008000); videoQuartileP50Rate_ = 0D; bitField3_ = (bitField3_ & ~0x00010000); videoQuartileP75Rate_ = 0D; bitField3_ = (bitField3_ & ~0x00020000); videoViewRate_ = 0D; bitField3_ = (bitField3_ & ~0x00040000); videoViews_ = 0L; bitField3_ = (bitField3_ & ~0x00080000); viewThroughConversions_ = 0L; bitField3_ = (bitField3_ & ~0x00100000); skAdNetworkConversions_ = 0L; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return com.google.ads.googleads.v10.common.MetricsProto.internal_static_google_ads_googleads_v10_common_Metrics_descriptor; } @java.lang.Override public com.google.ads.googleads.v10.common.Metrics getDefaultInstanceForType() { return com.google.ads.googleads.v10.common.Metrics.getDefaultInstance(); } @java.lang.Override public com.google.ads.googleads.v10.common.Metrics build() { com.google.ads.googleads.v10.common.Metrics result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public com.google.ads.googleads.v10.common.Metrics buildPartial() { com.google.ads.googleads.v10.common.Metrics result = new com.google.ads.googleads.v10.common.Metrics(this); int from_bitField0_ = bitField0_; int from_bitField1_ = bitField1_; int from_bitField2_ = bitField2_; int from_bitField3_ = bitField3_; int to_bitField0_ = 0; int to_bitField1_ = 0; int to_bitField2_ = 0; int to_bitField3_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.absoluteTopImpressionPercentage_ = absoluteTopImpressionPercentage_; to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.activeViewCpm_ = activeViewCpm_; to_bitField0_ |= 0x00000002; } if (((from_bitField0_ & 0x00000004) != 0)) { result.activeViewCtr_ = activeViewCtr_; to_bitField0_ |= 0x00000004; } if (((from_bitField0_ & 0x00000008) != 0)) { result.activeViewImpressions_ = activeViewImpressions_; to_bitField0_ |= 0x00000008; } if (((from_bitField0_ & 0x00000010) != 0)) { result.activeViewMeasurability_ = activeViewMeasurability_; to_bitField0_ |= 0x00000010; } if (((from_bitField0_ & 0x00000020) != 0)) { result.activeViewMeasurableCostMicros_ = activeViewMeasurableCostMicros_; to_bitField0_ |= 0x00000020; } if (((from_bitField0_ & 0x00000040) != 0)) { result.activeViewMeasurableImpressions_ = activeViewMeasurableImpressions_; to_bitField0_ |= 0x00000040; } if (((from_bitField0_ & 0x00000080) != 0)) { result.activeViewViewability_ = activeViewViewability_; to_bitField0_ |= 0x00000080; } if (((from_bitField0_ & 0x00000100) != 0)) { result.allConversionsFromInteractionsRate_ = allConversionsFromInteractionsRate_; to_bitField0_ |= 0x00000100; } if (((from_bitField0_ & 0x00000200) != 0)) { result.allConversionsValue_ = allConversionsValue_; to_bitField0_ |= 0x00000200; } result.allConversionsValueByConversionDate_ = allConversionsValueByConversionDate_; if (((from_bitField0_ & 0x00000400) != 0)) { result.allConversions_ = allConversions_; to_bitField0_ |= 0x00000400; } result.allConversionsByConversionDate_ = allConversionsByConversionDate_; if (((from_bitField0_ & 0x00000800) != 0)) { result.allConversionsValuePerCost_ = allConversionsValuePerCost_; to_bitField0_ |= 0x00000800; } if (((from_bitField0_ & 0x00001000) != 0)) { result.allConversionsFromClickToCall_ = allConversionsFromClickToCall_; to_bitField0_ |= 0x00001000; } if (((from_bitField0_ & 0x00002000) != 0)) { result.allConversionsFromDirections_ = allConversionsFromDirections_; to_bitField0_ |= 0x00002000; } if (((from_bitField0_ & 0x00004000) != 0)) { result.allConversionsFromInteractionsValuePerInteraction_ = allConversionsFromInteractionsValuePerInteraction_; to_bitField0_ |= 0x00004000; } if (((from_bitField0_ & 0x00008000) != 0)) { result.allConversionsFromMenu_ = allConversionsFromMenu_; to_bitField0_ |= 0x00008000; } if (((from_bitField0_ & 0x00010000) != 0)) { result.allConversionsFromOrder_ = allConversionsFromOrder_; to_bitField0_ |= 0x00010000; } if (((from_bitField0_ & 0x00020000) != 0)) { result.allConversionsFromOtherEngagement_ = allConversionsFromOtherEngagement_; to_bitField0_ |= 0x00020000; } if (((from_bitField0_ & 0x00040000) != 0)) { result.allConversionsFromStoreVisit_ = allConversionsFromStoreVisit_; to_bitField0_ |= 0x00040000; } if (((from_bitField0_ & 0x00080000) != 0)) { result.allConversionsFromStoreWebsite_ = allConversionsFromStoreWebsite_; to_bitField0_ |= 0x00080000; } if (((from_bitField0_ & 0x00100000) != 0)) { result.averageCost_ = averageCost_; to_bitField0_ |= 0x00100000; } if (((from_bitField0_ & 0x00200000) != 0)) { result.averageCpc_ = averageCpc_; to_bitField0_ |= 0x00200000; } if (((from_bitField0_ & 0x00400000) != 0)) { result.averageCpe_ = averageCpe_; to_bitField0_ |= 0x00400000; } if (((from_bitField0_ & 0x00800000) != 0)) { result.averageCpm_ = averageCpm_; to_bitField0_ |= 0x00800000; } if (((from_bitField0_ & 0x01000000) != 0)) { result.averageCpv_ = averageCpv_; to_bitField0_ |= 0x01000000; } if (((from_bitField0_ & 0x02000000) != 0)) { result.averagePageViews_ = averagePageViews_; to_bitField0_ |= 0x02000000; } if (((from_bitField0_ & 0x04000000) != 0)) { result.averageTimeOnSite_ = averageTimeOnSite_; to_bitField0_ |= 0x04000000; } if (((from_bitField0_ & 0x08000000) != 0)) { result.benchmarkAverageMaxCpc_ = benchmarkAverageMaxCpc_; to_bitField0_ |= 0x08000000; } if (((from_bitField0_ & 0x10000000) != 0)) { result.biddableAppInstallConversions_ = biddableAppInstallConversions_; to_bitField0_ |= 0x10000000; } if (((from_bitField0_ & 0x20000000) != 0)) { result.biddableAppPostInstallConversions_ = biddableAppPostInstallConversions_; to_bitField0_ |= 0x20000000; } if (((from_bitField0_ & 0x40000000) != 0)) { result.benchmarkCtr_ = benchmarkCtr_; to_bitField0_ |= 0x40000000; } if (((from_bitField0_ & 0x80000000) != 0)) { result.bounceRate_ = bounceRate_; to_bitField0_ |= 0x80000000; } if (((from_bitField1_ & 0x00000001) != 0)) { result.clicks_ = clicks_; to_bitField1_ |= 0x00000001; } if (((from_bitField1_ & 0x00000002) != 0)) { result.combinedClicks_ = combinedClicks_; to_bitField1_ |= 0x00000002; } if (((from_bitField1_ & 0x00000004) != 0)) { result.combinedClicksPerQuery_ = combinedClicksPerQuery_; to_bitField1_ |= 0x00000004; } if (((from_bitField1_ & 0x00000008) != 0)) { result.combinedQueries_ = combinedQueries_; to_bitField1_ |= 0x00000008; } if (((from_bitField1_ & 0x00000010) != 0)) { result.contentBudgetLostImpressionShare_ = contentBudgetLostImpressionShare_; to_bitField1_ |= 0x00000010; } if (((from_bitField1_ & 0x00000020) != 0)) { result.contentImpressionShare_ = contentImpressionShare_; to_bitField1_ |= 0x00000020; } if (((from_bitField1_ & 0x00000040) != 0)) { to_bitField1_ |= 0x00000040; } result.conversionLastReceivedRequestDateTime_ = conversionLastReceivedRequestDateTime_; if (((from_bitField1_ & 0x00000080) != 0)) { to_bitField1_ |= 0x00000080; } result.conversionLastConversionDate_ = conversionLastConversionDate_; if (((from_bitField1_ & 0x00000100) != 0)) { result.contentRankLostImpressionShare_ = contentRankLostImpressionShare_; to_bitField1_ |= 0x00000100; } if (((from_bitField1_ & 0x00000200) != 0)) { result.conversionsFromInteractionsRate_ = conversionsFromInteractionsRate_; to_bitField1_ |= 0x00000200; } if (((from_bitField1_ & 0x00000400) != 0)) { result.conversionsValue_ = conversionsValue_; to_bitField1_ |= 0x00000400; } result.conversionsValueByConversionDate_ = conversionsValueByConversionDate_; if (((from_bitField1_ & 0x00000800) != 0)) { result.conversionsValuePerCost_ = conversionsValuePerCost_; to_bitField1_ |= 0x00000800; } if (((from_bitField1_ & 0x00001000) != 0)) { result.conversionsFromInteractionsValuePerInteraction_ = conversionsFromInteractionsValuePerInteraction_; to_bitField1_ |= 0x00001000; } if (((from_bitField1_ & 0x00002000) != 0)) { result.conversions_ = conversions_; to_bitField1_ |= 0x00002000; } result.conversionsByConversionDate_ = conversionsByConversionDate_; if (((from_bitField1_ & 0x00004000) != 0)) { result.costMicros_ = costMicros_; to_bitField1_ |= 0x00004000; } if (((from_bitField1_ & 0x00008000) != 0)) { result.costPerAllConversions_ = costPerAllConversions_; to_bitField1_ |= 0x00008000; } if (((from_bitField1_ & 0x00010000) != 0)) { result.costPerConversion_ = costPerConversion_; to_bitField1_ |= 0x00010000; } if (((from_bitField1_ & 0x00020000) != 0)) { result.costPerCurrentModelAttributedConversion_ = costPerCurrentModelAttributedConversion_; to_bitField1_ |= 0x00020000; } if (((from_bitField1_ & 0x00040000) != 0)) { result.crossDeviceConversions_ = crossDeviceConversions_; to_bitField1_ |= 0x00040000; } if (((from_bitField1_ & 0x00080000) != 0)) { result.ctr_ = ctr_; to_bitField1_ |= 0x00080000; } if (((from_bitField1_ & 0x00100000) != 0)) { result.currentModelAttributedConversions_ = currentModelAttributedConversions_; to_bitField1_ |= 0x00100000; } if (((from_bitField1_ & 0x00200000) != 0)) { result.currentModelAttributedConversionsFromInteractionsRate_ = currentModelAttributedConversionsFromInteractionsRate_; to_bitField1_ |= 0x00200000; } if (((from_bitField1_ & 0x00400000) != 0)) { result.currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = currentModelAttributedConversionsFromInteractionsValuePerInteraction_; to_bitField1_ |= 0x00400000; } if (((from_bitField1_ & 0x00800000) != 0)) { result.currentModelAttributedConversionsValue_ = currentModelAttributedConversionsValue_; to_bitField1_ |= 0x00800000; } if (((from_bitField1_ & 0x01000000) != 0)) { result.currentModelAttributedConversionsValuePerCost_ = currentModelAttributedConversionsValuePerCost_; to_bitField1_ |= 0x01000000; } if (((from_bitField1_ & 0x02000000) != 0)) { result.engagementRate_ = engagementRate_; to_bitField1_ |= 0x02000000; } if (((from_bitField1_ & 0x04000000) != 0)) { result.engagements_ = engagements_; to_bitField1_ |= 0x04000000; } if (((from_bitField1_ & 0x08000000) != 0)) { result.hotelAverageLeadValueMicros_ = hotelAverageLeadValueMicros_; to_bitField1_ |= 0x08000000; } if (((from_bitField1_ & 0x10000000) != 0)) { result.hotelCommissionRateMicros_ = hotelCommissionRateMicros_; to_bitField1_ |= 0x10000000; } if (((from_bitField1_ & 0x20000000) != 0)) { result.hotelExpectedCommissionCost_ = hotelExpectedCommissionCost_; to_bitField1_ |= 0x20000000; } if (((from_bitField1_ & 0x40000000) != 0)) { result.hotelPriceDifferencePercentage_ = hotelPriceDifferencePercentage_; to_bitField1_ |= 0x40000000; } if (((from_bitField1_ & 0x80000000) != 0)) { result.hotelEligibleImpressions_ = hotelEligibleImpressions_; to_bitField1_ |= 0x80000000; } result.historicalCreativeQualityScore_ = historicalCreativeQualityScore_; result.historicalLandingPageQualityScore_ = historicalLandingPageQualityScore_; if (((from_bitField2_ & 0x00000001) != 0)) { result.historicalQualityScore_ = historicalQualityScore_; to_bitField2_ |= 0x00000001; } result.historicalSearchPredictedCtr_ = historicalSearchPredictedCtr_; if (((from_bitField2_ & 0x00000002) != 0)) { result.gmailForwards_ = gmailForwards_; to_bitField2_ |= 0x00000002; } if (((from_bitField2_ & 0x00000004) != 0)) { result.gmailSaves_ = gmailSaves_; to_bitField2_ |= 0x00000004; } if (((from_bitField2_ & 0x00000008) != 0)) { result.gmailSecondaryClicks_ = gmailSecondaryClicks_; to_bitField2_ |= 0x00000008; } if (((from_bitField2_ & 0x00000010) != 0)) { result.impressionsFromStoreReach_ = impressionsFromStoreReach_; to_bitField2_ |= 0x00000010; } if (((from_bitField2_ & 0x00000020) != 0)) { result.impressions_ = impressions_; to_bitField2_ |= 0x00000020; } if (((from_bitField2_ & 0x00000040) != 0)) { result.interactionRate_ = interactionRate_; to_bitField2_ |= 0x00000040; } if (((from_bitField2_ & 0x00000080) != 0)) { result.interactions_ = interactions_; to_bitField2_ |= 0x00000080; } if (((bitField2_ & 0x00000100) != 0)) { interactionEventTypes_ = java.util.Collections.unmodifiableList(interactionEventTypes_); bitField2_ = (bitField2_ & ~0x00000100); } result.interactionEventTypes_ = interactionEventTypes_; if (((from_bitField2_ & 0x00000200) != 0)) { result.invalidClickRate_ = invalidClickRate_; to_bitField2_ |= 0x00000100; } if (((from_bitField2_ & 0x00000400) != 0)) { result.invalidClicks_ = invalidClicks_; to_bitField2_ |= 0x00000200; } if (((from_bitField2_ & 0x00000800) != 0)) { result.messageChats_ = messageChats_; to_bitField2_ |= 0x00000400; } if (((from_bitField2_ & 0x00001000) != 0)) { result.messageImpressions_ = messageImpressions_; to_bitField2_ |= 0x00000800; } if (((from_bitField2_ & 0x00002000) != 0)) { result.messageChatRate_ = messageChatRate_; to_bitField2_ |= 0x00001000; } if (((from_bitField2_ & 0x00004000) != 0)) { result.mobileFriendlyClicksPercentage_ = mobileFriendlyClicksPercentage_; to_bitField2_ |= 0x00002000; } if (((from_bitField2_ & 0x00008000) != 0)) { result.optimizationScoreUplift_ = optimizationScoreUplift_; to_bitField2_ |= 0x00004000; } if (((from_bitField2_ & 0x00010000) != 0)) { to_bitField2_ |= 0x00008000; } result.optimizationScoreUrl_ = optimizationScoreUrl_; if (((from_bitField2_ & 0x00020000) != 0)) { result.organicClicks_ = organicClicks_; to_bitField2_ |= 0x00010000; } if (((from_bitField2_ & 0x00040000) != 0)) { result.organicClicksPerQuery_ = organicClicksPerQuery_; to_bitField2_ |= 0x00020000; } if (((from_bitField2_ & 0x00080000) != 0)) { result.organicImpressions_ = organicImpressions_; to_bitField2_ |= 0x00040000; } if (((from_bitField2_ & 0x00100000) != 0)) { result.organicImpressionsPerQuery_ = organicImpressionsPerQuery_; to_bitField2_ |= 0x00080000; } if (((from_bitField2_ & 0x00200000) != 0)) { result.organicQueries_ = organicQueries_; to_bitField2_ |= 0x00100000; } if (((from_bitField2_ & 0x00400000) != 0)) { result.percentNewVisitors_ = percentNewVisitors_; to_bitField2_ |= 0x00200000; } if (((from_bitField2_ & 0x00800000) != 0)) { result.phoneCalls_ = phoneCalls_; to_bitField2_ |= 0x00400000; } if (((from_bitField2_ & 0x01000000) != 0)) { result.phoneImpressions_ = phoneImpressions_; to_bitField2_ |= 0x00800000; } if (((from_bitField2_ & 0x02000000) != 0)) { result.phoneThroughRate_ = phoneThroughRate_; to_bitField2_ |= 0x01000000; } if (((from_bitField2_ & 0x04000000) != 0)) { result.relativeCtr_ = relativeCtr_; to_bitField2_ |= 0x02000000; } if (((from_bitField2_ & 0x08000000) != 0)) { result.searchAbsoluteTopImpressionShare_ = searchAbsoluteTopImpressionShare_; to_bitField2_ |= 0x04000000; } if (((from_bitField2_ & 0x10000000) != 0)) { result.searchBudgetLostAbsoluteTopImpressionShare_ = searchBudgetLostAbsoluteTopImpressionShare_; to_bitField2_ |= 0x08000000; } if (((from_bitField2_ & 0x20000000) != 0)) { result.searchBudgetLostImpressionShare_ = searchBudgetLostImpressionShare_; to_bitField2_ |= 0x10000000; } if (((from_bitField2_ & 0x40000000) != 0)) { result.searchBudgetLostTopImpressionShare_ = searchBudgetLostTopImpressionShare_; to_bitField2_ |= 0x20000000; } if (((from_bitField2_ & 0x80000000) != 0)) { result.searchClickShare_ = searchClickShare_; to_bitField2_ |= 0x40000000; } if (((from_bitField3_ & 0x00000001) != 0)) { result.searchExactMatchImpressionShare_ = searchExactMatchImpressionShare_; to_bitField2_ |= 0x80000000; } if (((from_bitField3_ & 0x00000002) != 0)) { result.searchImpressionShare_ = searchImpressionShare_; to_bitField3_ |= 0x00000001; } if (((from_bitField3_ & 0x00000004) != 0)) { result.searchRankLostAbsoluteTopImpressionShare_ = searchRankLostAbsoluteTopImpressionShare_; to_bitField3_ |= 0x00000002; } if (((from_bitField3_ & 0x00000008) != 0)) { result.searchRankLostImpressionShare_ = searchRankLostImpressionShare_; to_bitField3_ |= 0x00000004; } if (((from_bitField3_ & 0x00000010) != 0)) { result.searchRankLostTopImpressionShare_ = searchRankLostTopImpressionShare_; to_bitField3_ |= 0x00000008; } if (((from_bitField3_ & 0x00000020) != 0)) { result.searchTopImpressionShare_ = searchTopImpressionShare_; to_bitField3_ |= 0x00000010; } if (((from_bitField3_ & 0x00000040) != 0)) { result.speedScore_ = speedScore_; to_bitField3_ |= 0x00000020; } if (((from_bitField3_ & 0x00000080) != 0)) { result.topImpressionPercentage_ = topImpressionPercentage_; to_bitField3_ |= 0x00000040; } if (((from_bitField3_ & 0x00000100) != 0)) { result.validAcceleratedMobilePagesClicksPercentage_ = validAcceleratedMobilePagesClicksPercentage_; to_bitField3_ |= 0x00000080; } if (((from_bitField3_ & 0x00000200) != 0)) { result.valuePerAllConversions_ = valuePerAllConversions_; to_bitField3_ |= 0x00000100; } if (((from_bitField3_ & 0x00000400) != 0)) { result.valuePerAllConversionsByConversionDate_ = valuePerAllConversionsByConversionDate_; to_bitField3_ |= 0x00000200; } if (((from_bitField3_ & 0x00000800) != 0)) { result.valuePerConversion_ = valuePerConversion_; to_bitField3_ |= 0x00000400; } if (((from_bitField3_ & 0x00001000) != 0)) { result.valuePerConversionsByConversionDate_ = valuePerConversionsByConversionDate_; to_bitField3_ |= 0x00000800; } if (((from_bitField3_ & 0x00002000) != 0)) { result.valuePerCurrentModelAttributedConversion_ = valuePerCurrentModelAttributedConversion_; to_bitField3_ |= 0x00001000; } if (((from_bitField3_ & 0x00004000) != 0)) { result.videoQuartileP100Rate_ = videoQuartileP100Rate_; to_bitField3_ |= 0x00002000; } if (((from_bitField3_ & 0x00008000) != 0)) { result.videoQuartileP25Rate_ = videoQuartileP25Rate_; to_bitField3_ |= 0x00004000; } if (((from_bitField3_ & 0x00010000) != 0)) { result.videoQuartileP50Rate_ = videoQuartileP50Rate_; to_bitField3_ |= 0x00008000; } if (((from_bitField3_ & 0x00020000) != 0)) { result.videoQuartileP75Rate_ = videoQuartileP75Rate_; to_bitField3_ |= 0x00010000; } if (((from_bitField3_ & 0x00040000) != 0)) { result.videoViewRate_ = videoViewRate_; to_bitField3_ |= 0x00020000; } if (((from_bitField3_ & 0x00080000) != 0)) { result.videoViews_ = videoViews_; to_bitField3_ |= 0x00040000; } if (((from_bitField3_ & 0x00100000) != 0)) { result.viewThroughConversions_ = viewThroughConversions_; to_bitField3_ |= 0x00080000; } result.skAdNetworkConversions_ = skAdNetworkConversions_; result.bitField0_ = to_bitField0_; result.bitField1_ = to_bitField1_; result.bitField2_ = to_bitField2_; result.bitField3_ = to_bitField3_; onBuilt(); return result; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.google.ads.googleads.v10.common.Metrics) { return mergeFrom((com.google.ads.googleads.v10.common.Metrics)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(com.google.ads.googleads.v10.common.Metrics other) { if (other == com.google.ads.googleads.v10.common.Metrics.getDefaultInstance()) return this; if (other.hasAbsoluteTopImpressionPercentage()) { setAbsoluteTopImpressionPercentage(other.getAbsoluteTopImpressionPercentage()); } if (other.hasActiveViewCpm()) { setActiveViewCpm(other.getActiveViewCpm()); } if (other.hasActiveViewCtr()) { setActiveViewCtr(other.getActiveViewCtr()); } if (other.hasActiveViewImpressions()) { setActiveViewImpressions(other.getActiveViewImpressions()); } if (other.hasActiveViewMeasurability()) { setActiveViewMeasurability(other.getActiveViewMeasurability()); } if (other.hasActiveViewMeasurableCostMicros()) { setActiveViewMeasurableCostMicros(other.getActiveViewMeasurableCostMicros()); } if (other.hasActiveViewMeasurableImpressions()) { setActiveViewMeasurableImpressions(other.getActiveViewMeasurableImpressions()); } if (other.hasActiveViewViewability()) { setActiveViewViewability(other.getActiveViewViewability()); } if (other.hasAllConversionsFromInteractionsRate()) { setAllConversionsFromInteractionsRate(other.getAllConversionsFromInteractionsRate()); } if (other.hasAllConversionsValue()) { setAllConversionsValue(other.getAllConversionsValue()); } if (other.getAllConversionsValueByConversionDate() != 0D) { setAllConversionsValueByConversionDate(other.getAllConversionsValueByConversionDate()); } if (other.hasAllConversions()) { setAllConversions(other.getAllConversions()); } if (other.getAllConversionsByConversionDate() != 0D) { setAllConversionsByConversionDate(other.getAllConversionsByConversionDate()); } if (other.hasAllConversionsValuePerCost()) { setAllConversionsValuePerCost(other.getAllConversionsValuePerCost()); } if (other.hasAllConversionsFromClickToCall()) { setAllConversionsFromClickToCall(other.getAllConversionsFromClickToCall()); } if (other.hasAllConversionsFromDirections()) { setAllConversionsFromDirections(other.getAllConversionsFromDirections()); } if (other.hasAllConversionsFromInteractionsValuePerInteraction()) { setAllConversionsFromInteractionsValuePerInteraction(other.getAllConversionsFromInteractionsValuePerInteraction()); } if (other.hasAllConversionsFromMenu()) { setAllConversionsFromMenu(other.getAllConversionsFromMenu()); } if (other.hasAllConversionsFromOrder()) { setAllConversionsFromOrder(other.getAllConversionsFromOrder()); } if (other.hasAllConversionsFromOtherEngagement()) { setAllConversionsFromOtherEngagement(other.getAllConversionsFromOtherEngagement()); } if (other.hasAllConversionsFromStoreVisit()) { setAllConversionsFromStoreVisit(other.getAllConversionsFromStoreVisit()); } if (other.hasAllConversionsFromStoreWebsite()) { setAllConversionsFromStoreWebsite(other.getAllConversionsFromStoreWebsite()); } if (other.hasAverageCost()) { setAverageCost(other.getAverageCost()); } if (other.hasAverageCpc()) { setAverageCpc(other.getAverageCpc()); } if (other.hasAverageCpe()) { setAverageCpe(other.getAverageCpe()); } if (other.hasAverageCpm()) { setAverageCpm(other.getAverageCpm()); } if (other.hasAverageCpv()) { setAverageCpv(other.getAverageCpv()); } if (other.hasAveragePageViews()) { setAveragePageViews(other.getAveragePageViews()); } if (other.hasAverageTimeOnSite()) { setAverageTimeOnSite(other.getAverageTimeOnSite()); } if (other.hasBenchmarkAverageMaxCpc()) { setBenchmarkAverageMaxCpc(other.getBenchmarkAverageMaxCpc()); } if (other.hasBiddableAppInstallConversions()) { setBiddableAppInstallConversions(other.getBiddableAppInstallConversions()); } if (other.hasBiddableAppPostInstallConversions()) { setBiddableAppPostInstallConversions(other.getBiddableAppPostInstallConversions()); } if (other.hasBenchmarkCtr()) { setBenchmarkCtr(other.getBenchmarkCtr()); } if (other.hasBounceRate()) { setBounceRate(other.getBounceRate()); } if (other.hasClicks()) { setClicks(other.getClicks()); } if (other.hasCombinedClicks()) { setCombinedClicks(other.getCombinedClicks()); } if (other.hasCombinedClicksPerQuery()) { setCombinedClicksPerQuery(other.getCombinedClicksPerQuery()); } if (other.hasCombinedQueries()) { setCombinedQueries(other.getCombinedQueries()); } if (other.hasContentBudgetLostImpressionShare()) { setContentBudgetLostImpressionShare(other.getContentBudgetLostImpressionShare()); } if (other.hasContentImpressionShare()) { setContentImpressionShare(other.getContentImpressionShare()); } if (other.hasConversionLastReceivedRequestDateTime()) { bitField1_ |= 0x00000040; conversionLastReceivedRequestDateTime_ = other.conversionLastReceivedRequestDateTime_; onChanged(); } if (other.hasConversionLastConversionDate()) { bitField1_ |= 0x00000080; conversionLastConversionDate_ = other.conversionLastConversionDate_; onChanged(); } if (other.hasContentRankLostImpressionShare()) { setContentRankLostImpressionShare(other.getContentRankLostImpressionShare()); } if (other.hasConversionsFromInteractionsRate()) { setConversionsFromInteractionsRate(other.getConversionsFromInteractionsRate()); } if (other.hasConversionsValue()) { setConversionsValue(other.getConversionsValue()); } if (other.getConversionsValueByConversionDate() != 0D) { setConversionsValueByConversionDate(other.getConversionsValueByConversionDate()); } if (other.hasConversionsValuePerCost()) { setConversionsValuePerCost(other.getConversionsValuePerCost()); } if (other.hasConversionsFromInteractionsValuePerInteraction()) { setConversionsFromInteractionsValuePerInteraction(other.getConversionsFromInteractionsValuePerInteraction()); } if (other.hasConversions()) { setConversions(other.getConversions()); } if (other.getConversionsByConversionDate() != 0D) { setConversionsByConversionDate(other.getConversionsByConversionDate()); } if (other.hasCostMicros()) { setCostMicros(other.getCostMicros()); } if (other.hasCostPerAllConversions()) { setCostPerAllConversions(other.getCostPerAllConversions()); } if (other.hasCostPerConversion()) { setCostPerConversion(other.getCostPerConversion()); } if (other.hasCostPerCurrentModelAttributedConversion()) { setCostPerCurrentModelAttributedConversion(other.getCostPerCurrentModelAttributedConversion()); } if (other.hasCrossDeviceConversions()) { setCrossDeviceConversions(other.getCrossDeviceConversions()); } if (other.hasCtr()) { setCtr(other.getCtr()); } if (other.hasCurrentModelAttributedConversions()) { setCurrentModelAttributedConversions(other.getCurrentModelAttributedConversions()); } if (other.hasCurrentModelAttributedConversionsFromInteractionsRate()) { setCurrentModelAttributedConversionsFromInteractionsRate(other.getCurrentModelAttributedConversionsFromInteractionsRate()); } if (other.hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction()) { setCurrentModelAttributedConversionsFromInteractionsValuePerInteraction(other.getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction()); } if (other.hasCurrentModelAttributedConversionsValue()) { setCurrentModelAttributedConversionsValue(other.getCurrentModelAttributedConversionsValue()); } if (other.hasCurrentModelAttributedConversionsValuePerCost()) { setCurrentModelAttributedConversionsValuePerCost(other.getCurrentModelAttributedConversionsValuePerCost()); } if (other.hasEngagementRate()) { setEngagementRate(other.getEngagementRate()); } if (other.hasEngagements()) { setEngagements(other.getEngagements()); } if (other.hasHotelAverageLeadValueMicros()) { setHotelAverageLeadValueMicros(other.getHotelAverageLeadValueMicros()); } if (other.hasHotelCommissionRateMicros()) { setHotelCommissionRateMicros(other.getHotelCommissionRateMicros()); } if (other.hasHotelExpectedCommissionCost()) { setHotelExpectedCommissionCost(other.getHotelExpectedCommissionCost()); } if (other.hasHotelPriceDifferencePercentage()) { setHotelPriceDifferencePercentage(other.getHotelPriceDifferencePercentage()); } if (other.hasHotelEligibleImpressions()) { setHotelEligibleImpressions(other.getHotelEligibleImpressions()); } if (other.historicalCreativeQualityScore_ != 0) { setHistoricalCreativeQualityScoreValue(other.getHistoricalCreativeQualityScoreValue()); } if (other.historicalLandingPageQualityScore_ != 0) { setHistoricalLandingPageQualityScoreValue(other.getHistoricalLandingPageQualityScoreValue()); } if (other.hasHistoricalQualityScore()) { setHistoricalQualityScore(other.getHistoricalQualityScore()); } if (other.historicalSearchPredictedCtr_ != 0) { setHistoricalSearchPredictedCtrValue(other.getHistoricalSearchPredictedCtrValue()); } if (other.hasGmailForwards()) { setGmailForwards(other.getGmailForwards()); } if (other.hasGmailSaves()) { setGmailSaves(other.getGmailSaves()); } if (other.hasGmailSecondaryClicks()) { setGmailSecondaryClicks(other.getGmailSecondaryClicks()); } if (other.hasImpressionsFromStoreReach()) { setImpressionsFromStoreReach(other.getImpressionsFromStoreReach()); } if (other.hasImpressions()) { setImpressions(other.getImpressions()); } if (other.hasInteractionRate()) { setInteractionRate(other.getInteractionRate()); } if (other.hasInteractions()) { setInteractions(other.getInteractions()); } if (!other.interactionEventTypes_.isEmpty()) { if (interactionEventTypes_.isEmpty()) { interactionEventTypes_ = other.interactionEventTypes_; bitField2_ = (bitField2_ & ~0x00000100); } else { ensureInteractionEventTypesIsMutable(); interactionEventTypes_.addAll(other.interactionEventTypes_); } onChanged(); } if (other.hasInvalidClickRate()) { setInvalidClickRate(other.getInvalidClickRate()); } if (other.hasInvalidClicks()) { setInvalidClicks(other.getInvalidClicks()); } if (other.hasMessageChats()) { setMessageChats(other.getMessageChats()); } if (other.hasMessageImpressions()) { setMessageImpressions(other.getMessageImpressions()); } if (other.hasMessageChatRate()) { setMessageChatRate(other.getMessageChatRate()); } if (other.hasMobileFriendlyClicksPercentage()) { setMobileFriendlyClicksPercentage(other.getMobileFriendlyClicksPercentage()); } if (other.hasOptimizationScoreUplift()) { setOptimizationScoreUplift(other.getOptimizationScoreUplift()); } if (other.hasOptimizationScoreUrl()) { bitField2_ |= 0x00010000; optimizationScoreUrl_ = other.optimizationScoreUrl_; onChanged(); } if (other.hasOrganicClicks()) { setOrganicClicks(other.getOrganicClicks()); } if (other.hasOrganicClicksPerQuery()) { setOrganicClicksPerQuery(other.getOrganicClicksPerQuery()); } if (other.hasOrganicImpressions()) { setOrganicImpressions(other.getOrganicImpressions()); } if (other.hasOrganicImpressionsPerQuery()) { setOrganicImpressionsPerQuery(other.getOrganicImpressionsPerQuery()); } if (other.hasOrganicQueries()) { setOrganicQueries(other.getOrganicQueries()); } if (other.hasPercentNewVisitors()) { setPercentNewVisitors(other.getPercentNewVisitors()); } if (other.hasPhoneCalls()) { setPhoneCalls(other.getPhoneCalls()); } if (other.hasPhoneImpressions()) { setPhoneImpressions(other.getPhoneImpressions()); } if (other.hasPhoneThroughRate()) { setPhoneThroughRate(other.getPhoneThroughRate()); } if (other.hasRelativeCtr()) { setRelativeCtr(other.getRelativeCtr()); } if (other.hasSearchAbsoluteTopImpressionShare()) { setSearchAbsoluteTopImpressionShare(other.getSearchAbsoluteTopImpressionShare()); } if (other.hasSearchBudgetLostAbsoluteTopImpressionShare()) { setSearchBudgetLostAbsoluteTopImpressionShare(other.getSearchBudgetLostAbsoluteTopImpressionShare()); } if (other.hasSearchBudgetLostImpressionShare()) { setSearchBudgetLostImpressionShare(other.getSearchBudgetLostImpressionShare()); } if (other.hasSearchBudgetLostTopImpressionShare()) { setSearchBudgetLostTopImpressionShare(other.getSearchBudgetLostTopImpressionShare()); } if (other.hasSearchClickShare()) { setSearchClickShare(other.getSearchClickShare()); } if (other.hasSearchExactMatchImpressionShare()) { setSearchExactMatchImpressionShare(other.getSearchExactMatchImpressionShare()); } if (other.hasSearchImpressionShare()) { setSearchImpressionShare(other.getSearchImpressionShare()); } if (other.hasSearchRankLostAbsoluteTopImpressionShare()) { setSearchRankLostAbsoluteTopImpressionShare(other.getSearchRankLostAbsoluteTopImpressionShare()); } if (other.hasSearchRankLostImpressionShare()) { setSearchRankLostImpressionShare(other.getSearchRankLostImpressionShare()); } if (other.hasSearchRankLostTopImpressionShare()) { setSearchRankLostTopImpressionShare(other.getSearchRankLostTopImpressionShare()); } if (other.hasSearchTopImpressionShare()) { setSearchTopImpressionShare(other.getSearchTopImpressionShare()); } if (other.hasSpeedScore()) { setSpeedScore(other.getSpeedScore()); } if (other.hasTopImpressionPercentage()) { setTopImpressionPercentage(other.getTopImpressionPercentage()); } if (other.hasValidAcceleratedMobilePagesClicksPercentage()) { setValidAcceleratedMobilePagesClicksPercentage(other.getValidAcceleratedMobilePagesClicksPercentage()); } if (other.hasValuePerAllConversions()) { setValuePerAllConversions(other.getValuePerAllConversions()); } if (other.hasValuePerAllConversionsByConversionDate()) { setValuePerAllConversionsByConversionDate(other.getValuePerAllConversionsByConversionDate()); } if (other.hasValuePerConversion()) { setValuePerConversion(other.getValuePerConversion()); } if (other.hasValuePerConversionsByConversionDate()) { setValuePerConversionsByConversionDate(other.getValuePerConversionsByConversionDate()); } if (other.hasValuePerCurrentModelAttributedConversion()) { setValuePerCurrentModelAttributedConversion(other.getValuePerCurrentModelAttributedConversion()); } if (other.hasVideoQuartileP100Rate()) { setVideoQuartileP100Rate(other.getVideoQuartileP100Rate()); } if (other.hasVideoQuartileP25Rate()) { setVideoQuartileP25Rate(other.getVideoQuartileP25Rate()); } if (other.hasVideoQuartileP50Rate()) { setVideoQuartileP50Rate(other.getVideoQuartileP50Rate()); } if (other.hasVideoQuartileP75Rate()) { setVideoQuartileP75Rate(other.getVideoQuartileP75Rate()); } if (other.hasVideoViewRate()) { setVideoViewRate(other.getVideoViewRate()); } if (other.hasVideoViews()) { setVideoViews(other.getVideoViews()); } if (other.hasViewThroughConversions()) { setViewThroughConversions(other.getViewThroughConversions()); } if (other.getSkAdNetworkConversions() != 0L) { setSkAdNetworkConversions(other.getSkAdNetworkConversions()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 640: { historicalCreativeQualityScore_ = input.readEnum(); break; } // case 640 case 648: { historicalLandingPageQualityScore_ = input.readEnum(); break; } // case 648 case 664: { historicalSearchPredictedCtr_ = input.readEnum(); break; } // case 664 case 800: { int tmpRaw = input.readEnum(); ensureInteractionEventTypesIsMutable(); interactionEventTypes_.add(tmpRaw); break; } // case 800 case 802: { int length = input.readRawVarint32(); int oldLimit = input.pushLimit(length); while(input.getBytesUntilLimit() > 0) { int tmpRaw = input.readEnum(); ensureInteractionEventTypesIsMutable(); interactionEventTypes_.add(tmpRaw); } input.popLimit(oldLimit); break; } // case 802 case 1048: { clicks_ = input.readInt64(); bitField1_ |= 0x00000001; break; } // case 1048 case 1057: { videoQuartileP100Rate_ = input.readDouble(); bitField3_ |= 0x00004000; break; } // case 1057 case 1065: { videoQuartileP25Rate_ = input.readDouble(); bitField3_ |= 0x00008000; break; } // case 1065 case 1073: { videoQuartileP50Rate_ = input.readDouble(); bitField3_ |= 0x00010000; break; } // case 1073 case 1081: { videoQuartileP75Rate_ = input.readDouble(); bitField3_ |= 0x00020000; break; } // case 1081 case 1089: { searchAbsoluteTopImpressionShare_ = input.readDouble(); bitField2_ |= 0x08000000; break; } // case 1089 case 1097: { searchBudgetLostAbsoluteTopImpressionShare_ = input.readDouble(); bitField2_ |= 0x10000000; break; } // case 1097 case 1105: { searchBudgetLostImpressionShare_ = input.readDouble(); bitField2_ |= 0x20000000; break; } // case 1105 case 1113: { searchBudgetLostTopImpressionShare_ = input.readDouble(); bitField2_ |= 0x40000000; break; } // case 1113 case 1121: { searchClickShare_ = input.readDouble(); bitField2_ |= 0x80000000; break; } // case 1121 case 1129: { searchExactMatchImpressionShare_ = input.readDouble(); bitField3_ |= 0x00000001; break; } // case 1129 case 1137: { searchImpressionShare_ = input.readDouble(); bitField3_ |= 0x00000002; break; } // case 1137 case 1145: { searchRankLostAbsoluteTopImpressionShare_ = input.readDouble(); bitField3_ |= 0x00000004; break; } // case 1145 case 1153: { searchRankLostImpressionShare_ = input.readDouble(); bitField3_ |= 0x00000008; break; } // case 1153 case 1161: { searchRankLostTopImpressionShare_ = input.readDouble(); bitField3_ |= 0x00000010; break; } // case 1161 case 1169: { searchTopImpressionShare_ = input.readDouble(); bitField3_ |= 0x00000020; break; } // case 1169 case 1176: { speedScore_ = input.readInt64(); bitField3_ |= 0x00000040; break; } // case 1176 case 1185: { topImpressionPercentage_ = input.readDouble(); bitField3_ |= 0x00000080; break; } // case 1185 case 1193: { validAcceleratedMobilePagesClicksPercentage_ = input.readDouble(); bitField3_ |= 0x00000100; break; } // case 1193 case 1201: { valuePerAllConversions_ = input.readDouble(); bitField3_ |= 0x00000200; break; } // case 1201 case 1209: { valuePerConversion_ = input.readDouble(); bitField3_ |= 0x00000800; break; } // case 1209 case 1217: { valuePerCurrentModelAttributedConversion_ = input.readDouble(); bitField3_ |= 0x00002000; break; } // case 1217 case 1225: { videoViewRate_ = input.readDouble(); bitField3_ |= 0x00040000; break; } // case 1225 case 1232: { videoViews_ = input.readInt64(); bitField3_ |= 0x00080000; break; } // case 1232 case 1240: { viewThroughConversions_ = input.readInt64(); bitField3_ |= 0x00100000; break; } // case 1240 case 1248: { combinedClicks_ = input.readInt64(); bitField1_ |= 0x00000002; break; } // case 1248 case 1257: { combinedClicksPerQuery_ = input.readDouble(); bitField1_ |= 0x00000004; break; } // case 1257 case 1264: { combinedQueries_ = input.readInt64(); bitField1_ |= 0x00000008; break; } // case 1264 case 1273: { contentBudgetLostImpressionShare_ = input.readDouble(); bitField1_ |= 0x00000010; break; } // case 1273 case 1281: { contentImpressionShare_ = input.readDouble(); bitField1_ |= 0x00000020; break; } // case 1281 case 1290: { conversionLastReceivedRequestDateTime_ = input.readStringRequireUtf8(); bitField1_ |= 0x00000040; break; } // case 1290 case 1298: { conversionLastConversionDate_ = input.readStringRequireUtf8(); bitField1_ |= 0x00000080; break; } // case 1298 case 1305: { contentRankLostImpressionShare_ = input.readDouble(); bitField1_ |= 0x00000100; break; } // case 1305 case 1313: { conversionsFromInteractionsRate_ = input.readDouble(); bitField1_ |= 0x00000200; break; } // case 1313 case 1321: { conversionsValue_ = input.readDouble(); bitField1_ |= 0x00000400; break; } // case 1321 case 1329: { conversionsValuePerCost_ = input.readDouble(); bitField1_ |= 0x00000800; break; } // case 1329 case 1337: { conversionsFromInteractionsValuePerInteraction_ = input.readDouble(); bitField1_ |= 0x00001000; break; } // case 1337 case 1345: { conversions_ = input.readDouble(); bitField1_ |= 0x00002000; break; } // case 1345 case 1352: { costMicros_ = input.readInt64(); bitField1_ |= 0x00004000; break; } // case 1352 case 1361: { costPerAllConversions_ = input.readDouble(); bitField1_ |= 0x00008000; break; } // case 1361 case 1369: { costPerConversion_ = input.readDouble(); bitField1_ |= 0x00010000; break; } // case 1369 case 1377: { costPerCurrentModelAttributedConversion_ = input.readDouble(); bitField1_ |= 0x00020000; break; } // case 1377 case 1385: { crossDeviceConversions_ = input.readDouble(); bitField1_ |= 0x00040000; break; } // case 1385 case 1393: { ctr_ = input.readDouble(); bitField1_ |= 0x00080000; break; } // case 1393 case 1401: { currentModelAttributedConversions_ = input.readDouble(); bitField1_ |= 0x00100000; break; } // case 1401 case 1409: { currentModelAttributedConversionsFromInteractionsRate_ = input.readDouble(); bitField1_ |= 0x00200000; break; } // case 1409 case 1417: { currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = input.readDouble(); bitField1_ |= 0x00400000; break; } // case 1417 case 1425: { currentModelAttributedConversionsValue_ = input.readDouble(); bitField1_ |= 0x00800000; break; } // case 1425 case 1433: { currentModelAttributedConversionsValuePerCost_ = input.readDouble(); bitField1_ |= 0x01000000; break; } // case 1433 case 1441: { engagementRate_ = input.readDouble(); bitField1_ |= 0x02000000; break; } // case 1441 case 1448: { engagements_ = input.readInt64(); bitField1_ |= 0x04000000; break; } // case 1448 case 1465: { absoluteTopImpressionPercentage_ = input.readDouble(); bitField0_ |= 0x00000001; break; } // case 1465 case 1473: { activeViewCpm_ = input.readDouble(); bitField0_ |= 0x00000002; break; } // case 1473 case 1481: { activeViewCtr_ = input.readDouble(); bitField0_ |= 0x00000004; break; } // case 1481 case 1488: { activeViewImpressions_ = input.readInt64(); bitField0_ |= 0x00000008; break; } // case 1488 case 1497: { activeViewMeasurability_ = input.readDouble(); bitField0_ |= 0x00000010; break; } // case 1497 case 1504: { activeViewMeasurableCostMicros_ = input.readInt64(); bitField0_ |= 0x00000020; break; } // case 1504 case 1512: { activeViewMeasurableImpressions_ = input.readInt64(); bitField0_ |= 0x00000040; break; } // case 1512 case 1521: { activeViewViewability_ = input.readDouble(); bitField0_ |= 0x00000080; break; } // case 1521 case 1529: { allConversionsFromInteractionsRate_ = input.readDouble(); bitField0_ |= 0x00000100; break; } // case 1529 case 1537: { allConversionsValue_ = input.readDouble(); bitField0_ |= 0x00000200; break; } // case 1537 case 1545: { allConversions_ = input.readDouble(); bitField0_ |= 0x00000400; break; } // case 1545 case 1553: { allConversionsValuePerCost_ = input.readDouble(); bitField0_ |= 0x00000800; break; } // case 1553 case 1561: { allConversionsFromClickToCall_ = input.readDouble(); bitField0_ |= 0x00001000; break; } // case 1561 case 1569: { allConversionsFromDirections_ = input.readDouble(); bitField0_ |= 0x00002000; break; } // case 1569 case 1577: { allConversionsFromInteractionsValuePerInteraction_ = input.readDouble(); bitField0_ |= 0x00004000; break; } // case 1577 case 1585: { allConversionsFromMenu_ = input.readDouble(); bitField0_ |= 0x00008000; break; } // case 1585 case 1593: { allConversionsFromOrder_ = input.readDouble(); bitField0_ |= 0x00010000; break; } // case 1593 case 1601: { allConversionsFromOtherEngagement_ = input.readDouble(); bitField0_ |= 0x00020000; break; } // case 1601 case 1609: { allConversionsFromStoreVisit_ = input.readDouble(); bitField0_ |= 0x00040000; break; } // case 1609 case 1617: { allConversionsFromStoreWebsite_ = input.readDouble(); bitField0_ |= 0x00080000; break; } // case 1617 case 1625: { averageCost_ = input.readDouble(); bitField0_ |= 0x00100000; break; } // case 1625 case 1633: { averageCpc_ = input.readDouble(); bitField0_ |= 0x00200000; break; } // case 1633 case 1641: { averageCpe_ = input.readDouble(); bitField0_ |= 0x00400000; break; } // case 1641 case 1649: { averageCpm_ = input.readDouble(); bitField0_ |= 0x00800000; break; } // case 1649 case 1657: { averageCpv_ = input.readDouble(); bitField0_ |= 0x01000000; break; } // case 1657 case 1665: { averagePageViews_ = input.readDouble(); bitField0_ |= 0x02000000; break; } // case 1665 case 1673: { averageTimeOnSite_ = input.readDouble(); bitField0_ |= 0x04000000; break; } // case 1673 case 1681: { benchmarkAverageMaxCpc_ = input.readDouble(); bitField0_ |= 0x08000000; break; } // case 1681 case 1689: { benchmarkCtr_ = input.readDouble(); bitField0_ |= 0x40000000; break; } // case 1689 case 1697: { bounceRate_ = input.readDouble(); bitField0_ |= 0x80000000; break; } // case 1697 case 1705: { hotelAverageLeadValueMicros_ = input.readDouble(); bitField1_ |= 0x08000000; break; } // case 1705 case 1713: { hotelPriceDifferencePercentage_ = input.readDouble(); bitField1_ |= 0x40000000; break; } // case 1713 case 1720: { hotelEligibleImpressions_ = input.readInt64(); bitField1_ |= 0x80000000; break; } // case 1720 case 1728: { historicalQualityScore_ = input.readInt64(); bitField2_ |= 0x00000001; break; } // case 1728 case 1736: { gmailForwards_ = input.readInt64(); bitField2_ |= 0x00000002; break; } // case 1736 case 1744: { gmailSaves_ = input.readInt64(); bitField2_ |= 0x00000004; break; } // case 1744 case 1752: { gmailSecondaryClicks_ = input.readInt64(); bitField2_ |= 0x00000008; break; } // case 1752 case 1760: { impressionsFromStoreReach_ = input.readInt64(); bitField2_ |= 0x00000010; break; } // case 1760 case 1768: { impressions_ = input.readInt64(); bitField2_ |= 0x00000020; break; } // case 1768 case 1777: { interactionRate_ = input.readDouble(); bitField2_ |= 0x00000040; break; } // case 1777 case 1784: { interactions_ = input.readInt64(); bitField2_ |= 0x00000080; break; } // case 1784 case 1793: { invalidClickRate_ = input.readDouble(); bitField2_ |= 0x00000200; break; } // case 1793 case 1800: { invalidClicks_ = input.readInt64(); bitField2_ |= 0x00000400; break; } // case 1800 case 1808: { messageChats_ = input.readInt64(); bitField2_ |= 0x00000800; break; } // case 1808 case 1816: { messageImpressions_ = input.readInt64(); bitField2_ |= 0x00001000; break; } // case 1816 case 1825: { messageChatRate_ = input.readDouble(); bitField2_ |= 0x00002000; break; } // case 1825 case 1833: { mobileFriendlyClicksPercentage_ = input.readDouble(); bitField2_ |= 0x00004000; break; } // case 1833 case 1840: { organicClicks_ = input.readInt64(); bitField2_ |= 0x00020000; break; } // case 1840 case 1849: { organicClicksPerQuery_ = input.readDouble(); bitField2_ |= 0x00040000; break; } // case 1849 case 1856: { organicImpressions_ = input.readInt64(); bitField2_ |= 0x00080000; break; } // case 1856 case 1865: { organicImpressionsPerQuery_ = input.readDouble(); bitField2_ |= 0x00100000; break; } // case 1865 case 1872: { organicQueries_ = input.readInt64(); bitField2_ |= 0x00200000; break; } // case 1872 case 1881: { percentNewVisitors_ = input.readDouble(); bitField2_ |= 0x00400000; break; } // case 1881 case 1888: { phoneCalls_ = input.readInt64(); bitField2_ |= 0x00800000; break; } // case 1888 case 1896: { phoneImpressions_ = input.readInt64(); bitField2_ |= 0x01000000; break; } // case 1896 case 1905: { phoneThroughRate_ = input.readDouble(); bitField2_ |= 0x02000000; break; } // case 1905 case 1913: { relativeCtr_ = input.readDouble(); bitField2_ |= 0x04000000; break; } // case 1913 case 1921: { allConversionsValueByConversionDate_ = input.readDouble(); break; } // case 1921 case 1929: { allConversionsByConversionDate_ = input.readDouble(); break; } // case 1929 case 1937: { conversionsValueByConversionDate_ = input.readDouble(); break; } // case 1937 case 1945: { conversionsByConversionDate_ = input.readDouble(); break; } // case 1945 case 1953: { valuePerAllConversionsByConversionDate_ = input.readDouble(); bitField3_ |= 0x00000400; break; } // case 1953 case 1961: { valuePerConversionsByConversionDate_ = input.readDouble(); bitField3_ |= 0x00001000; break; } // case 1961 case 1968: { skAdNetworkConversions_ = input.readInt64(); break; } // case 1968 case 1977: { optimizationScoreUplift_ = input.readDouble(); bitField2_ |= 0x00008000; break; } // case 1977 case 1986: { optimizationScoreUrl_ = input.readStringRequireUtf8(); bitField2_ |= 0x00010000; break; } // case 1986 case 2033: { biddableAppInstallConversions_ = input.readDouble(); bitField0_ |= 0x10000000; break; } // case 2033 case 2041: { biddableAppPostInstallConversions_ = input.readDouble(); bitField0_ |= 0x20000000; break; } // case 2041 case 2048: { hotelCommissionRateMicros_ = input.readInt64(); bitField1_ |= 0x10000000; break; } // case 2048 case 2057: { hotelExpectedCommissionCost_ = input.readDouble(); bitField1_ |= 0x20000000; break; } // case 2057 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private int bitField1_; private int bitField2_; private int bitField3_; private double absoluteTopImpressionPercentage_ ; /** *
     * The percent of your ad impressions that are shown as the very first ad
     * above the organic search results.
     * 
* * optional double absolute_top_impression_percentage = 183; * @return Whether the absoluteTopImpressionPercentage field is set. */ @java.lang.Override public boolean hasAbsoluteTopImpressionPercentage() { return ((bitField0_ & 0x00000001) != 0); } /** *
     * The percent of your ad impressions that are shown as the very first ad
     * above the organic search results.
     * 
* * optional double absolute_top_impression_percentage = 183; * @return The absoluteTopImpressionPercentage. */ @java.lang.Override public double getAbsoluteTopImpressionPercentage() { return absoluteTopImpressionPercentage_; } /** *
     * The percent of your ad impressions that are shown as the very first ad
     * above the organic search results.
     * 
* * optional double absolute_top_impression_percentage = 183; * @param value The absoluteTopImpressionPercentage to set. * @return This builder for chaining. */ public Builder setAbsoluteTopImpressionPercentage(double value) { bitField0_ |= 0x00000001; absoluteTopImpressionPercentage_ = value; onChanged(); return this; } /** *
     * The percent of your ad impressions that are shown as the very first ad
     * above the organic search results.
     * 
* * optional double absolute_top_impression_percentage = 183; * @return This builder for chaining. */ public Builder clearAbsoluteTopImpressionPercentage() { bitField0_ = (bitField0_ & ~0x00000001); absoluteTopImpressionPercentage_ = 0D; onChanged(); return this; } private double activeViewCpm_ ; /** *
     * Average cost of viewable impressions (`active_view_impressions`).
     * 
* * optional double active_view_cpm = 184; * @return Whether the activeViewCpm field is set. */ @java.lang.Override public boolean hasActiveViewCpm() { return ((bitField0_ & 0x00000002) != 0); } /** *
     * Average cost of viewable impressions (`active_view_impressions`).
     * 
* * optional double active_view_cpm = 184; * @return The activeViewCpm. */ @java.lang.Override public double getActiveViewCpm() { return activeViewCpm_; } /** *
     * Average cost of viewable impressions (`active_view_impressions`).
     * 
* * optional double active_view_cpm = 184; * @param value The activeViewCpm to set. * @return This builder for chaining. */ public Builder setActiveViewCpm(double value) { bitField0_ |= 0x00000002; activeViewCpm_ = value; onChanged(); return this; } /** *
     * Average cost of viewable impressions (`active_view_impressions`).
     * 
* * optional double active_view_cpm = 184; * @return This builder for chaining. */ public Builder clearActiveViewCpm() { bitField0_ = (bitField0_ & ~0x00000002); activeViewCpm_ = 0D; onChanged(); return this; } private double activeViewCtr_ ; /** *
     * Active view measurable clicks divided by active view viewable impressions.
     * This metric is reported only for display network.
     * 
* * optional double active_view_ctr = 185; * @return Whether the activeViewCtr field is set. */ @java.lang.Override public boolean hasActiveViewCtr() { return ((bitField0_ & 0x00000004) != 0); } /** *
     * Active view measurable clicks divided by active view viewable impressions.
     * This metric is reported only for display network.
     * 
* * optional double active_view_ctr = 185; * @return The activeViewCtr. */ @java.lang.Override public double getActiveViewCtr() { return activeViewCtr_; } /** *
     * Active view measurable clicks divided by active view viewable impressions.
     * This metric is reported only for display network.
     * 
* * optional double active_view_ctr = 185; * @param value The activeViewCtr to set. * @return This builder for chaining. */ public Builder setActiveViewCtr(double value) { bitField0_ |= 0x00000004; activeViewCtr_ = value; onChanged(); return this; } /** *
     * Active view measurable clicks divided by active view viewable impressions.
     * This metric is reported only for display network.
     * 
* * optional double active_view_ctr = 185; * @return This builder for chaining. */ public Builder clearActiveViewCtr() { bitField0_ = (bitField0_ & ~0x00000004); activeViewCtr_ = 0D; onChanged(); return this; } private long activeViewImpressions_ ; /** *
     * A measurement of how often your ad has become viewable on a Display
     * Network site.
     * 
* * optional int64 active_view_impressions = 186; * @return Whether the activeViewImpressions field is set. */ @java.lang.Override public boolean hasActiveViewImpressions() { return ((bitField0_ & 0x00000008) != 0); } /** *
     * A measurement of how often your ad has become viewable on a Display
     * Network site.
     * 
* * optional int64 active_view_impressions = 186; * @return The activeViewImpressions. */ @java.lang.Override public long getActiveViewImpressions() { return activeViewImpressions_; } /** *
     * A measurement of how often your ad has become viewable on a Display
     * Network site.
     * 
* * optional int64 active_view_impressions = 186; * @param value The activeViewImpressions to set. * @return This builder for chaining. */ public Builder setActiveViewImpressions(long value) { bitField0_ |= 0x00000008; activeViewImpressions_ = value; onChanged(); return this; } /** *
     * A measurement of how often your ad has become viewable on a Display
     * Network site.
     * 
* * optional int64 active_view_impressions = 186; * @return This builder for chaining. */ public Builder clearActiveViewImpressions() { bitField0_ = (bitField0_ & ~0x00000008); activeViewImpressions_ = 0L; onChanged(); return this; } private double activeViewMeasurability_ ; /** *
     * The ratio of impressions that could be measured by Active View over the
     * number of served impressions.
     * 
* * optional double active_view_measurability = 187; * @return Whether the activeViewMeasurability field is set. */ @java.lang.Override public boolean hasActiveViewMeasurability() { return ((bitField0_ & 0x00000010) != 0); } /** *
     * The ratio of impressions that could be measured by Active View over the
     * number of served impressions.
     * 
* * optional double active_view_measurability = 187; * @return The activeViewMeasurability. */ @java.lang.Override public double getActiveViewMeasurability() { return activeViewMeasurability_; } /** *
     * The ratio of impressions that could be measured by Active View over the
     * number of served impressions.
     * 
* * optional double active_view_measurability = 187; * @param value The activeViewMeasurability to set. * @return This builder for chaining. */ public Builder setActiveViewMeasurability(double value) { bitField0_ |= 0x00000010; activeViewMeasurability_ = value; onChanged(); return this; } /** *
     * The ratio of impressions that could be measured by Active View over the
     * number of served impressions.
     * 
* * optional double active_view_measurability = 187; * @return This builder for chaining. */ public Builder clearActiveViewMeasurability() { bitField0_ = (bitField0_ & ~0x00000010); activeViewMeasurability_ = 0D; onChanged(); return this; } private long activeViewMeasurableCostMicros_ ; /** *
     * The cost of the impressions you received that were measurable by Active
     * View.
     * 
* * optional int64 active_view_measurable_cost_micros = 188; * @return Whether the activeViewMeasurableCostMicros field is set. */ @java.lang.Override public boolean hasActiveViewMeasurableCostMicros() { return ((bitField0_ & 0x00000020) != 0); } /** *
     * The cost of the impressions you received that were measurable by Active
     * View.
     * 
* * optional int64 active_view_measurable_cost_micros = 188; * @return The activeViewMeasurableCostMicros. */ @java.lang.Override public long getActiveViewMeasurableCostMicros() { return activeViewMeasurableCostMicros_; } /** *
     * The cost of the impressions you received that were measurable by Active
     * View.
     * 
* * optional int64 active_view_measurable_cost_micros = 188; * @param value The activeViewMeasurableCostMicros to set. * @return This builder for chaining. */ public Builder setActiveViewMeasurableCostMicros(long value) { bitField0_ |= 0x00000020; activeViewMeasurableCostMicros_ = value; onChanged(); return this; } /** *
     * The cost of the impressions you received that were measurable by Active
     * View.
     * 
* * optional int64 active_view_measurable_cost_micros = 188; * @return This builder for chaining. */ public Builder clearActiveViewMeasurableCostMicros() { bitField0_ = (bitField0_ & ~0x00000020); activeViewMeasurableCostMicros_ = 0L; onChanged(); return this; } private long activeViewMeasurableImpressions_ ; /** *
     * The number of times your ads are appearing on placements in positions
     * where they can be seen.
     * 
* * optional int64 active_view_measurable_impressions = 189; * @return Whether the activeViewMeasurableImpressions field is set. */ @java.lang.Override public boolean hasActiveViewMeasurableImpressions() { return ((bitField0_ & 0x00000040) != 0); } /** *
     * The number of times your ads are appearing on placements in positions
     * where they can be seen.
     * 
* * optional int64 active_view_measurable_impressions = 189; * @return The activeViewMeasurableImpressions. */ @java.lang.Override public long getActiveViewMeasurableImpressions() { return activeViewMeasurableImpressions_; } /** *
     * The number of times your ads are appearing on placements in positions
     * where they can be seen.
     * 
* * optional int64 active_view_measurable_impressions = 189; * @param value The activeViewMeasurableImpressions to set. * @return This builder for chaining. */ public Builder setActiveViewMeasurableImpressions(long value) { bitField0_ |= 0x00000040; activeViewMeasurableImpressions_ = value; onChanged(); return this; } /** *
     * The number of times your ads are appearing on placements in positions
     * where they can be seen.
     * 
* * optional int64 active_view_measurable_impressions = 189; * @return This builder for chaining. */ public Builder clearActiveViewMeasurableImpressions() { bitField0_ = (bitField0_ & ~0x00000040); activeViewMeasurableImpressions_ = 0L; onChanged(); return this; } private double activeViewViewability_ ; /** *
     * The percentage of time when your ad appeared on an Active View enabled site
     * (measurable impressions) and was viewable (viewable impressions).
     * 
* * optional double active_view_viewability = 190; * @return Whether the activeViewViewability field is set. */ @java.lang.Override public boolean hasActiveViewViewability() { return ((bitField0_ & 0x00000080) != 0); } /** *
     * The percentage of time when your ad appeared on an Active View enabled site
     * (measurable impressions) and was viewable (viewable impressions).
     * 
* * optional double active_view_viewability = 190; * @return The activeViewViewability. */ @java.lang.Override public double getActiveViewViewability() { return activeViewViewability_; } /** *
     * The percentage of time when your ad appeared on an Active View enabled site
     * (measurable impressions) and was viewable (viewable impressions).
     * 
* * optional double active_view_viewability = 190; * @param value The activeViewViewability to set. * @return This builder for chaining. */ public Builder setActiveViewViewability(double value) { bitField0_ |= 0x00000080; activeViewViewability_ = value; onChanged(); return this; } /** *
     * The percentage of time when your ad appeared on an Active View enabled site
     * (measurable impressions) and was viewable (viewable impressions).
     * 
* * optional double active_view_viewability = 190; * @return This builder for chaining. */ public Builder clearActiveViewViewability() { bitField0_ = (bitField0_ & ~0x00000080); activeViewViewability_ = 0D; onChanged(); return this; } private double allConversionsFromInteractionsRate_ ; /** *
     * All conversions from interactions (as oppose to view through conversions)
     * divided by the number of ad interactions.
     * 
* * optional double all_conversions_from_interactions_rate = 191; * @return Whether the allConversionsFromInteractionsRate field is set. */ @java.lang.Override public boolean hasAllConversionsFromInteractionsRate() { return ((bitField0_ & 0x00000100) != 0); } /** *
     * All conversions from interactions (as oppose to view through conversions)
     * divided by the number of ad interactions.
     * 
* * optional double all_conversions_from_interactions_rate = 191; * @return The allConversionsFromInteractionsRate. */ @java.lang.Override public double getAllConversionsFromInteractionsRate() { return allConversionsFromInteractionsRate_; } /** *
     * All conversions from interactions (as oppose to view through conversions)
     * divided by the number of ad interactions.
     * 
* * optional double all_conversions_from_interactions_rate = 191; * @param value The allConversionsFromInteractionsRate to set. * @return This builder for chaining. */ public Builder setAllConversionsFromInteractionsRate(double value) { bitField0_ |= 0x00000100; allConversionsFromInteractionsRate_ = value; onChanged(); return this; } /** *
     * All conversions from interactions (as oppose to view through conversions)
     * divided by the number of ad interactions.
     * 
* * optional double all_conversions_from_interactions_rate = 191; * @return This builder for chaining. */ public Builder clearAllConversionsFromInteractionsRate() { bitField0_ = (bitField0_ & ~0x00000100); allConversionsFromInteractionsRate_ = 0D; onChanged(); return this; } private double allConversionsValue_ ; /** *
     * The value of all conversions.
     * 
* * optional double all_conversions_value = 192; * @return Whether the allConversionsValue field is set. */ @java.lang.Override public boolean hasAllConversionsValue() { return ((bitField0_ & 0x00000200) != 0); } /** *
     * The value of all conversions.
     * 
* * optional double all_conversions_value = 192; * @return The allConversionsValue. */ @java.lang.Override public double getAllConversionsValue() { return allConversionsValue_; } /** *
     * The value of all conversions.
     * 
* * optional double all_conversions_value = 192; * @param value The allConversionsValue to set. * @return This builder for chaining. */ public Builder setAllConversionsValue(double value) { bitField0_ |= 0x00000200; allConversionsValue_ = value; onChanged(); return this; } /** *
     * The value of all conversions.
     * 
* * optional double all_conversions_value = 192; * @return This builder for chaining. */ public Builder clearAllConversionsValue() { bitField0_ = (bitField0_ & ~0x00000200); allConversionsValue_ = 0D; onChanged(); return this; } private double allConversionsValueByConversionDate_ ; /** *
     * The value of all conversions. When this column is selected with date, the
     * values in date column means the conversion date. Details for the
     * by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double all_conversions_value_by_conversion_date = 240; * @return The allConversionsValueByConversionDate. */ @java.lang.Override public double getAllConversionsValueByConversionDate() { return allConversionsValueByConversionDate_; } /** *
     * The value of all conversions. When this column is selected with date, the
     * values in date column means the conversion date. Details for the
     * by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double all_conversions_value_by_conversion_date = 240; * @param value The allConversionsValueByConversionDate to set. * @return This builder for chaining. */ public Builder setAllConversionsValueByConversionDate(double value) { allConversionsValueByConversionDate_ = value; onChanged(); return this; } /** *
     * The value of all conversions. When this column is selected with date, the
     * values in date column means the conversion date. Details for the
     * by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double all_conversions_value_by_conversion_date = 240; * @return This builder for chaining. */ public Builder clearAllConversionsValueByConversionDate() { allConversionsValueByConversionDate_ = 0D; onChanged(); return this; } private double allConversions_ ; /** *
     * The total number of conversions. This includes all conversions regardless
     * of the value of include_in_conversions_metric.
     * 
* * optional double all_conversions = 193; * @return Whether the allConversions field is set. */ @java.lang.Override public boolean hasAllConversions() { return ((bitField0_ & 0x00000400) != 0); } /** *
     * The total number of conversions. This includes all conversions regardless
     * of the value of include_in_conversions_metric.
     * 
* * optional double all_conversions = 193; * @return The allConversions. */ @java.lang.Override public double getAllConversions() { return allConversions_; } /** *
     * The total number of conversions. This includes all conversions regardless
     * of the value of include_in_conversions_metric.
     * 
* * optional double all_conversions = 193; * @param value The allConversions to set. * @return This builder for chaining. */ public Builder setAllConversions(double value) { bitField0_ |= 0x00000400; allConversions_ = value; onChanged(); return this; } /** *
     * The total number of conversions. This includes all conversions regardless
     * of the value of include_in_conversions_metric.
     * 
* * optional double all_conversions = 193; * @return This builder for chaining. */ public Builder clearAllConversions() { bitField0_ = (bitField0_ & ~0x00000400); allConversions_ = 0D; onChanged(); return this; } private double allConversionsByConversionDate_ ; /** *
     * The total number of conversions. This includes all conversions regardless
     * of the value of include_in_conversions_metric. When this column is selected
     * with date, the values in date column means the conversion date. Details for
     * the by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double all_conversions_by_conversion_date = 241; * @return The allConversionsByConversionDate. */ @java.lang.Override public double getAllConversionsByConversionDate() { return allConversionsByConversionDate_; } /** *
     * The total number of conversions. This includes all conversions regardless
     * of the value of include_in_conversions_metric. When this column is selected
     * with date, the values in date column means the conversion date. Details for
     * the by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double all_conversions_by_conversion_date = 241; * @param value The allConversionsByConversionDate to set. * @return This builder for chaining. */ public Builder setAllConversionsByConversionDate(double value) { allConversionsByConversionDate_ = value; onChanged(); return this; } /** *
     * The total number of conversions. This includes all conversions regardless
     * of the value of include_in_conversions_metric. When this column is selected
     * with date, the values in date column means the conversion date. Details for
     * the by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double all_conversions_by_conversion_date = 241; * @return This builder for chaining. */ public Builder clearAllConversionsByConversionDate() { allConversionsByConversionDate_ = 0D; onChanged(); return this; } private double allConversionsValuePerCost_ ; /** *
     * The value of all conversions divided by the total cost of ad interactions
     * (such as clicks for text ads or views for video ads).
     * 
* * optional double all_conversions_value_per_cost = 194; * @return Whether the allConversionsValuePerCost field is set. */ @java.lang.Override public boolean hasAllConversionsValuePerCost() { return ((bitField0_ & 0x00000800) != 0); } /** *
     * The value of all conversions divided by the total cost of ad interactions
     * (such as clicks for text ads or views for video ads).
     * 
* * optional double all_conversions_value_per_cost = 194; * @return The allConversionsValuePerCost. */ @java.lang.Override public double getAllConversionsValuePerCost() { return allConversionsValuePerCost_; } /** *
     * The value of all conversions divided by the total cost of ad interactions
     * (such as clicks for text ads or views for video ads).
     * 
* * optional double all_conversions_value_per_cost = 194; * @param value The allConversionsValuePerCost to set. * @return This builder for chaining. */ public Builder setAllConversionsValuePerCost(double value) { bitField0_ |= 0x00000800; allConversionsValuePerCost_ = value; onChanged(); return this; } /** *
     * The value of all conversions divided by the total cost of ad interactions
     * (such as clicks for text ads or views for video ads).
     * 
* * optional double all_conversions_value_per_cost = 194; * @return This builder for chaining. */ public Builder clearAllConversionsValuePerCost() { bitField0_ = (bitField0_ & ~0x00000800); allConversionsValuePerCost_ = 0D; onChanged(); return this; } private double allConversionsFromClickToCall_ ; /** *
     * The number of times people clicked the "Call" button to call a store during
     * or after clicking an ad. This number doesn't include whether or not calls
     * were connected, or the duration of any calls.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_click_to_call = 195; * @return Whether the allConversionsFromClickToCall field is set. */ @java.lang.Override public boolean hasAllConversionsFromClickToCall() { return ((bitField0_ & 0x00001000) != 0); } /** *
     * The number of times people clicked the "Call" button to call a store during
     * or after clicking an ad. This number doesn't include whether or not calls
     * were connected, or the duration of any calls.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_click_to_call = 195; * @return The allConversionsFromClickToCall. */ @java.lang.Override public double getAllConversionsFromClickToCall() { return allConversionsFromClickToCall_; } /** *
     * The number of times people clicked the "Call" button to call a store during
     * or after clicking an ad. This number doesn't include whether or not calls
     * were connected, or the duration of any calls.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_click_to_call = 195; * @param value The allConversionsFromClickToCall to set. * @return This builder for chaining. */ public Builder setAllConversionsFromClickToCall(double value) { bitField0_ |= 0x00001000; allConversionsFromClickToCall_ = value; onChanged(); return this; } /** *
     * The number of times people clicked the "Call" button to call a store during
     * or after clicking an ad. This number doesn't include whether or not calls
     * were connected, or the duration of any calls.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_click_to_call = 195; * @return This builder for chaining. */ public Builder clearAllConversionsFromClickToCall() { bitField0_ = (bitField0_ & ~0x00001000); allConversionsFromClickToCall_ = 0D; onChanged(); return this; } private double allConversionsFromDirections_ ; /** *
     * The number of times people clicked a "Get directions" button to navigate to
     * a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_directions = 196; * @return Whether the allConversionsFromDirections field is set. */ @java.lang.Override public boolean hasAllConversionsFromDirections() { return ((bitField0_ & 0x00002000) != 0); } /** *
     * The number of times people clicked a "Get directions" button to navigate to
     * a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_directions = 196; * @return The allConversionsFromDirections. */ @java.lang.Override public double getAllConversionsFromDirections() { return allConversionsFromDirections_; } /** *
     * The number of times people clicked a "Get directions" button to navigate to
     * a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_directions = 196; * @param value The allConversionsFromDirections to set. * @return This builder for chaining. */ public Builder setAllConversionsFromDirections(double value) { bitField0_ |= 0x00002000; allConversionsFromDirections_ = value; onChanged(); return this; } /** *
     * The number of times people clicked a "Get directions" button to navigate to
     * a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_directions = 196; * @return This builder for chaining. */ public Builder clearAllConversionsFromDirections() { bitField0_ = (bitField0_ & ~0x00002000); allConversionsFromDirections_ = 0D; onChanged(); return this; } private double allConversionsFromInteractionsValuePerInteraction_ ; /** *
     * The value of all conversions from interactions divided by the total number
     * of interactions.
     * 
* * optional double all_conversions_from_interactions_value_per_interaction = 197; * @return Whether the allConversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override public boolean hasAllConversionsFromInteractionsValuePerInteraction() { return ((bitField0_ & 0x00004000) != 0); } /** *
     * The value of all conversions from interactions divided by the total number
     * of interactions.
     * 
* * optional double all_conversions_from_interactions_value_per_interaction = 197; * @return The allConversionsFromInteractionsValuePerInteraction. */ @java.lang.Override public double getAllConversionsFromInteractionsValuePerInteraction() { return allConversionsFromInteractionsValuePerInteraction_; } /** *
     * The value of all conversions from interactions divided by the total number
     * of interactions.
     * 
* * optional double all_conversions_from_interactions_value_per_interaction = 197; * @param value The allConversionsFromInteractionsValuePerInteraction to set. * @return This builder for chaining. */ public Builder setAllConversionsFromInteractionsValuePerInteraction(double value) { bitField0_ |= 0x00004000; allConversionsFromInteractionsValuePerInteraction_ = value; onChanged(); return this; } /** *
     * The value of all conversions from interactions divided by the total number
     * of interactions.
     * 
* * optional double all_conversions_from_interactions_value_per_interaction = 197; * @return This builder for chaining. */ public Builder clearAllConversionsFromInteractionsValuePerInteraction() { bitField0_ = (bitField0_ & ~0x00004000); allConversionsFromInteractionsValuePerInteraction_ = 0D; onChanged(); return this; } private double allConversionsFromMenu_ ; /** *
     * The number of times people clicked a link to view a store's menu after
     * clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_menu = 198; * @return Whether the allConversionsFromMenu field is set. */ @java.lang.Override public boolean hasAllConversionsFromMenu() { return ((bitField0_ & 0x00008000) != 0); } /** *
     * The number of times people clicked a link to view a store's menu after
     * clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_menu = 198; * @return The allConversionsFromMenu. */ @java.lang.Override public double getAllConversionsFromMenu() { return allConversionsFromMenu_; } /** *
     * The number of times people clicked a link to view a store's menu after
     * clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_menu = 198; * @param value The allConversionsFromMenu to set. * @return This builder for chaining. */ public Builder setAllConversionsFromMenu(double value) { bitField0_ |= 0x00008000; allConversionsFromMenu_ = value; onChanged(); return this; } /** *
     * The number of times people clicked a link to view a store's menu after
     * clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_menu = 198; * @return This builder for chaining. */ public Builder clearAllConversionsFromMenu() { bitField0_ = (bitField0_ & ~0x00008000); allConversionsFromMenu_ = 0D; onChanged(); return this; } private double allConversionsFromOrder_ ; /** *
     * The number of times people placed an order at a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_order = 199; * @return Whether the allConversionsFromOrder field is set. */ @java.lang.Override public boolean hasAllConversionsFromOrder() { return ((bitField0_ & 0x00010000) != 0); } /** *
     * The number of times people placed an order at a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_order = 199; * @return The allConversionsFromOrder. */ @java.lang.Override public double getAllConversionsFromOrder() { return allConversionsFromOrder_; } /** *
     * The number of times people placed an order at a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_order = 199; * @param value The allConversionsFromOrder to set. * @return This builder for chaining. */ public Builder setAllConversionsFromOrder(double value) { bitField0_ |= 0x00010000; allConversionsFromOrder_ = value; onChanged(); return this; } /** *
     * The number of times people placed an order at a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_order = 199; * @return This builder for chaining. */ public Builder clearAllConversionsFromOrder() { bitField0_ = (bitField0_ & ~0x00010000); allConversionsFromOrder_ = 0D; onChanged(); return this; } private double allConversionsFromOtherEngagement_ ; /** *
     * The number of other conversions (for example, posting a review or saving a
     * location for a store) that occurred after people clicked an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_other_engagement = 200; * @return Whether the allConversionsFromOtherEngagement field is set. */ @java.lang.Override public boolean hasAllConversionsFromOtherEngagement() { return ((bitField0_ & 0x00020000) != 0); } /** *
     * The number of other conversions (for example, posting a review or saving a
     * location for a store) that occurred after people clicked an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_other_engagement = 200; * @return The allConversionsFromOtherEngagement. */ @java.lang.Override public double getAllConversionsFromOtherEngagement() { return allConversionsFromOtherEngagement_; } /** *
     * The number of other conversions (for example, posting a review or saving a
     * location for a store) that occurred after people clicked an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_other_engagement = 200; * @param value The allConversionsFromOtherEngagement to set. * @return This builder for chaining. */ public Builder setAllConversionsFromOtherEngagement(double value) { bitField0_ |= 0x00020000; allConversionsFromOtherEngagement_ = value; onChanged(); return this; } /** *
     * The number of other conversions (for example, posting a review or saving a
     * location for a store) that occurred after people clicked an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_other_engagement = 200; * @return This builder for chaining. */ public Builder clearAllConversionsFromOtherEngagement() { bitField0_ = (bitField0_ & ~0x00020000); allConversionsFromOtherEngagement_ = 0D; onChanged(); return this; } private double allConversionsFromStoreVisit_ ; /** *
     * Estimated number of times people visited a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_visit = 201; * @return Whether the allConversionsFromStoreVisit field is set. */ @java.lang.Override public boolean hasAllConversionsFromStoreVisit() { return ((bitField0_ & 0x00040000) != 0); } /** *
     * Estimated number of times people visited a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_visit = 201; * @return The allConversionsFromStoreVisit. */ @java.lang.Override public double getAllConversionsFromStoreVisit() { return allConversionsFromStoreVisit_; } /** *
     * Estimated number of times people visited a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_visit = 201; * @param value The allConversionsFromStoreVisit to set. * @return This builder for chaining. */ public Builder setAllConversionsFromStoreVisit(double value) { bitField0_ |= 0x00040000; allConversionsFromStoreVisit_ = value; onChanged(); return this; } /** *
     * Estimated number of times people visited a store after clicking an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_visit = 201; * @return This builder for chaining. */ public Builder clearAllConversionsFromStoreVisit() { bitField0_ = (bitField0_ & ~0x00040000); allConversionsFromStoreVisit_ = 0D; onChanged(); return this; } private double allConversionsFromStoreWebsite_ ; /** *
     * The number of times that people were taken to a store's URL after clicking
     * an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_website = 202; * @return Whether the allConversionsFromStoreWebsite field is set. */ @java.lang.Override public boolean hasAllConversionsFromStoreWebsite() { return ((bitField0_ & 0x00080000) != 0); } /** *
     * The number of times that people were taken to a store's URL after clicking
     * an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_website = 202; * @return The allConversionsFromStoreWebsite. */ @java.lang.Override public double getAllConversionsFromStoreWebsite() { return allConversionsFromStoreWebsite_; } /** *
     * The number of times that people were taken to a store's URL after clicking
     * an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_website = 202; * @param value The allConversionsFromStoreWebsite to set. * @return This builder for chaining. */ public Builder setAllConversionsFromStoreWebsite(double value) { bitField0_ |= 0x00080000; allConversionsFromStoreWebsite_ = value; onChanged(); return this; } /** *
     * The number of times that people were taken to a store's URL after clicking
     * an ad.
     * This metric applies to feed items only.
     * 
* * optional double all_conversions_from_store_website = 202; * @return This builder for chaining. */ public Builder clearAllConversionsFromStoreWebsite() { bitField0_ = (bitField0_ & ~0x00080000); allConversionsFromStoreWebsite_ = 0D; onChanged(); return this; } private double averageCost_ ; /** *
     * The average amount you pay per interaction. This amount is the total cost
     * of your ads divided by the total number of interactions.
     * 
* * optional double average_cost = 203; * @return Whether the averageCost field is set. */ @java.lang.Override public boolean hasAverageCost() { return ((bitField0_ & 0x00100000) != 0); } /** *
     * The average amount you pay per interaction. This amount is the total cost
     * of your ads divided by the total number of interactions.
     * 
* * optional double average_cost = 203; * @return The averageCost. */ @java.lang.Override public double getAverageCost() { return averageCost_; } /** *
     * The average amount you pay per interaction. This amount is the total cost
     * of your ads divided by the total number of interactions.
     * 
* * optional double average_cost = 203; * @param value The averageCost to set. * @return This builder for chaining. */ public Builder setAverageCost(double value) { bitField0_ |= 0x00100000; averageCost_ = value; onChanged(); return this; } /** *
     * The average amount you pay per interaction. This amount is the total cost
     * of your ads divided by the total number of interactions.
     * 
* * optional double average_cost = 203; * @return This builder for chaining. */ public Builder clearAverageCost() { bitField0_ = (bitField0_ & ~0x00100000); averageCost_ = 0D; onChanged(); return this; } private double averageCpc_ ; /** *
     * The total cost of all clicks divided by the total number of clicks
     * received.
     * 
* * optional double average_cpc = 204; * @return Whether the averageCpc field is set. */ @java.lang.Override public boolean hasAverageCpc() { return ((bitField0_ & 0x00200000) != 0); } /** *
     * The total cost of all clicks divided by the total number of clicks
     * received.
     * 
* * optional double average_cpc = 204; * @return The averageCpc. */ @java.lang.Override public double getAverageCpc() { return averageCpc_; } /** *
     * The total cost of all clicks divided by the total number of clicks
     * received.
     * 
* * optional double average_cpc = 204; * @param value The averageCpc to set. * @return This builder for chaining. */ public Builder setAverageCpc(double value) { bitField0_ |= 0x00200000; averageCpc_ = value; onChanged(); return this; } /** *
     * The total cost of all clicks divided by the total number of clicks
     * received.
     * 
* * optional double average_cpc = 204; * @return This builder for chaining. */ public Builder clearAverageCpc() { bitField0_ = (bitField0_ & ~0x00200000); averageCpc_ = 0D; onChanged(); return this; } private double averageCpe_ ; /** *
     * The average amount that you've been charged for an ad engagement. This
     * amount is the total cost of all ad engagements divided by the total number
     * of ad engagements.
     * 
* * optional double average_cpe = 205; * @return Whether the averageCpe field is set. */ @java.lang.Override public boolean hasAverageCpe() { return ((bitField0_ & 0x00400000) != 0); } /** *
     * The average amount that you've been charged for an ad engagement. This
     * amount is the total cost of all ad engagements divided by the total number
     * of ad engagements.
     * 
* * optional double average_cpe = 205; * @return The averageCpe. */ @java.lang.Override public double getAverageCpe() { return averageCpe_; } /** *
     * The average amount that you've been charged for an ad engagement. This
     * amount is the total cost of all ad engagements divided by the total number
     * of ad engagements.
     * 
* * optional double average_cpe = 205; * @param value The averageCpe to set. * @return This builder for chaining. */ public Builder setAverageCpe(double value) { bitField0_ |= 0x00400000; averageCpe_ = value; onChanged(); return this; } /** *
     * The average amount that you've been charged for an ad engagement. This
     * amount is the total cost of all ad engagements divided by the total number
     * of ad engagements.
     * 
* * optional double average_cpe = 205; * @return This builder for chaining. */ public Builder clearAverageCpe() { bitField0_ = (bitField0_ & ~0x00400000); averageCpe_ = 0D; onChanged(); return this; } private double averageCpm_ ; /** *
     * Average cost-per-thousand impressions (CPM).
     * 
* * optional double average_cpm = 206; * @return Whether the averageCpm field is set. */ @java.lang.Override public boolean hasAverageCpm() { return ((bitField0_ & 0x00800000) != 0); } /** *
     * Average cost-per-thousand impressions (CPM).
     * 
* * optional double average_cpm = 206; * @return The averageCpm. */ @java.lang.Override public double getAverageCpm() { return averageCpm_; } /** *
     * Average cost-per-thousand impressions (CPM).
     * 
* * optional double average_cpm = 206; * @param value The averageCpm to set. * @return This builder for chaining. */ public Builder setAverageCpm(double value) { bitField0_ |= 0x00800000; averageCpm_ = value; onChanged(); return this; } /** *
     * Average cost-per-thousand impressions (CPM).
     * 
* * optional double average_cpm = 206; * @return This builder for chaining. */ public Builder clearAverageCpm() { bitField0_ = (bitField0_ & ~0x00800000); averageCpm_ = 0D; onChanged(); return this; } private double averageCpv_ ; /** *
     * The average amount you pay each time someone views your ad.
     * The average CPV is defined by the total cost of all ad views divided by
     * the number of views.
     * 
* * optional double average_cpv = 207; * @return Whether the averageCpv field is set. */ @java.lang.Override public boolean hasAverageCpv() { return ((bitField0_ & 0x01000000) != 0); } /** *
     * The average amount you pay each time someone views your ad.
     * The average CPV is defined by the total cost of all ad views divided by
     * the number of views.
     * 
* * optional double average_cpv = 207; * @return The averageCpv. */ @java.lang.Override public double getAverageCpv() { return averageCpv_; } /** *
     * The average amount you pay each time someone views your ad.
     * The average CPV is defined by the total cost of all ad views divided by
     * the number of views.
     * 
* * optional double average_cpv = 207; * @param value The averageCpv to set. * @return This builder for chaining. */ public Builder setAverageCpv(double value) { bitField0_ |= 0x01000000; averageCpv_ = value; onChanged(); return this; } /** *
     * The average amount you pay each time someone views your ad.
     * The average CPV is defined by the total cost of all ad views divided by
     * the number of views.
     * 
* * optional double average_cpv = 207; * @return This builder for chaining. */ public Builder clearAverageCpv() { bitField0_ = (bitField0_ & ~0x01000000); averageCpv_ = 0D; onChanged(); return this; } private double averagePageViews_ ; /** *
     * Average number of pages viewed per session.
     * 
* * optional double average_page_views = 208; * @return Whether the averagePageViews field is set. */ @java.lang.Override public boolean hasAveragePageViews() { return ((bitField0_ & 0x02000000) != 0); } /** *
     * Average number of pages viewed per session.
     * 
* * optional double average_page_views = 208; * @return The averagePageViews. */ @java.lang.Override public double getAveragePageViews() { return averagePageViews_; } /** *
     * Average number of pages viewed per session.
     * 
* * optional double average_page_views = 208; * @param value The averagePageViews to set. * @return This builder for chaining. */ public Builder setAveragePageViews(double value) { bitField0_ |= 0x02000000; averagePageViews_ = value; onChanged(); return this; } /** *
     * Average number of pages viewed per session.
     * 
* * optional double average_page_views = 208; * @return This builder for chaining. */ public Builder clearAveragePageViews() { bitField0_ = (bitField0_ & ~0x02000000); averagePageViews_ = 0D; onChanged(); return this; } private double averageTimeOnSite_ ; /** *
     * Total duration of all sessions (in seconds) / number of sessions. Imported
     * from Google Analytics.
     * 
* * optional double average_time_on_site = 209; * @return Whether the averageTimeOnSite field is set. */ @java.lang.Override public boolean hasAverageTimeOnSite() { return ((bitField0_ & 0x04000000) != 0); } /** *
     * Total duration of all sessions (in seconds) / number of sessions. Imported
     * from Google Analytics.
     * 
* * optional double average_time_on_site = 209; * @return The averageTimeOnSite. */ @java.lang.Override public double getAverageTimeOnSite() { return averageTimeOnSite_; } /** *
     * Total duration of all sessions (in seconds) / number of sessions. Imported
     * from Google Analytics.
     * 
* * optional double average_time_on_site = 209; * @param value The averageTimeOnSite to set. * @return This builder for chaining. */ public Builder setAverageTimeOnSite(double value) { bitField0_ |= 0x04000000; averageTimeOnSite_ = value; onChanged(); return this; } /** *
     * Total duration of all sessions (in seconds) / number of sessions. Imported
     * from Google Analytics.
     * 
* * optional double average_time_on_site = 209; * @return This builder for chaining. */ public Builder clearAverageTimeOnSite() { bitField0_ = (bitField0_ & ~0x04000000); averageTimeOnSite_ = 0D; onChanged(); return this; } private double benchmarkAverageMaxCpc_ ; /** *
     * An indication of how other advertisers are bidding on similar products.
     * 
* * optional double benchmark_average_max_cpc = 210; * @return Whether the benchmarkAverageMaxCpc field is set. */ @java.lang.Override public boolean hasBenchmarkAverageMaxCpc() { return ((bitField0_ & 0x08000000) != 0); } /** *
     * An indication of how other advertisers are bidding on similar products.
     * 
* * optional double benchmark_average_max_cpc = 210; * @return The benchmarkAverageMaxCpc. */ @java.lang.Override public double getBenchmarkAverageMaxCpc() { return benchmarkAverageMaxCpc_; } /** *
     * An indication of how other advertisers are bidding on similar products.
     * 
* * optional double benchmark_average_max_cpc = 210; * @param value The benchmarkAverageMaxCpc to set. * @return This builder for chaining. */ public Builder setBenchmarkAverageMaxCpc(double value) { bitField0_ |= 0x08000000; benchmarkAverageMaxCpc_ = value; onChanged(); return this; } /** *
     * An indication of how other advertisers are bidding on similar products.
     * 
* * optional double benchmark_average_max_cpc = 210; * @return This builder for chaining. */ public Builder clearBenchmarkAverageMaxCpc() { bitField0_ = (bitField0_ & ~0x08000000); benchmarkAverageMaxCpc_ = 0D; onChanged(); return this; } private double biddableAppInstallConversions_ ; /** *
     * Number of app installs.
     * 
* * optional double biddable_app_install_conversions = 254; * @return Whether the biddableAppInstallConversions field is set. */ @java.lang.Override public boolean hasBiddableAppInstallConversions() { return ((bitField0_ & 0x10000000) != 0); } /** *
     * Number of app installs.
     * 
* * optional double biddable_app_install_conversions = 254; * @return The biddableAppInstallConversions. */ @java.lang.Override public double getBiddableAppInstallConversions() { return biddableAppInstallConversions_; } /** *
     * Number of app installs.
     * 
* * optional double biddable_app_install_conversions = 254; * @param value The biddableAppInstallConversions to set. * @return This builder for chaining. */ public Builder setBiddableAppInstallConversions(double value) { bitField0_ |= 0x10000000; biddableAppInstallConversions_ = value; onChanged(); return this; } /** *
     * Number of app installs.
     * 
* * optional double biddable_app_install_conversions = 254; * @return This builder for chaining. */ public Builder clearBiddableAppInstallConversions() { bitField0_ = (bitField0_ & ~0x10000000); biddableAppInstallConversions_ = 0D; onChanged(); return this; } private double biddableAppPostInstallConversions_ ; /** *
     * Number of in-app actions.
     * 
* * optional double biddable_app_post_install_conversions = 255; * @return Whether the biddableAppPostInstallConversions field is set. */ @java.lang.Override public boolean hasBiddableAppPostInstallConversions() { return ((bitField0_ & 0x20000000) != 0); } /** *
     * Number of in-app actions.
     * 
* * optional double biddable_app_post_install_conversions = 255; * @return The biddableAppPostInstallConversions. */ @java.lang.Override public double getBiddableAppPostInstallConversions() { return biddableAppPostInstallConversions_; } /** *
     * Number of in-app actions.
     * 
* * optional double biddable_app_post_install_conversions = 255; * @param value The biddableAppPostInstallConversions to set. * @return This builder for chaining. */ public Builder setBiddableAppPostInstallConversions(double value) { bitField0_ |= 0x20000000; biddableAppPostInstallConversions_ = value; onChanged(); return this; } /** *
     * Number of in-app actions.
     * 
* * optional double biddable_app_post_install_conversions = 255; * @return This builder for chaining. */ public Builder clearBiddableAppPostInstallConversions() { bitField0_ = (bitField0_ & ~0x20000000); biddableAppPostInstallConversions_ = 0D; onChanged(); return this; } private double benchmarkCtr_ ; /** *
     * An indication on how other advertisers' Shopping ads for similar products
     * are performing based on how often people who see their ad click on it.
     * 
* * optional double benchmark_ctr = 211; * @return Whether the benchmarkCtr field is set. */ @java.lang.Override public boolean hasBenchmarkCtr() { return ((bitField0_ & 0x40000000) != 0); } /** *
     * An indication on how other advertisers' Shopping ads for similar products
     * are performing based on how often people who see their ad click on it.
     * 
* * optional double benchmark_ctr = 211; * @return The benchmarkCtr. */ @java.lang.Override public double getBenchmarkCtr() { return benchmarkCtr_; } /** *
     * An indication on how other advertisers' Shopping ads for similar products
     * are performing based on how often people who see their ad click on it.
     * 
* * optional double benchmark_ctr = 211; * @param value The benchmarkCtr to set. * @return This builder for chaining. */ public Builder setBenchmarkCtr(double value) { bitField0_ |= 0x40000000; benchmarkCtr_ = value; onChanged(); return this; } /** *
     * An indication on how other advertisers' Shopping ads for similar products
     * are performing based on how often people who see their ad click on it.
     * 
* * optional double benchmark_ctr = 211; * @return This builder for chaining. */ public Builder clearBenchmarkCtr() { bitField0_ = (bitField0_ & ~0x40000000); benchmarkCtr_ = 0D; onChanged(); return this; } private double bounceRate_ ; /** *
     * Percentage of clicks where the user only visited a single page on your
     * site. Imported from Google Analytics.
     * 
* * optional double bounce_rate = 212; * @return Whether the bounceRate field is set. */ @java.lang.Override public boolean hasBounceRate() { return ((bitField0_ & 0x80000000) != 0); } /** *
     * Percentage of clicks where the user only visited a single page on your
     * site. Imported from Google Analytics.
     * 
* * optional double bounce_rate = 212; * @return The bounceRate. */ @java.lang.Override public double getBounceRate() { return bounceRate_; } /** *
     * Percentage of clicks where the user only visited a single page on your
     * site. Imported from Google Analytics.
     * 
* * optional double bounce_rate = 212; * @param value The bounceRate to set. * @return This builder for chaining. */ public Builder setBounceRate(double value) { bitField0_ |= 0x80000000; bounceRate_ = value; onChanged(); return this; } /** *
     * Percentage of clicks where the user only visited a single page on your
     * site. Imported from Google Analytics.
     * 
* * optional double bounce_rate = 212; * @return This builder for chaining. */ public Builder clearBounceRate() { bitField0_ = (bitField0_ & ~0x80000000); bounceRate_ = 0D; onChanged(); return this; } private long clicks_ ; /** *
     * The number of clicks.
     * 
* * optional int64 clicks = 131; * @return Whether the clicks field is set. */ @java.lang.Override public boolean hasClicks() { return ((bitField1_ & 0x00000001) != 0); } /** *
     * The number of clicks.
     * 
* * optional int64 clicks = 131; * @return The clicks. */ @java.lang.Override public long getClicks() { return clicks_; } /** *
     * The number of clicks.
     * 
* * optional int64 clicks = 131; * @param value The clicks to set. * @return This builder for chaining. */ public Builder setClicks(long value) { bitField1_ |= 0x00000001; clicks_ = value; onChanged(); return this; } /** *
     * The number of clicks.
     * 
* * optional int64 clicks = 131; * @return This builder for chaining. */ public Builder clearClicks() { bitField1_ = (bitField1_ & ~0x00000001); clicks_ = 0L; onChanged(); return this; } private long combinedClicks_ ; /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_clicks = 156; * @return Whether the combinedClicks field is set. */ @java.lang.Override public boolean hasCombinedClicks() { return ((bitField1_ & 0x00000002) != 0); } /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_clicks = 156; * @return The combinedClicks. */ @java.lang.Override public long getCombinedClicks() { return combinedClicks_; } /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_clicks = 156; * @param value The combinedClicks to set. * @return This builder for chaining. */ public Builder setCombinedClicks(long value) { bitField1_ |= 0x00000002; combinedClicks_ = value; onChanged(); return this; } /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_clicks = 156; * @return This builder for chaining. */ public Builder clearCombinedClicks() { bitField1_ = (bitField1_ & ~0x00000002); combinedClicks_ = 0L; onChanged(); return this; } private double combinedClicksPerQuery_ ; /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked (combined_clicks) divided by combined_queries. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional double combined_clicks_per_query = 157; * @return Whether the combinedClicksPerQuery field is set. */ @java.lang.Override public boolean hasCombinedClicksPerQuery() { return ((bitField1_ & 0x00000004) != 0); } /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked (combined_clicks) divided by combined_queries. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional double combined_clicks_per_query = 157; * @return The combinedClicksPerQuery. */ @java.lang.Override public double getCombinedClicksPerQuery() { return combinedClicksPerQuery_; } /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked (combined_clicks) divided by combined_queries. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional double combined_clicks_per_query = 157; * @param value The combinedClicksPerQuery to set. * @return This builder for chaining. */ public Builder setCombinedClicksPerQuery(double value) { bitField1_ |= 0x00000004; combinedClicksPerQuery_ = value; onChanged(); return this; } /** *
     * The number of times your ad or your site's listing in the unpaid
     * results was clicked (combined_clicks) divided by combined_queries. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional double combined_clicks_per_query = 157; * @return This builder for chaining. */ public Builder clearCombinedClicksPerQuery() { bitField1_ = (bitField1_ & ~0x00000004); combinedClicksPerQuery_ = 0D; onChanged(); return this; } private long combinedQueries_ ; /** *
     * The number of searches that returned pages from your site in the unpaid
     * results or showed one of your text ads. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_queries = 158; * @return Whether the combinedQueries field is set. */ @java.lang.Override public boolean hasCombinedQueries() { return ((bitField1_ & 0x00000008) != 0); } /** *
     * The number of searches that returned pages from your site in the unpaid
     * results or showed one of your text ads. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_queries = 158; * @return The combinedQueries. */ @java.lang.Override public long getCombinedQueries() { return combinedQueries_; } /** *
     * The number of searches that returned pages from your site in the unpaid
     * results or showed one of your text ads. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_queries = 158; * @param value The combinedQueries to set. * @return This builder for chaining. */ public Builder setCombinedQueries(long value) { bitField1_ |= 0x00000008; combinedQueries_ = value; onChanged(); return this; } /** *
     * The number of searches that returned pages from your site in the unpaid
     * results or showed one of your text ads. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 combined_queries = 158; * @return This builder for chaining. */ public Builder clearCombinedQueries() { bitField1_ = (bitField1_ & ~0x00000008); combinedQueries_ = 0L; onChanged(); return this; } private double contentBudgetLostImpressionShare_ ; /** *
     * The estimated percent of times that your ad was eligible to show
     * on the Display Network but didn't because your budget was too low.
     * Note: Content budget lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_budget_lost_impression_share = 159; * @return Whether the contentBudgetLostImpressionShare field is set. */ @java.lang.Override public boolean hasContentBudgetLostImpressionShare() { return ((bitField1_ & 0x00000010) != 0); } /** *
     * The estimated percent of times that your ad was eligible to show
     * on the Display Network but didn't because your budget was too low.
     * Note: Content budget lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_budget_lost_impression_share = 159; * @return The contentBudgetLostImpressionShare. */ @java.lang.Override public double getContentBudgetLostImpressionShare() { return contentBudgetLostImpressionShare_; } /** *
     * The estimated percent of times that your ad was eligible to show
     * on the Display Network but didn't because your budget was too low.
     * Note: Content budget lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_budget_lost_impression_share = 159; * @param value The contentBudgetLostImpressionShare to set. * @return This builder for chaining. */ public Builder setContentBudgetLostImpressionShare(double value) { bitField1_ |= 0x00000010; contentBudgetLostImpressionShare_ = value; onChanged(); return this; } /** *
     * The estimated percent of times that your ad was eligible to show
     * on the Display Network but didn't because your budget was too low.
     * Note: Content budget lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_budget_lost_impression_share = 159; * @return This builder for chaining. */ public Builder clearContentBudgetLostImpressionShare() { bitField1_ = (bitField1_ & ~0x00000010); contentBudgetLostImpressionShare_ = 0D; onChanged(); return this; } private double contentImpressionShare_ ; /** *
     * The impressions you've received on the Display Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Content impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double content_impression_share = 160; * @return Whether the contentImpressionShare field is set. */ @java.lang.Override public boolean hasContentImpressionShare() { return ((bitField1_ & 0x00000020) != 0); } /** *
     * The impressions you've received on the Display Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Content impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double content_impression_share = 160; * @return The contentImpressionShare. */ @java.lang.Override public double getContentImpressionShare() { return contentImpressionShare_; } /** *
     * The impressions you've received on the Display Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Content impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double content_impression_share = 160; * @param value The contentImpressionShare to set. * @return This builder for chaining. */ public Builder setContentImpressionShare(double value) { bitField1_ |= 0x00000020; contentImpressionShare_ = value; onChanged(); return this; } /** *
     * The impressions you've received on the Display Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Content impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double content_impression_share = 160; * @return This builder for chaining. */ public Builder clearContentImpressionShare() { bitField1_ = (bitField1_ & ~0x00000020); contentImpressionShare_ = 0D; onChanged(); return this; } private java.lang.Object conversionLastReceivedRequestDateTime_ = ""; /** *
     * The last date/time a conversion tag for this conversion action successfully
     * fired and was seen by Google Ads. This firing event may not have been the
     * result of an attributable conversion (for example, because the tag was
     * fired from a browser that did not previously click an ad from an
     * appropriate advertiser). The date/time is in the customer's time zone.
     * 
* * optional string conversion_last_received_request_date_time = 161; * @return Whether the conversionLastReceivedRequestDateTime field is set. */ public boolean hasConversionLastReceivedRequestDateTime() { return ((bitField1_ & 0x00000040) != 0); } /** *
     * The last date/time a conversion tag for this conversion action successfully
     * fired and was seen by Google Ads. This firing event may not have been the
     * result of an attributable conversion (for example, because the tag was
     * fired from a browser that did not previously click an ad from an
     * appropriate advertiser). The date/time is in the customer's time zone.
     * 
* * optional string conversion_last_received_request_date_time = 161; * @return The conversionLastReceivedRequestDateTime. */ public java.lang.String getConversionLastReceivedRequestDateTime() { java.lang.Object ref = conversionLastReceivedRequestDateTime_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); conversionLastReceivedRequestDateTime_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * The last date/time a conversion tag for this conversion action successfully
     * fired and was seen by Google Ads. This firing event may not have been the
     * result of an attributable conversion (for example, because the tag was
     * fired from a browser that did not previously click an ad from an
     * appropriate advertiser). The date/time is in the customer's time zone.
     * 
* * optional string conversion_last_received_request_date_time = 161; * @return The bytes for conversionLastReceivedRequestDateTime. */ public com.google.protobuf.ByteString getConversionLastReceivedRequestDateTimeBytes() { java.lang.Object ref = conversionLastReceivedRequestDateTime_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); conversionLastReceivedRequestDateTime_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * The last date/time a conversion tag for this conversion action successfully
     * fired and was seen by Google Ads. This firing event may not have been the
     * result of an attributable conversion (for example, because the tag was
     * fired from a browser that did not previously click an ad from an
     * appropriate advertiser). The date/time is in the customer's time zone.
     * 
* * optional string conversion_last_received_request_date_time = 161; * @param value The conversionLastReceivedRequestDateTime to set. * @return This builder for chaining. */ public Builder setConversionLastReceivedRequestDateTime( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField1_ |= 0x00000040; conversionLastReceivedRequestDateTime_ = value; onChanged(); return this; } /** *
     * The last date/time a conversion tag for this conversion action successfully
     * fired and was seen by Google Ads. This firing event may not have been the
     * result of an attributable conversion (for example, because the tag was
     * fired from a browser that did not previously click an ad from an
     * appropriate advertiser). The date/time is in the customer's time zone.
     * 
* * optional string conversion_last_received_request_date_time = 161; * @return This builder for chaining. */ public Builder clearConversionLastReceivedRequestDateTime() { bitField1_ = (bitField1_ & ~0x00000040); conversionLastReceivedRequestDateTime_ = getDefaultInstance().getConversionLastReceivedRequestDateTime(); onChanged(); return this; } /** *
     * The last date/time a conversion tag for this conversion action successfully
     * fired and was seen by Google Ads. This firing event may not have been the
     * result of an attributable conversion (for example, because the tag was
     * fired from a browser that did not previously click an ad from an
     * appropriate advertiser). The date/time is in the customer's time zone.
     * 
* * optional string conversion_last_received_request_date_time = 161; * @param value The bytes for conversionLastReceivedRequestDateTime to set. * @return This builder for chaining. */ public Builder setConversionLastReceivedRequestDateTimeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); bitField1_ |= 0x00000040; conversionLastReceivedRequestDateTime_ = value; onChanged(); return this; } private java.lang.Object conversionLastConversionDate_ = ""; /** *
     * The date of the most recent conversion for this conversion action. The date
     * is in the customer's time zone.
     * 
* * optional string conversion_last_conversion_date = 162; * @return Whether the conversionLastConversionDate field is set. */ public boolean hasConversionLastConversionDate() { return ((bitField1_ & 0x00000080) != 0); } /** *
     * The date of the most recent conversion for this conversion action. The date
     * is in the customer's time zone.
     * 
* * optional string conversion_last_conversion_date = 162; * @return The conversionLastConversionDate. */ public java.lang.String getConversionLastConversionDate() { java.lang.Object ref = conversionLastConversionDate_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); conversionLastConversionDate_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * The date of the most recent conversion for this conversion action. The date
     * is in the customer's time zone.
     * 
* * optional string conversion_last_conversion_date = 162; * @return The bytes for conversionLastConversionDate. */ public com.google.protobuf.ByteString getConversionLastConversionDateBytes() { java.lang.Object ref = conversionLastConversionDate_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); conversionLastConversionDate_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * The date of the most recent conversion for this conversion action. The date
     * is in the customer's time zone.
     * 
* * optional string conversion_last_conversion_date = 162; * @param value The conversionLastConversionDate to set. * @return This builder for chaining. */ public Builder setConversionLastConversionDate( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField1_ |= 0x00000080; conversionLastConversionDate_ = value; onChanged(); return this; } /** *
     * The date of the most recent conversion for this conversion action. The date
     * is in the customer's time zone.
     * 
* * optional string conversion_last_conversion_date = 162; * @return This builder for chaining. */ public Builder clearConversionLastConversionDate() { bitField1_ = (bitField1_ & ~0x00000080); conversionLastConversionDate_ = getDefaultInstance().getConversionLastConversionDate(); onChanged(); return this; } /** *
     * The date of the most recent conversion for this conversion action. The date
     * is in the customer's time zone.
     * 
* * optional string conversion_last_conversion_date = 162; * @param value The bytes for conversionLastConversionDate to set. * @return This builder for chaining. */ public Builder setConversionLastConversionDateBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); bitField1_ |= 0x00000080; conversionLastConversionDate_ = value; onChanged(); return this; } private double contentRankLostImpressionShare_ ; /** *
     * The estimated percentage of impressions on the Display Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Content rank lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_rank_lost_impression_share = 163; * @return Whether the contentRankLostImpressionShare field is set. */ @java.lang.Override public boolean hasContentRankLostImpressionShare() { return ((bitField1_ & 0x00000100) != 0); } /** *
     * The estimated percentage of impressions on the Display Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Content rank lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_rank_lost_impression_share = 163; * @return The contentRankLostImpressionShare. */ @java.lang.Override public double getContentRankLostImpressionShare() { return contentRankLostImpressionShare_; } /** *
     * The estimated percentage of impressions on the Display Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Content rank lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_rank_lost_impression_share = 163; * @param value The contentRankLostImpressionShare to set. * @return This builder for chaining. */ public Builder setContentRankLostImpressionShare(double value) { bitField1_ |= 0x00000100; contentRankLostImpressionShare_ = value; onChanged(); return this; } /** *
     * The estimated percentage of impressions on the Display Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Content rank lost impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double content_rank_lost_impression_share = 163; * @return This builder for chaining. */ public Builder clearContentRankLostImpressionShare() { bitField1_ = (bitField1_ & ~0x00000100); contentRankLostImpressionShare_ = 0D; onChanged(); return this; } private double conversionsFromInteractionsRate_ ; /** *
     * Conversions from interactions divided by the number of ad interactions
     * (such as clicks for text ads or views for video ads). This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double conversions_from_interactions_rate = 164; * @return Whether the conversionsFromInteractionsRate field is set. */ @java.lang.Override public boolean hasConversionsFromInteractionsRate() { return ((bitField1_ & 0x00000200) != 0); } /** *
     * Conversions from interactions divided by the number of ad interactions
     * (such as clicks for text ads or views for video ads). This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double conversions_from_interactions_rate = 164; * @return The conversionsFromInteractionsRate. */ @java.lang.Override public double getConversionsFromInteractionsRate() { return conversionsFromInteractionsRate_; } /** *
     * Conversions from interactions divided by the number of ad interactions
     * (such as clicks for text ads or views for video ads). This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double conversions_from_interactions_rate = 164; * @param value The conversionsFromInteractionsRate to set. * @return This builder for chaining. */ public Builder setConversionsFromInteractionsRate(double value) { bitField1_ |= 0x00000200; conversionsFromInteractionsRate_ = value; onChanged(); return this; } /** *
     * Conversions from interactions divided by the number of ad interactions
     * (such as clicks for text ads or views for video ads). This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double conversions_from_interactions_rate = 164; * @return This builder for chaining. */ public Builder clearConversionsFromInteractionsRate() { bitField1_ = (bitField1_ & ~0x00000200); conversionsFromInteractionsRate_ = 0D; onChanged(); return this; } private double conversionsValue_ ; /** *
     * The value of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_value = 165; * @return Whether the conversionsValue field is set. */ @java.lang.Override public boolean hasConversionsValue() { return ((bitField1_ & 0x00000400) != 0); } /** *
     * The value of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_value = 165; * @return The conversionsValue. */ @java.lang.Override public double getConversionsValue() { return conversionsValue_; } /** *
     * The value of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_value = 165; * @param value The conversionsValue to set. * @return This builder for chaining. */ public Builder setConversionsValue(double value) { bitField1_ |= 0x00000400; conversionsValue_ = value; onChanged(); return this; } /** *
     * The value of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_value = 165; * @return This builder for chaining. */ public Builder clearConversionsValue() { bitField1_ = (bitField1_ & ~0x00000400); conversionsValue_ = 0D; onChanged(); return this; } private double conversionsValueByConversionDate_ ; /** *
     * The value of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions. When this column is selected with date, the values in date
     * column means the conversion date. Details for the by_conversion_date
     * columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double conversions_value_by_conversion_date = 242; * @return The conversionsValueByConversionDate. */ @java.lang.Override public double getConversionsValueByConversionDate() { return conversionsValueByConversionDate_; } /** *
     * The value of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions. When this column is selected with date, the values in date
     * column means the conversion date. Details for the by_conversion_date
     * columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double conversions_value_by_conversion_date = 242; * @param value The conversionsValueByConversionDate to set. * @return This builder for chaining. */ public Builder setConversionsValueByConversionDate(double value) { conversionsValueByConversionDate_ = value; onChanged(); return this; } /** *
     * The value of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions. When this column is selected with date, the values in date
     * column means the conversion date. Details for the by_conversion_date
     * columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double conversions_value_by_conversion_date = 242; * @return This builder for chaining. */ public Builder clearConversionsValueByConversionDate() { conversionsValueByConversionDate_ = 0D; onChanged(); return this; } private double conversionsValuePerCost_ ; /** *
     * The value of conversions divided by the cost of ad interactions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double conversions_value_per_cost = 166; * @return Whether the conversionsValuePerCost field is set. */ @java.lang.Override public boolean hasConversionsValuePerCost() { return ((bitField1_ & 0x00000800) != 0); } /** *
     * The value of conversions divided by the cost of ad interactions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double conversions_value_per_cost = 166; * @return The conversionsValuePerCost. */ @java.lang.Override public double getConversionsValuePerCost() { return conversionsValuePerCost_; } /** *
     * The value of conversions divided by the cost of ad interactions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double conversions_value_per_cost = 166; * @param value The conversionsValuePerCost to set. * @return This builder for chaining. */ public Builder setConversionsValuePerCost(double value) { bitField1_ |= 0x00000800; conversionsValuePerCost_ = value; onChanged(); return this; } /** *
     * The value of conversions divided by the cost of ad interactions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double conversions_value_per_cost = 166; * @return This builder for chaining. */ public Builder clearConversionsValuePerCost() { bitField1_ = (bitField1_ & ~0x00000800); conversionsValuePerCost_ = 0D; onChanged(); return this; } private double conversionsFromInteractionsValuePerInteraction_ ; /** *
     * The value of conversions from interactions divided by the number of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_from_interactions_value_per_interaction = 167; * @return Whether the conversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override public boolean hasConversionsFromInteractionsValuePerInteraction() { return ((bitField1_ & 0x00001000) != 0); } /** *
     * The value of conversions from interactions divided by the number of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_from_interactions_value_per_interaction = 167; * @return The conversionsFromInteractionsValuePerInteraction. */ @java.lang.Override public double getConversionsFromInteractionsValuePerInteraction() { return conversionsFromInteractionsValuePerInteraction_; } /** *
     * The value of conversions from interactions divided by the number of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_from_interactions_value_per_interaction = 167; * @param value The conversionsFromInteractionsValuePerInteraction to set. * @return This builder for chaining. */ public Builder setConversionsFromInteractionsValuePerInteraction(double value) { bitField1_ |= 0x00001000; conversionsFromInteractionsValuePerInteraction_ = value; onChanged(); return this; } /** *
     * The value of conversions from interactions divided by the number of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions_from_interactions_value_per_interaction = 167; * @return This builder for chaining. */ public Builder clearConversionsFromInteractionsValuePerInteraction() { bitField1_ = (bitField1_ & ~0x00001000); conversionsFromInteractionsValuePerInteraction_ = 0D; onChanged(); return this; } private double conversions_ ; /** *
     * The number of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions = 168; * @return Whether the conversions field is set. */ @java.lang.Override public boolean hasConversions() { return ((bitField1_ & 0x00002000) != 0); } /** *
     * The number of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions = 168; * @return The conversions. */ @java.lang.Override public double getConversions() { return conversions_; } /** *
     * The number of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions = 168; * @param value The conversions to set. * @return This builder for chaining. */ public Builder setConversions(double value) { bitField1_ |= 0x00002000; conversions_ = value; onChanged(); return this; } /** *
     * The number of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double conversions = 168; * @return This builder for chaining. */ public Builder clearConversions() { bitField1_ = (bitField1_ & ~0x00002000); conversions_ = 0D; onChanged(); return this; } private double conversionsByConversionDate_ ; /** *
     * The number of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions. When this column is selected with date, the values in date
     * column means the conversion date. Details for the by_conversion_date
     * columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double conversions_by_conversion_date = 243; * @return The conversionsByConversionDate. */ @java.lang.Override public double getConversionsByConversionDate() { return conversionsByConversionDate_; } /** *
     * The number of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions. When this column is selected with date, the values in date
     * column means the conversion date. Details for the by_conversion_date
     * columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double conversions_by_conversion_date = 243; * @param value The conversionsByConversionDate to set. * @return This builder for chaining. */ public Builder setConversionsByConversionDate(double value) { conversionsByConversionDate_ = value; onChanged(); return this; } /** *
     * The number of conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions. When this column is selected with date, the values in date
     * column means the conversion date. Details for the by_conversion_date
     * columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * double conversions_by_conversion_date = 243; * @return This builder for chaining. */ public Builder clearConversionsByConversionDate() { conversionsByConversionDate_ = 0D; onChanged(); return this; } private long costMicros_ ; /** *
     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
     * (CPM) costs during this period.
     * 
* * optional int64 cost_micros = 169; * @return Whether the costMicros field is set. */ @java.lang.Override public boolean hasCostMicros() { return ((bitField1_ & 0x00004000) != 0); } /** *
     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
     * (CPM) costs during this period.
     * 
* * optional int64 cost_micros = 169; * @return The costMicros. */ @java.lang.Override public long getCostMicros() { return costMicros_; } /** *
     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
     * (CPM) costs during this period.
     * 
* * optional int64 cost_micros = 169; * @param value The costMicros to set. * @return This builder for chaining. */ public Builder setCostMicros(long value) { bitField1_ |= 0x00004000; costMicros_ = value; onChanged(); return this; } /** *
     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
     * (CPM) costs during this period.
     * 
* * optional int64 cost_micros = 169; * @return This builder for chaining. */ public Builder clearCostMicros() { bitField1_ = (bitField1_ & ~0x00004000); costMicros_ = 0L; onChanged(); return this; } private double costPerAllConversions_ ; /** *
     * The cost of ad interactions divided by all conversions.
     * 
* * optional double cost_per_all_conversions = 170; * @return Whether the costPerAllConversions field is set. */ @java.lang.Override public boolean hasCostPerAllConversions() { return ((bitField1_ & 0x00008000) != 0); } /** *
     * The cost of ad interactions divided by all conversions.
     * 
* * optional double cost_per_all_conversions = 170; * @return The costPerAllConversions. */ @java.lang.Override public double getCostPerAllConversions() { return costPerAllConversions_; } /** *
     * The cost of ad interactions divided by all conversions.
     * 
* * optional double cost_per_all_conversions = 170; * @param value The costPerAllConversions to set. * @return This builder for chaining. */ public Builder setCostPerAllConversions(double value) { bitField1_ |= 0x00008000; costPerAllConversions_ = value; onChanged(); return this; } /** *
     * The cost of ad interactions divided by all conversions.
     * 
* * optional double cost_per_all_conversions = 170; * @return This builder for chaining. */ public Builder clearCostPerAllConversions() { bitField1_ = (bitField1_ & ~0x00008000); costPerAllConversions_ = 0D; onChanged(); return this; } private double costPerConversion_ ; /** *
     * The cost of ad interactions divided by conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double cost_per_conversion = 171; * @return Whether the costPerConversion field is set. */ @java.lang.Override public boolean hasCostPerConversion() { return ((bitField1_ & 0x00010000) != 0); } /** *
     * The cost of ad interactions divided by conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double cost_per_conversion = 171; * @return The costPerConversion. */ @java.lang.Override public double getCostPerConversion() { return costPerConversion_; } /** *
     * The cost of ad interactions divided by conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double cost_per_conversion = 171; * @param value The costPerConversion to set. * @return This builder for chaining. */ public Builder setCostPerConversion(double value) { bitField1_ |= 0x00010000; costPerConversion_ = value; onChanged(); return this; } /** *
     * The cost of ad interactions divided by conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double cost_per_conversion = 171; * @return This builder for chaining. */ public Builder clearCostPerConversion() { bitField1_ = (bitField1_ & ~0x00010000); costPerConversion_ = 0D; onChanged(); return this; } private double costPerCurrentModelAttributedConversion_ ; /** *
     * The cost of ad interactions divided by current model attributed
     * conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double cost_per_current_model_attributed_conversion = 172; * @return Whether the costPerCurrentModelAttributedConversion field is set. */ @java.lang.Override public boolean hasCostPerCurrentModelAttributedConversion() { return ((bitField1_ & 0x00020000) != 0); } /** *
     * The cost of ad interactions divided by current model attributed
     * conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double cost_per_current_model_attributed_conversion = 172; * @return The costPerCurrentModelAttributedConversion. */ @java.lang.Override public double getCostPerCurrentModelAttributedConversion() { return costPerCurrentModelAttributedConversion_; } /** *
     * The cost of ad interactions divided by current model attributed
     * conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double cost_per_current_model_attributed_conversion = 172; * @param value The costPerCurrentModelAttributedConversion to set. * @return This builder for chaining. */ public Builder setCostPerCurrentModelAttributedConversion(double value) { bitField1_ |= 0x00020000; costPerCurrentModelAttributedConversion_ = value; onChanged(); return this; } /** *
     * The cost of ad interactions divided by current model attributed
     * conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double cost_per_current_model_attributed_conversion = 172; * @return This builder for chaining. */ public Builder clearCostPerCurrentModelAttributedConversion() { bitField1_ = (bitField1_ & ~0x00020000); costPerCurrentModelAttributedConversion_ = 0D; onChanged(); return this; } private double crossDeviceConversions_ ; /** *
     * Conversions from when a customer clicks on a Google Ads ad on one device,
     * then converts on a different device or browser.
     * Cross-device conversions are already included in all_conversions.
     * 
* * optional double cross_device_conversions = 173; * @return Whether the crossDeviceConversions field is set. */ @java.lang.Override public boolean hasCrossDeviceConversions() { return ((bitField1_ & 0x00040000) != 0); } /** *
     * Conversions from when a customer clicks on a Google Ads ad on one device,
     * then converts on a different device or browser.
     * Cross-device conversions are already included in all_conversions.
     * 
* * optional double cross_device_conversions = 173; * @return The crossDeviceConversions. */ @java.lang.Override public double getCrossDeviceConversions() { return crossDeviceConversions_; } /** *
     * Conversions from when a customer clicks on a Google Ads ad on one device,
     * then converts on a different device or browser.
     * Cross-device conversions are already included in all_conversions.
     * 
* * optional double cross_device_conversions = 173; * @param value The crossDeviceConversions to set. * @return This builder for chaining. */ public Builder setCrossDeviceConversions(double value) { bitField1_ |= 0x00040000; crossDeviceConversions_ = value; onChanged(); return this; } /** *
     * Conversions from when a customer clicks on a Google Ads ad on one device,
     * then converts on a different device or browser.
     * Cross-device conversions are already included in all_conversions.
     * 
* * optional double cross_device_conversions = 173; * @return This builder for chaining. */ public Builder clearCrossDeviceConversions() { bitField1_ = (bitField1_ & ~0x00040000); crossDeviceConversions_ = 0D; onChanged(); return this; } private double ctr_ ; /** *
     * The number of clicks your ad receives (Clicks) divided by the number
     * of times your ad is shown (Impressions).
     * 
* * optional double ctr = 174; * @return Whether the ctr field is set. */ @java.lang.Override public boolean hasCtr() { return ((bitField1_ & 0x00080000) != 0); } /** *
     * The number of clicks your ad receives (Clicks) divided by the number
     * of times your ad is shown (Impressions).
     * 
* * optional double ctr = 174; * @return The ctr. */ @java.lang.Override public double getCtr() { return ctr_; } /** *
     * The number of clicks your ad receives (Clicks) divided by the number
     * of times your ad is shown (Impressions).
     * 
* * optional double ctr = 174; * @param value The ctr to set. * @return This builder for chaining. */ public Builder setCtr(double value) { bitField1_ |= 0x00080000; ctr_ = value; onChanged(); return this; } /** *
     * The number of clicks your ad receives (Clicks) divided by the number
     * of times your ad is shown (Impressions).
     * 
* * optional double ctr = 174; * @return This builder for chaining. */ public Builder clearCtr() { bitField1_ = (bitField1_ & ~0x00080000); ctr_ = 0D; onChanged(); return this; } private double currentModelAttributedConversions_ ; /** *
     * Shows how your historic conversions data would look under the attribution
     * model you've currently selected. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions = 175; * @return Whether the currentModelAttributedConversions field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversions() { return ((bitField1_ & 0x00100000) != 0); } /** *
     * Shows how your historic conversions data would look under the attribution
     * model you've currently selected. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions = 175; * @return The currentModelAttributedConversions. */ @java.lang.Override public double getCurrentModelAttributedConversions() { return currentModelAttributedConversions_; } /** *
     * Shows how your historic conversions data would look under the attribution
     * model you've currently selected. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions = 175; * @param value The currentModelAttributedConversions to set. * @return This builder for chaining. */ public Builder setCurrentModelAttributedConversions(double value) { bitField1_ |= 0x00100000; currentModelAttributedConversions_ = value; onChanged(); return this; } /** *
     * Shows how your historic conversions data would look under the attribution
     * model you've currently selected. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions = 175; * @return This builder for chaining. */ public Builder clearCurrentModelAttributedConversions() { bitField1_ = (bitField1_ & ~0x00100000); currentModelAttributedConversions_ = 0D; onChanged(); return this; } private double currentModelAttributedConversionsFromInteractionsRate_ ; /** *
     * Current model attributed conversions from interactions divided by the
     * number of ad interactions (such as clicks for text ads or views for video
     * ads). This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_rate = 176; * @return Whether the currentModelAttributedConversionsFromInteractionsRate field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsFromInteractionsRate() { return ((bitField1_ & 0x00200000) != 0); } /** *
     * Current model attributed conversions from interactions divided by the
     * number of ad interactions (such as clicks for text ads or views for video
     * ads). This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_rate = 176; * @return The currentModelAttributedConversionsFromInteractionsRate. */ @java.lang.Override public double getCurrentModelAttributedConversionsFromInteractionsRate() { return currentModelAttributedConversionsFromInteractionsRate_; } /** *
     * Current model attributed conversions from interactions divided by the
     * number of ad interactions (such as clicks for text ads or views for video
     * ads). This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_rate = 176; * @param value The currentModelAttributedConversionsFromInteractionsRate to set. * @return This builder for chaining. */ public Builder setCurrentModelAttributedConversionsFromInteractionsRate(double value) { bitField1_ |= 0x00200000; currentModelAttributedConversionsFromInteractionsRate_ = value; onChanged(); return this; } /** *
     * Current model attributed conversions from interactions divided by the
     * number of ad interactions (such as clicks for text ads or views for video
     * ads). This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_rate = 176; * @return This builder for chaining. */ public Builder clearCurrentModelAttributedConversionsFromInteractionsRate() { bitField1_ = (bitField1_ & ~0x00200000); currentModelAttributedConversionsFromInteractionsRate_ = 0D; onChanged(); return this; } private double currentModelAttributedConversionsFromInteractionsValuePerInteraction_ ; /** *
     * The value of current model attributed conversions from interactions divided
     * by the number of ad interactions. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; * @return Whether the currentModelAttributedConversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { return ((bitField1_ & 0x00400000) != 0); } /** *
     * The value of current model attributed conversions from interactions divided
     * by the number of ad interactions. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; * @return The currentModelAttributedConversionsFromInteractionsValuePerInteraction. */ @java.lang.Override public double getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { return currentModelAttributedConversionsFromInteractionsValuePerInteraction_; } /** *
     * The value of current model attributed conversions from interactions divided
     * by the number of ad interactions. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; * @param value The currentModelAttributedConversionsFromInteractionsValuePerInteraction to set. * @return This builder for chaining. */ public Builder setCurrentModelAttributedConversionsFromInteractionsValuePerInteraction(double value) { bitField1_ |= 0x00400000; currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = value; onChanged(); return this; } /** *
     * The value of current model attributed conversions from interactions divided
     * by the number of ad interactions. This only includes conversion actions
     * which include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; * @return This builder for chaining. */ public Builder clearCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { bitField1_ = (bitField1_ & ~0x00400000); currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = 0D; onChanged(); return this; } private double currentModelAttributedConversionsValue_ ; /** *
     * The value of current model attributed conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double current_model_attributed_conversions_value = 178; * @return Whether the currentModelAttributedConversionsValue field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsValue() { return ((bitField1_ & 0x00800000) != 0); } /** *
     * The value of current model attributed conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double current_model_attributed_conversions_value = 178; * @return The currentModelAttributedConversionsValue. */ @java.lang.Override public double getCurrentModelAttributedConversionsValue() { return currentModelAttributedConversionsValue_; } /** *
     * The value of current model attributed conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double current_model_attributed_conversions_value = 178; * @param value The currentModelAttributedConversionsValue to set. * @return This builder for chaining. */ public Builder setCurrentModelAttributedConversionsValue(double value) { bitField1_ |= 0x00800000; currentModelAttributedConversionsValue_ = value; onChanged(); return this; } /** *
     * The value of current model attributed conversions. This only includes
     * conversion actions which include_in_conversions_metric attribute is set to
     * true. If you use conversion-based bidding, your bid strategies will
     * optimize for these conversions.
     * 
* * optional double current_model_attributed_conversions_value = 178; * @return This builder for chaining. */ public Builder clearCurrentModelAttributedConversionsValue() { bitField1_ = (bitField1_ & ~0x00800000); currentModelAttributedConversionsValue_ = 0D; onChanged(); return this; } private double currentModelAttributedConversionsValuePerCost_ ; /** *
     * The value of current model attributed conversions divided by the cost of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_value_per_cost = 179; * @return Whether the currentModelAttributedConversionsValuePerCost field is set. */ @java.lang.Override public boolean hasCurrentModelAttributedConversionsValuePerCost() { return ((bitField1_ & 0x01000000) != 0); } /** *
     * The value of current model attributed conversions divided by the cost of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_value_per_cost = 179; * @return The currentModelAttributedConversionsValuePerCost. */ @java.lang.Override public double getCurrentModelAttributedConversionsValuePerCost() { return currentModelAttributedConversionsValuePerCost_; } /** *
     * The value of current model attributed conversions divided by the cost of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_value_per_cost = 179; * @param value The currentModelAttributedConversionsValuePerCost to set. * @return This builder for chaining. */ public Builder setCurrentModelAttributedConversionsValuePerCost(double value) { bitField1_ |= 0x01000000; currentModelAttributedConversionsValuePerCost_ = value; onChanged(); return this; } /** *
     * The value of current model attributed conversions divided by the cost of ad
     * interactions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double current_model_attributed_conversions_value_per_cost = 179; * @return This builder for chaining. */ public Builder clearCurrentModelAttributedConversionsValuePerCost() { bitField1_ = (bitField1_ & ~0x01000000); currentModelAttributedConversionsValuePerCost_ = 0D; onChanged(); return this; } private double engagementRate_ ; /** *
     * How often people engage with your ad after it's shown to them. This is the
     * number of ad expansions divided by the number of times your ad is shown.
     * 
* * optional double engagement_rate = 180; * @return Whether the engagementRate field is set. */ @java.lang.Override public boolean hasEngagementRate() { return ((bitField1_ & 0x02000000) != 0); } /** *
     * How often people engage with your ad after it's shown to them. This is the
     * number of ad expansions divided by the number of times your ad is shown.
     * 
* * optional double engagement_rate = 180; * @return The engagementRate. */ @java.lang.Override public double getEngagementRate() { return engagementRate_; } /** *
     * How often people engage with your ad after it's shown to them. This is the
     * number of ad expansions divided by the number of times your ad is shown.
     * 
* * optional double engagement_rate = 180; * @param value The engagementRate to set. * @return This builder for chaining. */ public Builder setEngagementRate(double value) { bitField1_ |= 0x02000000; engagementRate_ = value; onChanged(); return this; } /** *
     * How often people engage with your ad after it's shown to them. This is the
     * number of ad expansions divided by the number of times your ad is shown.
     * 
* * optional double engagement_rate = 180; * @return This builder for chaining. */ public Builder clearEngagementRate() { bitField1_ = (bitField1_ & ~0x02000000); engagementRate_ = 0D; onChanged(); return this; } private long engagements_ ; /** *
     * The number of engagements.
     * An engagement occurs when a viewer expands your Lightbox ad. Also, in the
     * future, other ad types may support engagement metrics.
     * 
* * optional int64 engagements = 181; * @return Whether the engagements field is set. */ @java.lang.Override public boolean hasEngagements() { return ((bitField1_ & 0x04000000) != 0); } /** *
     * The number of engagements.
     * An engagement occurs when a viewer expands your Lightbox ad. Also, in the
     * future, other ad types may support engagement metrics.
     * 
* * optional int64 engagements = 181; * @return The engagements. */ @java.lang.Override public long getEngagements() { return engagements_; } /** *
     * The number of engagements.
     * An engagement occurs when a viewer expands your Lightbox ad. Also, in the
     * future, other ad types may support engagement metrics.
     * 
* * optional int64 engagements = 181; * @param value The engagements to set. * @return This builder for chaining. */ public Builder setEngagements(long value) { bitField1_ |= 0x04000000; engagements_ = value; onChanged(); return this; } /** *
     * The number of engagements.
     * An engagement occurs when a viewer expands your Lightbox ad. Also, in the
     * future, other ad types may support engagement metrics.
     * 
* * optional int64 engagements = 181; * @return This builder for chaining. */ public Builder clearEngagements() { bitField1_ = (bitField1_ & ~0x04000000); engagements_ = 0L; onChanged(); return this; } private double hotelAverageLeadValueMicros_ ; /** *
     * Average lead value based on clicks.
     * 
* * optional double hotel_average_lead_value_micros = 213; * @return Whether the hotelAverageLeadValueMicros field is set. */ @java.lang.Override public boolean hasHotelAverageLeadValueMicros() { return ((bitField1_ & 0x08000000) != 0); } /** *
     * Average lead value based on clicks.
     * 
* * optional double hotel_average_lead_value_micros = 213; * @return The hotelAverageLeadValueMicros. */ @java.lang.Override public double getHotelAverageLeadValueMicros() { return hotelAverageLeadValueMicros_; } /** *
     * Average lead value based on clicks.
     * 
* * optional double hotel_average_lead_value_micros = 213; * @param value The hotelAverageLeadValueMicros to set. * @return This builder for chaining. */ public Builder setHotelAverageLeadValueMicros(double value) { bitField1_ |= 0x08000000; hotelAverageLeadValueMicros_ = value; onChanged(); return this; } /** *
     * Average lead value based on clicks.
     * 
* * optional double hotel_average_lead_value_micros = 213; * @return This builder for chaining. */ public Builder clearHotelAverageLeadValueMicros() { bitField1_ = (bitField1_ & ~0x08000000); hotelAverageLeadValueMicros_ = 0D; onChanged(); return this; } private long hotelCommissionRateMicros_ ; /** *
     * Commission bid rate in micros. A 20% commission is represented as
     * 200,000.
     * 
* * optional int64 hotel_commission_rate_micros = 256; * @return Whether the hotelCommissionRateMicros field is set. */ @java.lang.Override public boolean hasHotelCommissionRateMicros() { return ((bitField1_ & 0x10000000) != 0); } /** *
     * Commission bid rate in micros. A 20% commission is represented as
     * 200,000.
     * 
* * optional int64 hotel_commission_rate_micros = 256; * @return The hotelCommissionRateMicros. */ @java.lang.Override public long getHotelCommissionRateMicros() { return hotelCommissionRateMicros_; } /** *
     * Commission bid rate in micros. A 20% commission is represented as
     * 200,000.
     * 
* * optional int64 hotel_commission_rate_micros = 256; * @param value The hotelCommissionRateMicros to set. * @return This builder for chaining. */ public Builder setHotelCommissionRateMicros(long value) { bitField1_ |= 0x10000000; hotelCommissionRateMicros_ = value; onChanged(); return this; } /** *
     * Commission bid rate in micros. A 20% commission is represented as
     * 200,000.
     * 
* * optional int64 hotel_commission_rate_micros = 256; * @return This builder for chaining. */ public Builder clearHotelCommissionRateMicros() { bitField1_ = (bitField1_ & ~0x10000000); hotelCommissionRateMicros_ = 0L; onChanged(); return this; } private double hotelExpectedCommissionCost_ ; /** *
     * Expected commission cost. The result of multiplying the commission value
     * times the hotel_commission_rate in advertiser currency.
     * 
* * optional double hotel_expected_commission_cost = 257; * @return Whether the hotelExpectedCommissionCost field is set. */ @java.lang.Override public boolean hasHotelExpectedCommissionCost() { return ((bitField1_ & 0x20000000) != 0); } /** *
     * Expected commission cost. The result of multiplying the commission value
     * times the hotel_commission_rate in advertiser currency.
     * 
* * optional double hotel_expected_commission_cost = 257; * @return The hotelExpectedCommissionCost. */ @java.lang.Override public double getHotelExpectedCommissionCost() { return hotelExpectedCommissionCost_; } /** *
     * Expected commission cost. The result of multiplying the commission value
     * times the hotel_commission_rate in advertiser currency.
     * 
* * optional double hotel_expected_commission_cost = 257; * @param value The hotelExpectedCommissionCost to set. * @return This builder for chaining. */ public Builder setHotelExpectedCommissionCost(double value) { bitField1_ |= 0x20000000; hotelExpectedCommissionCost_ = value; onChanged(); return this; } /** *
     * Expected commission cost. The result of multiplying the commission value
     * times the hotel_commission_rate in advertiser currency.
     * 
* * optional double hotel_expected_commission_cost = 257; * @return This builder for chaining. */ public Builder clearHotelExpectedCommissionCost() { bitField1_ = (bitField1_ & ~0x20000000); hotelExpectedCommissionCost_ = 0D; onChanged(); return this; } private double hotelPriceDifferencePercentage_ ; /** *
     * The average price difference between the price offered by reporting hotel
     * advertiser and the cheapest price offered by the competing advertiser.
     * 
* * optional double hotel_price_difference_percentage = 214; * @return Whether the hotelPriceDifferencePercentage field is set. */ @java.lang.Override public boolean hasHotelPriceDifferencePercentage() { return ((bitField1_ & 0x40000000) != 0); } /** *
     * The average price difference between the price offered by reporting hotel
     * advertiser and the cheapest price offered by the competing advertiser.
     * 
* * optional double hotel_price_difference_percentage = 214; * @return The hotelPriceDifferencePercentage. */ @java.lang.Override public double getHotelPriceDifferencePercentage() { return hotelPriceDifferencePercentage_; } /** *
     * The average price difference between the price offered by reporting hotel
     * advertiser and the cheapest price offered by the competing advertiser.
     * 
* * optional double hotel_price_difference_percentage = 214; * @param value The hotelPriceDifferencePercentage to set. * @return This builder for chaining. */ public Builder setHotelPriceDifferencePercentage(double value) { bitField1_ |= 0x40000000; hotelPriceDifferencePercentage_ = value; onChanged(); return this; } /** *
     * The average price difference between the price offered by reporting hotel
     * advertiser and the cheapest price offered by the competing advertiser.
     * 
* * optional double hotel_price_difference_percentage = 214; * @return This builder for chaining. */ public Builder clearHotelPriceDifferencePercentage() { bitField1_ = (bitField1_ & ~0x40000000); hotelPriceDifferencePercentage_ = 0D; onChanged(); return this; } private long hotelEligibleImpressions_ ; /** *
     * The number of impressions that hotel partners could have had given their
     * feed performance.
     * 
* * optional int64 hotel_eligible_impressions = 215; * @return Whether the hotelEligibleImpressions field is set. */ @java.lang.Override public boolean hasHotelEligibleImpressions() { return ((bitField1_ & 0x80000000) != 0); } /** *
     * The number of impressions that hotel partners could have had given their
     * feed performance.
     * 
* * optional int64 hotel_eligible_impressions = 215; * @return The hotelEligibleImpressions. */ @java.lang.Override public long getHotelEligibleImpressions() { return hotelEligibleImpressions_; } /** *
     * The number of impressions that hotel partners could have had given their
     * feed performance.
     * 
* * optional int64 hotel_eligible_impressions = 215; * @param value The hotelEligibleImpressions to set. * @return This builder for chaining. */ public Builder setHotelEligibleImpressions(long value) { bitField1_ |= 0x80000000; hotelEligibleImpressions_ = value; onChanged(); return this; } /** *
     * The number of impressions that hotel partners could have had given their
     * feed performance.
     * 
* * optional int64 hotel_eligible_impressions = 215; * @return This builder for chaining. */ public Builder clearHotelEligibleImpressions() { bitField1_ = (bitField1_ & ~0x80000000); hotelEligibleImpressions_ = 0L; onChanged(); return this; } private int historicalCreativeQualityScore_ = 0; /** *
     * The creative historical quality score.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @return The enum numeric value on the wire for historicalCreativeQualityScore. */ @java.lang.Override public int getHistoricalCreativeQualityScoreValue() { return historicalCreativeQualityScore_; } /** *
     * The creative historical quality score.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @param value The enum numeric value on the wire for historicalCreativeQualityScore to set. * @return This builder for chaining. */ public Builder setHistoricalCreativeQualityScoreValue(int value) { historicalCreativeQualityScore_ = value; onChanged(); return this; } /** *
     * The creative historical quality score.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @return The historicalCreativeQualityScore. */ @java.lang.Override public com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalCreativeQualityScore() { @SuppressWarnings("deprecation") com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.valueOf(historicalCreativeQualityScore_); return result == null ? com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } /** *
     * The creative historical quality score.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @param value The historicalCreativeQualityScore to set. * @return This builder for chaining. */ public Builder setHistoricalCreativeQualityScore(com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket value) { if (value == null) { throw new NullPointerException(); } historicalCreativeQualityScore_ = value.getNumber(); onChanged(); return this; } /** *
     * The creative historical quality score.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @return This builder for chaining. */ public Builder clearHistoricalCreativeQualityScore() { historicalCreativeQualityScore_ = 0; onChanged(); return this; } private int historicalLandingPageQualityScore_ = 0; /** *
     * The quality of historical landing page experience.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @return The enum numeric value on the wire for historicalLandingPageQualityScore. */ @java.lang.Override public int getHistoricalLandingPageQualityScoreValue() { return historicalLandingPageQualityScore_; } /** *
     * The quality of historical landing page experience.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @param value The enum numeric value on the wire for historicalLandingPageQualityScore to set. * @return This builder for chaining. */ public Builder setHistoricalLandingPageQualityScoreValue(int value) { historicalLandingPageQualityScore_ = value; onChanged(); return this; } /** *
     * The quality of historical landing page experience.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @return The historicalLandingPageQualityScore. */ @java.lang.Override public com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalLandingPageQualityScore() { @SuppressWarnings("deprecation") com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.valueOf(historicalLandingPageQualityScore_); return result == null ? com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } /** *
     * The quality of historical landing page experience.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @param value The historicalLandingPageQualityScore to set. * @return This builder for chaining. */ public Builder setHistoricalLandingPageQualityScore(com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket value) { if (value == null) { throw new NullPointerException(); } historicalLandingPageQualityScore_ = value.getNumber(); onChanged(); return this; } /** *
     * The quality of historical landing page experience.
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @return This builder for chaining. */ public Builder clearHistoricalLandingPageQualityScore() { historicalLandingPageQualityScore_ = 0; onChanged(); return this; } private long historicalQualityScore_ ; /** *
     * The historical quality score.
     * 
* * optional int64 historical_quality_score = 216; * @return Whether the historicalQualityScore field is set. */ @java.lang.Override public boolean hasHistoricalQualityScore() { return ((bitField2_ & 0x00000001) != 0); } /** *
     * The historical quality score.
     * 
* * optional int64 historical_quality_score = 216; * @return The historicalQualityScore. */ @java.lang.Override public long getHistoricalQualityScore() { return historicalQualityScore_; } /** *
     * The historical quality score.
     * 
* * optional int64 historical_quality_score = 216; * @param value The historicalQualityScore to set. * @return This builder for chaining. */ public Builder setHistoricalQualityScore(long value) { bitField2_ |= 0x00000001; historicalQualityScore_ = value; onChanged(); return this; } /** *
     * The historical quality score.
     * 
* * optional int64 historical_quality_score = 216; * @return This builder for chaining. */ public Builder clearHistoricalQualityScore() { bitField2_ = (bitField2_ & ~0x00000001); historicalQualityScore_ = 0L; onChanged(); return this; } private int historicalSearchPredictedCtr_ = 0; /** *
     * The historical search predicted click through rate (CTR).
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @return The enum numeric value on the wire for historicalSearchPredictedCtr. */ @java.lang.Override public int getHistoricalSearchPredictedCtrValue() { return historicalSearchPredictedCtr_; } /** *
     * The historical search predicted click through rate (CTR).
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @param value The enum numeric value on the wire for historicalSearchPredictedCtr to set. * @return This builder for chaining. */ public Builder setHistoricalSearchPredictedCtrValue(int value) { historicalSearchPredictedCtr_ = value; onChanged(); return this; } /** *
     * The historical search predicted click through rate (CTR).
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @return The historicalSearchPredictedCtr. */ @java.lang.Override public com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalSearchPredictedCtr() { @SuppressWarnings("deprecation") com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.valueOf(historicalSearchPredictedCtr_); return result == null ? com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } /** *
     * The historical search predicted click through rate (CTR).
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @param value The historicalSearchPredictedCtr to set. * @return This builder for chaining. */ public Builder setHistoricalSearchPredictedCtr(com.google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket value) { if (value == null) { throw new NullPointerException(); } historicalSearchPredictedCtr_ = value.getNumber(); onChanged(); return this; } /** *
     * The historical search predicted click through rate (CTR).
     * 
* * .google.ads.googleads.v10.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @return This builder for chaining. */ public Builder clearHistoricalSearchPredictedCtr() { historicalSearchPredictedCtr_ = 0; onChanged(); return this; } private long gmailForwards_ ; /** *
     * The number of times the ad was forwarded to someone else as a message.
     * 
* * optional int64 gmail_forwards = 217; * @return Whether the gmailForwards field is set. */ @java.lang.Override public boolean hasGmailForwards() { return ((bitField2_ & 0x00000002) != 0); } /** *
     * The number of times the ad was forwarded to someone else as a message.
     * 
* * optional int64 gmail_forwards = 217; * @return The gmailForwards. */ @java.lang.Override public long getGmailForwards() { return gmailForwards_; } /** *
     * The number of times the ad was forwarded to someone else as a message.
     * 
* * optional int64 gmail_forwards = 217; * @param value The gmailForwards to set. * @return This builder for chaining. */ public Builder setGmailForwards(long value) { bitField2_ |= 0x00000002; gmailForwards_ = value; onChanged(); return this; } /** *
     * The number of times the ad was forwarded to someone else as a message.
     * 
* * optional int64 gmail_forwards = 217; * @return This builder for chaining. */ public Builder clearGmailForwards() { bitField2_ = (bitField2_ & ~0x00000002); gmailForwards_ = 0L; onChanged(); return this; } private long gmailSaves_ ; /** *
     * The number of times someone has saved your Gmail ad to their inbox as a
     * message.
     * 
* * optional int64 gmail_saves = 218; * @return Whether the gmailSaves field is set. */ @java.lang.Override public boolean hasGmailSaves() { return ((bitField2_ & 0x00000004) != 0); } /** *
     * The number of times someone has saved your Gmail ad to their inbox as a
     * message.
     * 
* * optional int64 gmail_saves = 218; * @return The gmailSaves. */ @java.lang.Override public long getGmailSaves() { return gmailSaves_; } /** *
     * The number of times someone has saved your Gmail ad to their inbox as a
     * message.
     * 
* * optional int64 gmail_saves = 218; * @param value The gmailSaves to set. * @return This builder for chaining. */ public Builder setGmailSaves(long value) { bitField2_ |= 0x00000004; gmailSaves_ = value; onChanged(); return this; } /** *
     * The number of times someone has saved your Gmail ad to their inbox as a
     * message.
     * 
* * optional int64 gmail_saves = 218; * @return This builder for chaining. */ public Builder clearGmailSaves() { bitField2_ = (bitField2_ & ~0x00000004); gmailSaves_ = 0L; onChanged(); return this; } private long gmailSecondaryClicks_ ; /** *
     * The number of clicks to the landing page on the expanded state of Gmail
     * ads.
     * 
* * optional int64 gmail_secondary_clicks = 219; * @return Whether the gmailSecondaryClicks field is set. */ @java.lang.Override public boolean hasGmailSecondaryClicks() { return ((bitField2_ & 0x00000008) != 0); } /** *
     * The number of clicks to the landing page on the expanded state of Gmail
     * ads.
     * 
* * optional int64 gmail_secondary_clicks = 219; * @return The gmailSecondaryClicks. */ @java.lang.Override public long getGmailSecondaryClicks() { return gmailSecondaryClicks_; } /** *
     * The number of clicks to the landing page on the expanded state of Gmail
     * ads.
     * 
* * optional int64 gmail_secondary_clicks = 219; * @param value The gmailSecondaryClicks to set. * @return This builder for chaining. */ public Builder setGmailSecondaryClicks(long value) { bitField2_ |= 0x00000008; gmailSecondaryClicks_ = value; onChanged(); return this; } /** *
     * The number of clicks to the landing page on the expanded state of Gmail
     * ads.
     * 
* * optional int64 gmail_secondary_clicks = 219; * @return This builder for chaining. */ public Builder clearGmailSecondaryClicks() { bitField2_ = (bitField2_ & ~0x00000008); gmailSecondaryClicks_ = 0L; onChanged(); return this; } private long impressionsFromStoreReach_ ; /** *
     * The number of times a store's location-based ad was shown.
     * This metric applies to feed items only.
     * 
* * optional int64 impressions_from_store_reach = 220; * @return Whether the impressionsFromStoreReach field is set. */ @java.lang.Override public boolean hasImpressionsFromStoreReach() { return ((bitField2_ & 0x00000010) != 0); } /** *
     * The number of times a store's location-based ad was shown.
     * This metric applies to feed items only.
     * 
* * optional int64 impressions_from_store_reach = 220; * @return The impressionsFromStoreReach. */ @java.lang.Override public long getImpressionsFromStoreReach() { return impressionsFromStoreReach_; } /** *
     * The number of times a store's location-based ad was shown.
     * This metric applies to feed items only.
     * 
* * optional int64 impressions_from_store_reach = 220; * @param value The impressionsFromStoreReach to set. * @return This builder for chaining. */ public Builder setImpressionsFromStoreReach(long value) { bitField2_ |= 0x00000010; impressionsFromStoreReach_ = value; onChanged(); return this; } /** *
     * The number of times a store's location-based ad was shown.
     * This metric applies to feed items only.
     * 
* * optional int64 impressions_from_store_reach = 220; * @return This builder for chaining. */ public Builder clearImpressionsFromStoreReach() { bitField2_ = (bitField2_ & ~0x00000010); impressionsFromStoreReach_ = 0L; onChanged(); return this; } private long impressions_ ; /** *
     * Count of how often your ad has appeared on a search results page or
     * website on the Google Network.
     * 
* * optional int64 impressions = 221; * @return Whether the impressions field is set. */ @java.lang.Override public boolean hasImpressions() { return ((bitField2_ & 0x00000020) != 0); } /** *
     * Count of how often your ad has appeared on a search results page or
     * website on the Google Network.
     * 
* * optional int64 impressions = 221; * @return The impressions. */ @java.lang.Override public long getImpressions() { return impressions_; } /** *
     * Count of how often your ad has appeared on a search results page or
     * website on the Google Network.
     * 
* * optional int64 impressions = 221; * @param value The impressions to set. * @return This builder for chaining. */ public Builder setImpressions(long value) { bitField2_ |= 0x00000020; impressions_ = value; onChanged(); return this; } /** *
     * Count of how often your ad has appeared on a search results page or
     * website on the Google Network.
     * 
* * optional int64 impressions = 221; * @return This builder for chaining. */ public Builder clearImpressions() { bitField2_ = (bitField2_ & ~0x00000020); impressions_ = 0L; onChanged(); return this; } private double interactionRate_ ; /** *
     * How often people interact with your ad after it is shown to them.
     * This is the number of interactions divided by the number of times your ad
     * is shown.
     * 
* * optional double interaction_rate = 222; * @return Whether the interactionRate field is set. */ @java.lang.Override public boolean hasInteractionRate() { return ((bitField2_ & 0x00000040) != 0); } /** *
     * How often people interact with your ad after it is shown to them.
     * This is the number of interactions divided by the number of times your ad
     * is shown.
     * 
* * optional double interaction_rate = 222; * @return The interactionRate. */ @java.lang.Override public double getInteractionRate() { return interactionRate_; } /** *
     * How often people interact with your ad after it is shown to them.
     * This is the number of interactions divided by the number of times your ad
     * is shown.
     * 
* * optional double interaction_rate = 222; * @param value The interactionRate to set. * @return This builder for chaining. */ public Builder setInteractionRate(double value) { bitField2_ |= 0x00000040; interactionRate_ = value; onChanged(); return this; } /** *
     * How often people interact with your ad after it is shown to them.
     * This is the number of interactions divided by the number of times your ad
     * is shown.
     * 
* * optional double interaction_rate = 222; * @return This builder for chaining. */ public Builder clearInteractionRate() { bitField2_ = (bitField2_ & ~0x00000040); interactionRate_ = 0D; onChanged(); return this; } private long interactions_ ; /** *
     * The number of interactions.
     * An interaction is the main user action associated with an ad format-clicks
     * for text and shopping ads, views for video ads, and so on.
     * 
* * optional int64 interactions = 223; * @return Whether the interactions field is set. */ @java.lang.Override public boolean hasInteractions() { return ((bitField2_ & 0x00000080) != 0); } /** *
     * The number of interactions.
     * An interaction is the main user action associated with an ad format-clicks
     * for text and shopping ads, views for video ads, and so on.
     * 
* * optional int64 interactions = 223; * @return The interactions. */ @java.lang.Override public long getInteractions() { return interactions_; } /** *
     * The number of interactions.
     * An interaction is the main user action associated with an ad format-clicks
     * for text and shopping ads, views for video ads, and so on.
     * 
* * optional int64 interactions = 223; * @param value The interactions to set. * @return This builder for chaining. */ public Builder setInteractions(long value) { bitField2_ |= 0x00000080; interactions_ = value; onChanged(); return this; } /** *
     * The number of interactions.
     * An interaction is the main user action associated with an ad format-clicks
     * for text and shopping ads, views for video ads, and so on.
     * 
* * optional int64 interactions = 223; * @return This builder for chaining. */ public Builder clearInteractions() { bitField2_ = (bitField2_ & ~0x00000080); interactions_ = 0L; onChanged(); return this; } private java.util.List interactionEventTypes_ = java.util.Collections.emptyList(); private void ensureInteractionEventTypesIsMutable() { if (!((bitField2_ & 0x00000100) != 0)) { interactionEventTypes_ = new java.util.ArrayList(interactionEventTypes_); bitField2_ |= 0x00000100; } } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return A list containing the interactionEventTypes. */ public java.util.List getInteractionEventTypesList() { return new com.google.protobuf.Internal.ListAdapter< java.lang.Integer, com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType>(interactionEventTypes_, interactionEventTypes_converter_); } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return The count of interactionEventTypes. */ public int getInteractionEventTypesCount() { return interactionEventTypes_.size(); } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param index The index of the element to return. * @return The interactionEventTypes at the given index. */ public com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType getInteractionEventTypes(int index) { return interactionEventTypes_converter_.convert(interactionEventTypes_.get(index)); } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param index The index to set the value at. * @param value The interactionEventTypes to set. * @return This builder for chaining. */ public Builder setInteractionEventTypes( int index, com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType value) { if (value == null) { throw new NullPointerException(); } ensureInteractionEventTypesIsMutable(); interactionEventTypes_.set(index, value.getNumber()); onChanged(); return this; } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param value The interactionEventTypes to add. * @return This builder for chaining. */ public Builder addInteractionEventTypes(com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType value) { if (value == null) { throw new NullPointerException(); } ensureInteractionEventTypesIsMutable(); interactionEventTypes_.add(value.getNumber()); onChanged(); return this; } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param values The interactionEventTypes to add. * @return This builder for chaining. */ public Builder addAllInteractionEventTypes( java.lang.Iterable values) { ensureInteractionEventTypesIsMutable(); for (com.google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType value : values) { interactionEventTypes_.add(value.getNumber()); } onChanged(); return this; } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return This builder for chaining. */ public Builder clearInteractionEventTypes() { interactionEventTypes_ = java.util.Collections.emptyList(); bitField2_ = (bitField2_ & ~0x00000100); onChanged(); return this; } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return A list containing the enum numeric values on the wire for interactionEventTypes. */ public java.util.List getInteractionEventTypesValueList() { return java.util.Collections.unmodifiableList(interactionEventTypes_); } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param index The index of the value to return. * @return The enum numeric value on the wire of interactionEventTypes at the given index. */ public int getInteractionEventTypesValue(int index) { return interactionEventTypes_.get(index); } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param index The index to set the value at. * @param value The enum numeric value on the wire for interactionEventTypes to set. * @return This builder for chaining. */ public Builder setInteractionEventTypesValue( int index, int value) { ensureInteractionEventTypesIsMutable(); interactionEventTypes_.set(index, value); onChanged(); return this; } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param value The enum numeric value on the wire for interactionEventTypes to add. * @return This builder for chaining. */ public Builder addInteractionEventTypesValue(int value) { ensureInteractionEventTypesIsMutable(); interactionEventTypes_.add(value); onChanged(); return this; } /** *
     * The types of payable and free interactions.
     * 
* * repeated .google.ads.googleads.v10.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @param values The enum numeric values on the wire for interactionEventTypes to add. * @return This builder for chaining. */ public Builder addAllInteractionEventTypesValue( java.lang.Iterable values) { ensureInteractionEventTypesIsMutable(); for (int value : values) { interactionEventTypes_.add(value); } onChanged(); return this; } private double invalidClickRate_ ; /** *
     * The percentage of clicks filtered out of your total number of clicks
     * (filtered + non-filtered clicks) during the reporting period.
     * 
* * optional double invalid_click_rate = 224; * @return Whether the invalidClickRate field is set. */ @java.lang.Override public boolean hasInvalidClickRate() { return ((bitField2_ & 0x00000200) != 0); } /** *
     * The percentage of clicks filtered out of your total number of clicks
     * (filtered + non-filtered clicks) during the reporting period.
     * 
* * optional double invalid_click_rate = 224; * @return The invalidClickRate. */ @java.lang.Override public double getInvalidClickRate() { return invalidClickRate_; } /** *
     * The percentage of clicks filtered out of your total number of clicks
     * (filtered + non-filtered clicks) during the reporting period.
     * 
* * optional double invalid_click_rate = 224; * @param value The invalidClickRate to set. * @return This builder for chaining. */ public Builder setInvalidClickRate(double value) { bitField2_ |= 0x00000200; invalidClickRate_ = value; onChanged(); return this; } /** *
     * The percentage of clicks filtered out of your total number of clicks
     * (filtered + non-filtered clicks) during the reporting period.
     * 
* * optional double invalid_click_rate = 224; * @return This builder for chaining. */ public Builder clearInvalidClickRate() { bitField2_ = (bitField2_ & ~0x00000200); invalidClickRate_ = 0D; onChanged(); return this; } private long invalidClicks_ ; /** *
     * Number of clicks Google considers illegitimate and doesn't charge you for.
     * 
* * optional int64 invalid_clicks = 225; * @return Whether the invalidClicks field is set. */ @java.lang.Override public boolean hasInvalidClicks() { return ((bitField2_ & 0x00000400) != 0); } /** *
     * Number of clicks Google considers illegitimate and doesn't charge you for.
     * 
* * optional int64 invalid_clicks = 225; * @return The invalidClicks. */ @java.lang.Override public long getInvalidClicks() { return invalidClicks_; } /** *
     * Number of clicks Google considers illegitimate and doesn't charge you for.
     * 
* * optional int64 invalid_clicks = 225; * @param value The invalidClicks to set. * @return This builder for chaining. */ public Builder setInvalidClicks(long value) { bitField2_ |= 0x00000400; invalidClicks_ = value; onChanged(); return this; } /** *
     * Number of clicks Google considers illegitimate and doesn't charge you for.
     * 
* * optional int64 invalid_clicks = 225; * @return This builder for chaining. */ public Builder clearInvalidClicks() { bitField2_ = (bitField2_ & ~0x00000400); invalidClicks_ = 0L; onChanged(); return this; } private long messageChats_ ; /** *
     * Number of message chats initiated for Click To Message impressions that
     * were message tracking eligible.
     * 
* * optional int64 message_chats = 226; * @return Whether the messageChats field is set. */ @java.lang.Override public boolean hasMessageChats() { return ((bitField2_ & 0x00000800) != 0); } /** *
     * Number of message chats initiated for Click To Message impressions that
     * were message tracking eligible.
     * 
* * optional int64 message_chats = 226; * @return The messageChats. */ @java.lang.Override public long getMessageChats() { return messageChats_; } /** *
     * Number of message chats initiated for Click To Message impressions that
     * were message tracking eligible.
     * 
* * optional int64 message_chats = 226; * @param value The messageChats to set. * @return This builder for chaining. */ public Builder setMessageChats(long value) { bitField2_ |= 0x00000800; messageChats_ = value; onChanged(); return this; } /** *
     * Number of message chats initiated for Click To Message impressions that
     * were message tracking eligible.
     * 
* * optional int64 message_chats = 226; * @return This builder for chaining. */ public Builder clearMessageChats() { bitField2_ = (bitField2_ & ~0x00000800); messageChats_ = 0L; onChanged(); return this; } private long messageImpressions_ ; /** *
     * Number of Click To Message impressions that were message tracking eligible.
     * 
* * optional int64 message_impressions = 227; * @return Whether the messageImpressions field is set. */ @java.lang.Override public boolean hasMessageImpressions() { return ((bitField2_ & 0x00001000) != 0); } /** *
     * Number of Click To Message impressions that were message tracking eligible.
     * 
* * optional int64 message_impressions = 227; * @return The messageImpressions. */ @java.lang.Override public long getMessageImpressions() { return messageImpressions_; } /** *
     * Number of Click To Message impressions that were message tracking eligible.
     * 
* * optional int64 message_impressions = 227; * @param value The messageImpressions to set. * @return This builder for chaining. */ public Builder setMessageImpressions(long value) { bitField2_ |= 0x00001000; messageImpressions_ = value; onChanged(); return this; } /** *
     * Number of Click To Message impressions that were message tracking eligible.
     * 
* * optional int64 message_impressions = 227; * @return This builder for chaining. */ public Builder clearMessageImpressions() { bitField2_ = (bitField2_ & ~0x00001000); messageImpressions_ = 0L; onChanged(); return this; } private double messageChatRate_ ; /** *
     * Number of message chats initiated (message_chats) divided by the number
     * of message impressions (message_impressions).
     * Rate at which a user initiates a message chat from an ad impression with
     * a messaging option and message tracking enabled.
     * Note that this rate can be more than 1.0 for a given message impression.
     * 
* * optional double message_chat_rate = 228; * @return Whether the messageChatRate field is set. */ @java.lang.Override public boolean hasMessageChatRate() { return ((bitField2_ & 0x00002000) != 0); } /** *
     * Number of message chats initiated (message_chats) divided by the number
     * of message impressions (message_impressions).
     * Rate at which a user initiates a message chat from an ad impression with
     * a messaging option and message tracking enabled.
     * Note that this rate can be more than 1.0 for a given message impression.
     * 
* * optional double message_chat_rate = 228; * @return The messageChatRate. */ @java.lang.Override public double getMessageChatRate() { return messageChatRate_; } /** *
     * Number of message chats initiated (message_chats) divided by the number
     * of message impressions (message_impressions).
     * Rate at which a user initiates a message chat from an ad impression with
     * a messaging option and message tracking enabled.
     * Note that this rate can be more than 1.0 for a given message impression.
     * 
* * optional double message_chat_rate = 228; * @param value The messageChatRate to set. * @return This builder for chaining. */ public Builder setMessageChatRate(double value) { bitField2_ |= 0x00002000; messageChatRate_ = value; onChanged(); return this; } /** *
     * Number of message chats initiated (message_chats) divided by the number
     * of message impressions (message_impressions).
     * Rate at which a user initiates a message chat from an ad impression with
     * a messaging option and message tracking enabled.
     * Note that this rate can be more than 1.0 for a given message impression.
     * 
* * optional double message_chat_rate = 228; * @return This builder for chaining. */ public Builder clearMessageChatRate() { bitField2_ = (bitField2_ & ~0x00002000); messageChatRate_ = 0D; onChanged(); return this; } private double mobileFriendlyClicksPercentage_ ; /** *
     * The percentage of mobile clicks that go to a mobile-friendly page.
     * 
* * optional double mobile_friendly_clicks_percentage = 229; * @return Whether the mobileFriendlyClicksPercentage field is set. */ @java.lang.Override public boolean hasMobileFriendlyClicksPercentage() { return ((bitField2_ & 0x00004000) != 0); } /** *
     * The percentage of mobile clicks that go to a mobile-friendly page.
     * 
* * optional double mobile_friendly_clicks_percentage = 229; * @return The mobileFriendlyClicksPercentage. */ @java.lang.Override public double getMobileFriendlyClicksPercentage() { return mobileFriendlyClicksPercentage_; } /** *
     * The percentage of mobile clicks that go to a mobile-friendly page.
     * 
* * optional double mobile_friendly_clicks_percentage = 229; * @param value The mobileFriendlyClicksPercentage to set. * @return This builder for chaining. */ public Builder setMobileFriendlyClicksPercentage(double value) { bitField2_ |= 0x00004000; mobileFriendlyClicksPercentage_ = value; onChanged(); return this; } /** *
     * The percentage of mobile clicks that go to a mobile-friendly page.
     * 
* * optional double mobile_friendly_clicks_percentage = 229; * @return This builder for chaining. */ public Builder clearMobileFriendlyClicksPercentage() { bitField2_ = (bitField2_ & ~0x00004000); mobileFriendlyClicksPercentage_ = 0D; onChanged(); return this; } private double optimizationScoreUplift_ ; /** *
     * Total optimization score uplift of all recommendations.
     * 
* * optional double optimization_score_uplift = 247; * @return Whether the optimizationScoreUplift field is set. */ @java.lang.Override public boolean hasOptimizationScoreUplift() { return ((bitField2_ & 0x00008000) != 0); } /** *
     * Total optimization score uplift of all recommendations.
     * 
* * optional double optimization_score_uplift = 247; * @return The optimizationScoreUplift. */ @java.lang.Override public double getOptimizationScoreUplift() { return optimizationScoreUplift_; } /** *
     * Total optimization score uplift of all recommendations.
     * 
* * optional double optimization_score_uplift = 247; * @param value The optimizationScoreUplift to set. * @return This builder for chaining. */ public Builder setOptimizationScoreUplift(double value) { bitField2_ |= 0x00008000; optimizationScoreUplift_ = value; onChanged(); return this; } /** *
     * Total optimization score uplift of all recommendations.
     * 
* * optional double optimization_score_uplift = 247; * @return This builder for chaining. */ public Builder clearOptimizationScoreUplift() { bitField2_ = (bitField2_ & ~0x00008000); optimizationScoreUplift_ = 0D; onChanged(); return this; } private java.lang.Object optimizationScoreUrl_ = ""; /** *
     * URL for the optimization score page in the Google Ads web interface.
     * This metric can be selected from `customer` or `campaign`, and can be
     * segmented by `segments.recommendation_type`. For example, `SELECT
     * metrics.optimization_score_url, segments.recommendation_type FROM
     * customer` will return a URL for each unique (customer, recommendation_type)
     * combination.
     * 
* * optional string optimization_score_url = 248; * @return Whether the optimizationScoreUrl field is set. */ public boolean hasOptimizationScoreUrl() { return ((bitField2_ & 0x00010000) != 0); } /** *
     * URL for the optimization score page in the Google Ads web interface.
     * This metric can be selected from `customer` or `campaign`, and can be
     * segmented by `segments.recommendation_type`. For example, `SELECT
     * metrics.optimization_score_url, segments.recommendation_type FROM
     * customer` will return a URL for each unique (customer, recommendation_type)
     * combination.
     * 
* * optional string optimization_score_url = 248; * @return The optimizationScoreUrl. */ public java.lang.String getOptimizationScoreUrl() { java.lang.Object ref = optimizationScoreUrl_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); optimizationScoreUrl_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * URL for the optimization score page in the Google Ads web interface.
     * This metric can be selected from `customer` or `campaign`, and can be
     * segmented by `segments.recommendation_type`. For example, `SELECT
     * metrics.optimization_score_url, segments.recommendation_type FROM
     * customer` will return a URL for each unique (customer, recommendation_type)
     * combination.
     * 
* * optional string optimization_score_url = 248; * @return The bytes for optimizationScoreUrl. */ public com.google.protobuf.ByteString getOptimizationScoreUrlBytes() { java.lang.Object ref = optimizationScoreUrl_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); optimizationScoreUrl_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * URL for the optimization score page in the Google Ads web interface.
     * This metric can be selected from `customer` or `campaign`, and can be
     * segmented by `segments.recommendation_type`. For example, `SELECT
     * metrics.optimization_score_url, segments.recommendation_type FROM
     * customer` will return a URL for each unique (customer, recommendation_type)
     * combination.
     * 
* * optional string optimization_score_url = 248; * @param value The optimizationScoreUrl to set. * @return This builder for chaining. */ public Builder setOptimizationScoreUrl( java.lang.String value) { if (value == null) { throw new NullPointerException(); } bitField2_ |= 0x00010000; optimizationScoreUrl_ = value; onChanged(); return this; } /** *
     * URL for the optimization score page in the Google Ads web interface.
     * This metric can be selected from `customer` or `campaign`, and can be
     * segmented by `segments.recommendation_type`. For example, `SELECT
     * metrics.optimization_score_url, segments.recommendation_type FROM
     * customer` will return a URL for each unique (customer, recommendation_type)
     * combination.
     * 
* * optional string optimization_score_url = 248; * @return This builder for chaining. */ public Builder clearOptimizationScoreUrl() { bitField2_ = (bitField2_ & ~0x00010000); optimizationScoreUrl_ = getDefaultInstance().getOptimizationScoreUrl(); onChanged(); return this; } /** *
     * URL for the optimization score page in the Google Ads web interface.
     * This metric can be selected from `customer` or `campaign`, and can be
     * segmented by `segments.recommendation_type`. For example, `SELECT
     * metrics.optimization_score_url, segments.recommendation_type FROM
     * customer` will return a URL for each unique (customer, recommendation_type)
     * combination.
     * 
* * optional string optimization_score_url = 248; * @param value The bytes for optimizationScoreUrl to set. * @return This builder for chaining. */ public Builder setOptimizationScoreUrlBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); bitField2_ |= 0x00010000; optimizationScoreUrl_ = value; onChanged(); return this; } private long organicClicks_ ; /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results for a particular query. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_clicks = 230; * @return Whether the organicClicks field is set. */ @java.lang.Override public boolean hasOrganicClicks() { return ((bitField2_ & 0x00020000) != 0); } /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results for a particular query. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_clicks = 230; * @return The organicClicks. */ @java.lang.Override public long getOrganicClicks() { return organicClicks_; } /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results for a particular query. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_clicks = 230; * @param value The organicClicks to set. * @return This builder for chaining. */ public Builder setOrganicClicks(long value) { bitField2_ |= 0x00020000; organicClicks_ = value; onChanged(); return this; } /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results for a particular query. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_clicks = 230; * @return This builder for chaining. */ public Builder clearOrganicClicks() { bitField2_ = (bitField2_ & ~0x00020000); organicClicks_ = 0L; onChanged(); return this; } private double organicClicksPerQuery_ ; /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results (organic_clicks) divided by the total number of searches that
     * returned pages from your site (organic_queries). See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_clicks_per_query = 231; * @return Whether the organicClicksPerQuery field is set. */ @java.lang.Override public boolean hasOrganicClicksPerQuery() { return ((bitField2_ & 0x00040000) != 0); } /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results (organic_clicks) divided by the total number of searches that
     * returned pages from your site (organic_queries). See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_clicks_per_query = 231; * @return The organicClicksPerQuery. */ @java.lang.Override public double getOrganicClicksPerQuery() { return organicClicksPerQuery_; } /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results (organic_clicks) divided by the total number of searches that
     * returned pages from your site (organic_queries). See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_clicks_per_query = 231; * @param value The organicClicksPerQuery to set. * @return This builder for chaining. */ public Builder setOrganicClicksPerQuery(double value) { bitField2_ |= 0x00040000; organicClicksPerQuery_ = value; onChanged(); return this; } /** *
     * The number of times someone clicked your site's listing in the unpaid
     * results (organic_clicks) divided by the total number of searches that
     * returned pages from your site (organic_queries). See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_clicks_per_query = 231; * @return This builder for chaining. */ public Builder clearOrganicClicksPerQuery() { bitField2_ = (bitField2_ & ~0x00040000); organicClicksPerQuery_ = 0D; onChanged(); return this; } private long organicImpressions_ ; /** *
     * The number of listings for your site in the unpaid search results. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional int64 organic_impressions = 232; * @return Whether the organicImpressions field is set. */ @java.lang.Override public boolean hasOrganicImpressions() { return ((bitField2_ & 0x00080000) != 0); } /** *
     * The number of listings for your site in the unpaid search results. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional int64 organic_impressions = 232; * @return The organicImpressions. */ @java.lang.Override public long getOrganicImpressions() { return organicImpressions_; } /** *
     * The number of listings for your site in the unpaid search results. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional int64 organic_impressions = 232; * @param value The organicImpressions to set. * @return This builder for chaining. */ public Builder setOrganicImpressions(long value) { bitField2_ |= 0x00080000; organicImpressions_ = value; onChanged(); return this; } /** *
     * The number of listings for your site in the unpaid search results. See the
     * help page at https://support.google.com/google-ads/answer/3097241 for
     * details.
     * 
* * optional int64 organic_impressions = 232; * @return This builder for chaining. */ public Builder clearOrganicImpressions() { bitField2_ = (bitField2_ & ~0x00080000); organicImpressions_ = 0L; onChanged(); return this; } private double organicImpressionsPerQuery_ ; /** *
     * The number of times a page from your site was listed in the unpaid search
     * results (organic_impressions) divided by the number of searches returning
     * your site's listing in the unpaid results (organic_queries). See the help
     * page at https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_impressions_per_query = 233; * @return Whether the organicImpressionsPerQuery field is set. */ @java.lang.Override public boolean hasOrganicImpressionsPerQuery() { return ((bitField2_ & 0x00100000) != 0); } /** *
     * The number of times a page from your site was listed in the unpaid search
     * results (organic_impressions) divided by the number of searches returning
     * your site's listing in the unpaid results (organic_queries). See the help
     * page at https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_impressions_per_query = 233; * @return The organicImpressionsPerQuery. */ @java.lang.Override public double getOrganicImpressionsPerQuery() { return organicImpressionsPerQuery_; } /** *
     * The number of times a page from your site was listed in the unpaid search
     * results (organic_impressions) divided by the number of searches returning
     * your site's listing in the unpaid results (organic_queries). See the help
     * page at https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_impressions_per_query = 233; * @param value The organicImpressionsPerQuery to set. * @return This builder for chaining. */ public Builder setOrganicImpressionsPerQuery(double value) { bitField2_ |= 0x00100000; organicImpressionsPerQuery_ = value; onChanged(); return this; } /** *
     * The number of times a page from your site was listed in the unpaid search
     * results (organic_impressions) divided by the number of searches returning
     * your site's listing in the unpaid results (organic_queries). See the help
     * page at https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional double organic_impressions_per_query = 233; * @return This builder for chaining. */ public Builder clearOrganicImpressionsPerQuery() { bitField2_ = (bitField2_ & ~0x00100000); organicImpressionsPerQuery_ = 0D; onChanged(); return this; } private long organicQueries_ ; /** *
     * The total number of searches that returned your site's listing in the
     * unpaid results. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_queries = 234; * @return Whether the organicQueries field is set. */ @java.lang.Override public boolean hasOrganicQueries() { return ((bitField2_ & 0x00200000) != 0); } /** *
     * The total number of searches that returned your site's listing in the
     * unpaid results. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_queries = 234; * @return The organicQueries. */ @java.lang.Override public long getOrganicQueries() { return organicQueries_; } /** *
     * The total number of searches that returned your site's listing in the
     * unpaid results. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_queries = 234; * @param value The organicQueries to set. * @return This builder for chaining. */ public Builder setOrganicQueries(long value) { bitField2_ |= 0x00200000; organicQueries_ = value; onChanged(); return this; } /** *
     * The total number of searches that returned your site's listing in the
     * unpaid results. See the help page at
     * https://support.google.com/google-ads/answer/3097241 for details.
     * 
* * optional int64 organic_queries = 234; * @return This builder for chaining. */ public Builder clearOrganicQueries() { bitField2_ = (bitField2_ & ~0x00200000); organicQueries_ = 0L; onChanged(); return this; } private double percentNewVisitors_ ; /** *
     * Percentage of first-time sessions (from people who had never visited your
     * site before). Imported from Google Analytics.
     * 
* * optional double percent_new_visitors = 235; * @return Whether the percentNewVisitors field is set. */ @java.lang.Override public boolean hasPercentNewVisitors() { return ((bitField2_ & 0x00400000) != 0); } /** *
     * Percentage of first-time sessions (from people who had never visited your
     * site before). Imported from Google Analytics.
     * 
* * optional double percent_new_visitors = 235; * @return The percentNewVisitors. */ @java.lang.Override public double getPercentNewVisitors() { return percentNewVisitors_; } /** *
     * Percentage of first-time sessions (from people who had never visited your
     * site before). Imported from Google Analytics.
     * 
* * optional double percent_new_visitors = 235; * @param value The percentNewVisitors to set. * @return This builder for chaining. */ public Builder setPercentNewVisitors(double value) { bitField2_ |= 0x00400000; percentNewVisitors_ = value; onChanged(); return this; } /** *
     * Percentage of first-time sessions (from people who had never visited your
     * site before). Imported from Google Analytics.
     * 
* * optional double percent_new_visitors = 235; * @return This builder for chaining. */ public Builder clearPercentNewVisitors() { bitField2_ = (bitField2_ & ~0x00400000); percentNewVisitors_ = 0D; onChanged(); return this; } private long phoneCalls_ ; /** *
     * Number of offline phone calls.
     * 
* * optional int64 phone_calls = 236; * @return Whether the phoneCalls field is set. */ @java.lang.Override public boolean hasPhoneCalls() { return ((bitField2_ & 0x00800000) != 0); } /** *
     * Number of offline phone calls.
     * 
* * optional int64 phone_calls = 236; * @return The phoneCalls. */ @java.lang.Override public long getPhoneCalls() { return phoneCalls_; } /** *
     * Number of offline phone calls.
     * 
* * optional int64 phone_calls = 236; * @param value The phoneCalls to set. * @return This builder for chaining. */ public Builder setPhoneCalls(long value) { bitField2_ |= 0x00800000; phoneCalls_ = value; onChanged(); return this; } /** *
     * Number of offline phone calls.
     * 
* * optional int64 phone_calls = 236; * @return This builder for chaining. */ public Builder clearPhoneCalls() { bitField2_ = (bitField2_ & ~0x00800000); phoneCalls_ = 0L; onChanged(); return this; } private long phoneImpressions_ ; /** *
     * Number of offline phone impressions.
     * 
* * optional int64 phone_impressions = 237; * @return Whether the phoneImpressions field is set. */ @java.lang.Override public boolean hasPhoneImpressions() { return ((bitField2_ & 0x01000000) != 0); } /** *
     * Number of offline phone impressions.
     * 
* * optional int64 phone_impressions = 237; * @return The phoneImpressions. */ @java.lang.Override public long getPhoneImpressions() { return phoneImpressions_; } /** *
     * Number of offline phone impressions.
     * 
* * optional int64 phone_impressions = 237; * @param value The phoneImpressions to set. * @return This builder for chaining. */ public Builder setPhoneImpressions(long value) { bitField2_ |= 0x01000000; phoneImpressions_ = value; onChanged(); return this; } /** *
     * Number of offline phone impressions.
     * 
* * optional int64 phone_impressions = 237; * @return This builder for chaining. */ public Builder clearPhoneImpressions() { bitField2_ = (bitField2_ & ~0x01000000); phoneImpressions_ = 0L; onChanged(); return this; } private double phoneThroughRate_ ; /** *
     * Number of phone calls received (phone_calls) divided by the number of
     * times your phone number is shown (phone_impressions).
     * 
* * optional double phone_through_rate = 238; * @return Whether the phoneThroughRate field is set. */ @java.lang.Override public boolean hasPhoneThroughRate() { return ((bitField2_ & 0x02000000) != 0); } /** *
     * Number of phone calls received (phone_calls) divided by the number of
     * times your phone number is shown (phone_impressions).
     * 
* * optional double phone_through_rate = 238; * @return The phoneThroughRate. */ @java.lang.Override public double getPhoneThroughRate() { return phoneThroughRate_; } /** *
     * Number of phone calls received (phone_calls) divided by the number of
     * times your phone number is shown (phone_impressions).
     * 
* * optional double phone_through_rate = 238; * @param value The phoneThroughRate to set. * @return This builder for chaining. */ public Builder setPhoneThroughRate(double value) { bitField2_ |= 0x02000000; phoneThroughRate_ = value; onChanged(); return this; } /** *
     * Number of phone calls received (phone_calls) divided by the number of
     * times your phone number is shown (phone_impressions).
     * 
* * optional double phone_through_rate = 238; * @return This builder for chaining. */ public Builder clearPhoneThroughRate() { bitField2_ = (bitField2_ & ~0x02000000); phoneThroughRate_ = 0D; onChanged(); return this; } private double relativeCtr_ ; /** *
     * Your clickthrough rate (Ctr) divided by the average clickthrough rate of
     * all advertisers on the websites that show your ads. Measures how your ads
     * perform on Display Network sites compared to other ads on the same sites.
     * 
* * optional double relative_ctr = 239; * @return Whether the relativeCtr field is set. */ @java.lang.Override public boolean hasRelativeCtr() { return ((bitField2_ & 0x04000000) != 0); } /** *
     * Your clickthrough rate (Ctr) divided by the average clickthrough rate of
     * all advertisers on the websites that show your ads. Measures how your ads
     * perform on Display Network sites compared to other ads on the same sites.
     * 
* * optional double relative_ctr = 239; * @return The relativeCtr. */ @java.lang.Override public double getRelativeCtr() { return relativeCtr_; } /** *
     * Your clickthrough rate (Ctr) divided by the average clickthrough rate of
     * all advertisers on the websites that show your ads. Measures how your ads
     * perform on Display Network sites compared to other ads on the same sites.
     * 
* * optional double relative_ctr = 239; * @param value The relativeCtr to set. * @return This builder for chaining. */ public Builder setRelativeCtr(double value) { bitField2_ |= 0x04000000; relativeCtr_ = value; onChanged(); return this; } /** *
     * Your clickthrough rate (Ctr) divided by the average clickthrough rate of
     * all advertisers on the websites that show your ads. Measures how your ads
     * perform on Display Network sites compared to other ads on the same sites.
     * 
* * optional double relative_ctr = 239; * @return This builder for chaining. */ public Builder clearRelativeCtr() { bitField2_ = (bitField2_ & ~0x04000000); relativeCtr_ = 0D; onChanged(); return this; } private double searchAbsoluteTopImpressionShare_ ; /** *
     * The percentage of the customer's Shopping or Search ad impressions that are
     * shown in the most prominent Shopping position. See
     * https://support.google.com/google-ads/answer/7501826
     * for details. Any value below 0.1 is reported as 0.0999.
     * 
* * optional double search_absolute_top_impression_share = 136; * @return Whether the searchAbsoluteTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchAbsoluteTopImpressionShare() { return ((bitField2_ & 0x08000000) != 0); } /** *
     * The percentage of the customer's Shopping or Search ad impressions that are
     * shown in the most prominent Shopping position. See
     * https://support.google.com/google-ads/answer/7501826
     * for details. Any value below 0.1 is reported as 0.0999.
     * 
* * optional double search_absolute_top_impression_share = 136; * @return The searchAbsoluteTopImpressionShare. */ @java.lang.Override public double getSearchAbsoluteTopImpressionShare() { return searchAbsoluteTopImpressionShare_; } /** *
     * The percentage of the customer's Shopping or Search ad impressions that are
     * shown in the most prominent Shopping position. See
     * https://support.google.com/google-ads/answer/7501826
     * for details. Any value below 0.1 is reported as 0.0999.
     * 
* * optional double search_absolute_top_impression_share = 136; * @param value The searchAbsoluteTopImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchAbsoluteTopImpressionShare(double value) { bitField2_ |= 0x08000000; searchAbsoluteTopImpressionShare_ = value; onChanged(); return this; } /** *
     * The percentage of the customer's Shopping or Search ad impressions that are
     * shown in the most prominent Shopping position. See
     * https://support.google.com/google-ads/answer/7501826
     * for details. Any value below 0.1 is reported as 0.0999.
     * 
* * optional double search_absolute_top_impression_share = 136; * @return This builder for chaining. */ public Builder clearSearchAbsoluteTopImpressionShare() { bitField2_ = (bitField2_ & ~0x08000000); searchAbsoluteTopImpressionShare_ = 0D; onChanged(); return this; } private double searchBudgetLostAbsoluteTopImpressionShare_ ; /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to a low budget. Note: Search
     * budget lost absolute top impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_absolute_top_impression_share = 137; * @return Whether the searchBudgetLostAbsoluteTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchBudgetLostAbsoluteTopImpressionShare() { return ((bitField2_ & 0x10000000) != 0); } /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to a low budget. Note: Search
     * budget lost absolute top impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_absolute_top_impression_share = 137; * @return The searchBudgetLostAbsoluteTopImpressionShare. */ @java.lang.Override public double getSearchBudgetLostAbsoluteTopImpressionShare() { return searchBudgetLostAbsoluteTopImpressionShare_; } /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to a low budget. Note: Search
     * budget lost absolute top impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_absolute_top_impression_share = 137; * @param value The searchBudgetLostAbsoluteTopImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchBudgetLostAbsoluteTopImpressionShare(double value) { bitField2_ |= 0x10000000; searchBudgetLostAbsoluteTopImpressionShare_ = value; onChanged(); return this; } /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to a low budget. Note: Search
     * budget lost absolute top impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_absolute_top_impression_share = 137; * @return This builder for chaining. */ public Builder clearSearchBudgetLostAbsoluteTopImpressionShare() { bitField2_ = (bitField2_ & ~0x10000000); searchBudgetLostAbsoluteTopImpressionShare_ = 0D; onChanged(); return this; } private double searchBudgetLostImpressionShare_ ; /** *
     * The estimated percent of times that your ad was eligible to show on the
     * Search Network but didn't because your budget was too low. Note: Search
     * budget lost impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_impression_share = 138; * @return Whether the searchBudgetLostImpressionShare field is set. */ @java.lang.Override public boolean hasSearchBudgetLostImpressionShare() { return ((bitField2_ & 0x20000000) != 0); } /** *
     * The estimated percent of times that your ad was eligible to show on the
     * Search Network but didn't because your budget was too low. Note: Search
     * budget lost impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_impression_share = 138; * @return The searchBudgetLostImpressionShare. */ @java.lang.Override public double getSearchBudgetLostImpressionShare() { return searchBudgetLostImpressionShare_; } /** *
     * The estimated percent of times that your ad was eligible to show on the
     * Search Network but didn't because your budget was too low. Note: Search
     * budget lost impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_impression_share = 138; * @param value The searchBudgetLostImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchBudgetLostImpressionShare(double value) { bitField2_ |= 0x20000000; searchBudgetLostImpressionShare_ = value; onChanged(); return this; } /** *
     * The estimated percent of times that your ad was eligible to show on the
     * Search Network but didn't because your budget was too low. Note: Search
     * budget lost impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_impression_share = 138; * @return This builder for chaining. */ public Builder clearSearchBudgetLostImpressionShare() { bitField2_ = (bitField2_ & ~0x20000000); searchBudgetLostImpressionShare_ = 0D; onChanged(); return this; } private double searchBudgetLostTopImpressionShare_ ; /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to a low budget. Note: Search
     * budget lost top impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_top_impression_share = 139; * @return Whether the searchBudgetLostTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchBudgetLostTopImpressionShare() { return ((bitField2_ & 0x40000000) != 0); } /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to a low budget. Note: Search
     * budget lost top impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_top_impression_share = 139; * @return The searchBudgetLostTopImpressionShare. */ @java.lang.Override public double getSearchBudgetLostTopImpressionShare() { return searchBudgetLostTopImpressionShare_; } /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to a low budget. Note: Search
     * budget lost top impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_top_impression_share = 139; * @param value The searchBudgetLostTopImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchBudgetLostTopImpressionShare(double value) { bitField2_ |= 0x40000000; searchBudgetLostTopImpressionShare_ = value; onChanged(); return this; } /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to a low budget. Note: Search
     * budget lost top impression share is reported in the range of 0 to 0.9. Any
     * value above 0.9 is reported as 0.9001.
     * 
* * optional double search_budget_lost_top_impression_share = 139; * @return This builder for chaining. */ public Builder clearSearchBudgetLostTopImpressionShare() { bitField2_ = (bitField2_ & ~0x40000000); searchBudgetLostTopImpressionShare_ = 0D; onChanged(); return this; } private double searchClickShare_ ; /** *
     * The number of clicks you've received on the Search Network
     * divided by the estimated number of clicks you were eligible to receive.
     * Note: Search click share is reported in the range of 0.1 to 1. Any value
     * below 0.1 is reported as 0.0999.
     * 
* * optional double search_click_share = 140; * @return Whether the searchClickShare field is set. */ @java.lang.Override public boolean hasSearchClickShare() { return ((bitField2_ & 0x80000000) != 0); } /** *
     * The number of clicks you've received on the Search Network
     * divided by the estimated number of clicks you were eligible to receive.
     * Note: Search click share is reported in the range of 0.1 to 1. Any value
     * below 0.1 is reported as 0.0999.
     * 
* * optional double search_click_share = 140; * @return The searchClickShare. */ @java.lang.Override public double getSearchClickShare() { return searchClickShare_; } /** *
     * The number of clicks you've received on the Search Network
     * divided by the estimated number of clicks you were eligible to receive.
     * Note: Search click share is reported in the range of 0.1 to 1. Any value
     * below 0.1 is reported as 0.0999.
     * 
* * optional double search_click_share = 140; * @param value The searchClickShare to set. * @return This builder for chaining. */ public Builder setSearchClickShare(double value) { bitField2_ |= 0x80000000; searchClickShare_ = value; onChanged(); return this; } /** *
     * The number of clicks you've received on the Search Network
     * divided by the estimated number of clicks you were eligible to receive.
     * Note: Search click share is reported in the range of 0.1 to 1. Any value
     * below 0.1 is reported as 0.0999.
     * 
* * optional double search_click_share = 140; * @return This builder for chaining. */ public Builder clearSearchClickShare() { bitField2_ = (bitField2_ & ~0x80000000); searchClickShare_ = 0D; onChanged(); return this; } private double searchExactMatchImpressionShare_ ; /** *
     * The impressions you've received divided by the estimated number of
     * impressions you were eligible to receive on the Search Network for search
     * terms that matched your keywords exactly (or were close variants of your
     * keyword), regardless of your keyword match types. Note: Search exact match
     * impression share is reported in the range of 0.1 to 1. Any value below 0.1
     * is reported as 0.0999.
     * 
* * optional double search_exact_match_impression_share = 141; * @return Whether the searchExactMatchImpressionShare field is set. */ @java.lang.Override public boolean hasSearchExactMatchImpressionShare() { return ((bitField3_ & 0x00000001) != 0); } /** *
     * The impressions you've received divided by the estimated number of
     * impressions you were eligible to receive on the Search Network for search
     * terms that matched your keywords exactly (or were close variants of your
     * keyword), regardless of your keyword match types. Note: Search exact match
     * impression share is reported in the range of 0.1 to 1. Any value below 0.1
     * is reported as 0.0999.
     * 
* * optional double search_exact_match_impression_share = 141; * @return The searchExactMatchImpressionShare. */ @java.lang.Override public double getSearchExactMatchImpressionShare() { return searchExactMatchImpressionShare_; } /** *
     * The impressions you've received divided by the estimated number of
     * impressions you were eligible to receive on the Search Network for search
     * terms that matched your keywords exactly (or were close variants of your
     * keyword), regardless of your keyword match types. Note: Search exact match
     * impression share is reported in the range of 0.1 to 1. Any value below 0.1
     * is reported as 0.0999.
     * 
* * optional double search_exact_match_impression_share = 141; * @param value The searchExactMatchImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchExactMatchImpressionShare(double value) { bitField3_ |= 0x00000001; searchExactMatchImpressionShare_ = value; onChanged(); return this; } /** *
     * The impressions you've received divided by the estimated number of
     * impressions you were eligible to receive on the Search Network for search
     * terms that matched your keywords exactly (or were close variants of your
     * keyword), regardless of your keyword match types. Note: Search exact match
     * impression share is reported in the range of 0.1 to 1. Any value below 0.1
     * is reported as 0.0999.
     * 
* * optional double search_exact_match_impression_share = 141; * @return This builder for chaining. */ public Builder clearSearchExactMatchImpressionShare() { bitField3_ = (bitField3_ & ~0x00000001); searchExactMatchImpressionShare_ = 0D; onChanged(); return this; } private double searchImpressionShare_ ; /** *
     * The impressions you've received on the Search Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Search impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_impression_share = 142; * @return Whether the searchImpressionShare field is set. */ @java.lang.Override public boolean hasSearchImpressionShare() { return ((bitField3_ & 0x00000002) != 0); } /** *
     * The impressions you've received on the Search Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Search impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_impression_share = 142; * @return The searchImpressionShare. */ @java.lang.Override public double getSearchImpressionShare() { return searchImpressionShare_; } /** *
     * The impressions you've received on the Search Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Search impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_impression_share = 142; * @param value The searchImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchImpressionShare(double value) { bitField3_ |= 0x00000002; searchImpressionShare_ = value; onChanged(); return this; } /** *
     * The impressions you've received on the Search Network divided
     * by the estimated number of impressions you were eligible to receive.
     * Note: Search impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_impression_share = 142; * @return This builder for chaining. */ public Builder clearSearchImpressionShare() { bitField3_ = (bitField3_ & ~0x00000002); searchImpressionShare_ = 0D; onChanged(); return this; } private double searchRankLostAbsoluteTopImpressionShare_ ; /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost absolute top impression share is reported in the
     * range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_absolute_top_impression_share = 143; * @return Whether the searchRankLostAbsoluteTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchRankLostAbsoluteTopImpressionShare() { return ((bitField3_ & 0x00000004) != 0); } /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost absolute top impression share is reported in the
     * range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_absolute_top_impression_share = 143; * @return The searchRankLostAbsoluteTopImpressionShare. */ @java.lang.Override public double getSearchRankLostAbsoluteTopImpressionShare() { return searchRankLostAbsoluteTopImpressionShare_; } /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost absolute top impression share is reported in the
     * range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_absolute_top_impression_share = 143; * @param value The searchRankLostAbsoluteTopImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchRankLostAbsoluteTopImpressionShare(double value) { bitField3_ |= 0x00000004; searchRankLostAbsoluteTopImpressionShare_ = value; onChanged(); return this; } /** *
     * The number estimating how often your ad wasn't the very first ad above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost absolute top impression share is reported in the
     * range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_absolute_top_impression_share = 143; * @return This builder for chaining. */ public Builder clearSearchRankLostAbsoluteTopImpressionShare() { bitField3_ = (bitField3_ & ~0x00000004); searchRankLostAbsoluteTopImpressionShare_ = 0D; onChanged(); return this; } private double searchRankLostImpressionShare_ ; /** *
     * The estimated percentage of impressions on the Search Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Search rank lost impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_impression_share = 144; * @return Whether the searchRankLostImpressionShare field is set. */ @java.lang.Override public boolean hasSearchRankLostImpressionShare() { return ((bitField3_ & 0x00000008) != 0); } /** *
     * The estimated percentage of impressions on the Search Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Search rank lost impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_impression_share = 144; * @return The searchRankLostImpressionShare. */ @java.lang.Override public double getSearchRankLostImpressionShare() { return searchRankLostImpressionShare_; } /** *
     * The estimated percentage of impressions on the Search Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Search rank lost impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_impression_share = 144; * @param value The searchRankLostImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchRankLostImpressionShare(double value) { bitField3_ |= 0x00000008; searchRankLostImpressionShare_ = value; onChanged(); return this; } /** *
     * The estimated percentage of impressions on the Search Network
     * that your ads didn't receive due to poor Ad Rank.
     * Note: Search rank lost impression share is reported in the range of 0 to
     * 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_impression_share = 144; * @return This builder for chaining. */ public Builder clearSearchRankLostImpressionShare() { bitField3_ = (bitField3_ & ~0x00000008); searchRankLostImpressionShare_ = 0D; onChanged(); return this; } private double searchRankLostTopImpressionShare_ ; /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost top impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_top_impression_share = 145; * @return Whether the searchRankLostTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchRankLostTopImpressionShare() { return ((bitField3_ & 0x00000010) != 0); } /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost top impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_top_impression_share = 145; * @return The searchRankLostTopImpressionShare. */ @java.lang.Override public double getSearchRankLostTopImpressionShare() { return searchRankLostTopImpressionShare_; } /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost top impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_top_impression_share = 145; * @param value The searchRankLostTopImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchRankLostTopImpressionShare(double value) { bitField3_ |= 0x00000010; searchRankLostTopImpressionShare_ = value; onChanged(); return this; } /** *
     * The number estimating how often your ad didn't show anywhere above the
     * organic search results due to poor Ad Rank.
     * Note: Search rank lost top impression share is reported in the range of 0
     * to 0.9. Any value above 0.9 is reported as 0.9001.
     * 
* * optional double search_rank_lost_top_impression_share = 145; * @return This builder for chaining. */ public Builder clearSearchRankLostTopImpressionShare() { bitField3_ = (bitField3_ & ~0x00000010); searchRankLostTopImpressionShare_ = 0D; onChanged(); return this; } private double searchTopImpressionShare_ ; /** *
     * The impressions you've received in the top location (anywhere above the
     * organic search results) compared to the estimated number of impressions you
     * were eligible to receive in the top location.
     * Note: Search top impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_top_impression_share = 146; * @return Whether the searchTopImpressionShare field is set. */ @java.lang.Override public boolean hasSearchTopImpressionShare() { return ((bitField3_ & 0x00000020) != 0); } /** *
     * The impressions you've received in the top location (anywhere above the
     * organic search results) compared to the estimated number of impressions you
     * were eligible to receive in the top location.
     * Note: Search top impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_top_impression_share = 146; * @return The searchTopImpressionShare. */ @java.lang.Override public double getSearchTopImpressionShare() { return searchTopImpressionShare_; } /** *
     * The impressions you've received in the top location (anywhere above the
     * organic search results) compared to the estimated number of impressions you
     * were eligible to receive in the top location.
     * Note: Search top impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_top_impression_share = 146; * @param value The searchTopImpressionShare to set. * @return This builder for chaining. */ public Builder setSearchTopImpressionShare(double value) { bitField3_ |= 0x00000020; searchTopImpressionShare_ = value; onChanged(); return this; } /** *
     * The impressions you've received in the top location (anywhere above the
     * organic search results) compared to the estimated number of impressions you
     * were eligible to receive in the top location.
     * Note: Search top impression share is reported in the range of 0.1 to 1. Any
     * value below 0.1 is reported as 0.0999.
     * 
* * optional double search_top_impression_share = 146; * @return This builder for chaining. */ public Builder clearSearchTopImpressionShare() { bitField3_ = (bitField3_ & ~0x00000020); searchTopImpressionShare_ = 0D; onChanged(); return this; } private long speedScore_ ; /** *
     * A measure of how quickly your page loads after clicks on your mobile ads.
     * The score is a range from 1 to 10, 10 being the fastest.
     * 
* * optional int64 speed_score = 147; * @return Whether the speedScore field is set. */ @java.lang.Override public boolean hasSpeedScore() { return ((bitField3_ & 0x00000040) != 0); } /** *
     * A measure of how quickly your page loads after clicks on your mobile ads.
     * The score is a range from 1 to 10, 10 being the fastest.
     * 
* * optional int64 speed_score = 147; * @return The speedScore. */ @java.lang.Override public long getSpeedScore() { return speedScore_; } /** *
     * A measure of how quickly your page loads after clicks on your mobile ads.
     * The score is a range from 1 to 10, 10 being the fastest.
     * 
* * optional int64 speed_score = 147; * @param value The speedScore to set. * @return This builder for chaining. */ public Builder setSpeedScore(long value) { bitField3_ |= 0x00000040; speedScore_ = value; onChanged(); return this; } /** *
     * A measure of how quickly your page loads after clicks on your mobile ads.
     * The score is a range from 1 to 10, 10 being the fastest.
     * 
* * optional int64 speed_score = 147; * @return This builder for chaining. */ public Builder clearSpeedScore() { bitField3_ = (bitField3_ & ~0x00000040); speedScore_ = 0L; onChanged(); return this; } private double topImpressionPercentage_ ; /** *
     * The percent of your ad impressions that are shown anywhere above the
     * organic search results.
     * 
* * optional double top_impression_percentage = 148; * @return Whether the topImpressionPercentage field is set. */ @java.lang.Override public boolean hasTopImpressionPercentage() { return ((bitField3_ & 0x00000080) != 0); } /** *
     * The percent of your ad impressions that are shown anywhere above the
     * organic search results.
     * 
* * optional double top_impression_percentage = 148; * @return The topImpressionPercentage. */ @java.lang.Override public double getTopImpressionPercentage() { return topImpressionPercentage_; } /** *
     * The percent of your ad impressions that are shown anywhere above the
     * organic search results.
     * 
* * optional double top_impression_percentage = 148; * @param value The topImpressionPercentage to set. * @return This builder for chaining. */ public Builder setTopImpressionPercentage(double value) { bitField3_ |= 0x00000080; topImpressionPercentage_ = value; onChanged(); return this; } /** *
     * The percent of your ad impressions that are shown anywhere above the
     * organic search results.
     * 
* * optional double top_impression_percentage = 148; * @return This builder for chaining. */ public Builder clearTopImpressionPercentage() { bitField3_ = (bitField3_ & ~0x00000080); topImpressionPercentage_ = 0D; onChanged(); return this; } private double validAcceleratedMobilePagesClicksPercentage_ ; /** *
     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
     * that reach a valid AMP page.
     * 
* * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; * @return Whether the validAcceleratedMobilePagesClicksPercentage field is set. */ @java.lang.Override public boolean hasValidAcceleratedMobilePagesClicksPercentage() { return ((bitField3_ & 0x00000100) != 0); } /** *
     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
     * that reach a valid AMP page.
     * 
* * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; * @return The validAcceleratedMobilePagesClicksPercentage. */ @java.lang.Override public double getValidAcceleratedMobilePagesClicksPercentage() { return validAcceleratedMobilePagesClicksPercentage_; } /** *
     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
     * that reach a valid AMP page.
     * 
* * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; * @param value The validAcceleratedMobilePagesClicksPercentage to set. * @return This builder for chaining. */ public Builder setValidAcceleratedMobilePagesClicksPercentage(double value) { bitField3_ |= 0x00000100; validAcceleratedMobilePagesClicksPercentage_ = value; onChanged(); return this; } /** *
     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
     * that reach a valid AMP page.
     * 
* * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; * @return This builder for chaining. */ public Builder clearValidAcceleratedMobilePagesClicksPercentage() { bitField3_ = (bitField3_ & ~0x00000100); validAcceleratedMobilePagesClicksPercentage_ = 0D; onChanged(); return this; } private double valuePerAllConversions_ ; /** *
     * The value of all conversions divided by the number of all conversions.
     * 
* * optional double value_per_all_conversions = 150; * @return Whether the valuePerAllConversions field is set. */ @java.lang.Override public boolean hasValuePerAllConversions() { return ((bitField3_ & 0x00000200) != 0); } /** *
     * The value of all conversions divided by the number of all conversions.
     * 
* * optional double value_per_all_conversions = 150; * @return The valuePerAllConversions. */ @java.lang.Override public double getValuePerAllConversions() { return valuePerAllConversions_; } /** *
     * The value of all conversions divided by the number of all conversions.
     * 
* * optional double value_per_all_conversions = 150; * @param value The valuePerAllConversions to set. * @return This builder for chaining. */ public Builder setValuePerAllConversions(double value) { bitField3_ |= 0x00000200; valuePerAllConversions_ = value; onChanged(); return this; } /** *
     * The value of all conversions divided by the number of all conversions.
     * 
* * optional double value_per_all_conversions = 150; * @return This builder for chaining. */ public Builder clearValuePerAllConversions() { bitField3_ = (bitField3_ & ~0x00000200); valuePerAllConversions_ = 0D; onChanged(); return this; } private double valuePerAllConversionsByConversionDate_ ; /** *
     * The value of all conversions divided by the number of all conversions. When
     * this column is selected with date, the values in date column means the
     * conversion date. Details for the by_conversion_date columns are available
     * at https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_all_conversions_by_conversion_date = 244; * @return Whether the valuePerAllConversionsByConversionDate field is set. */ @java.lang.Override public boolean hasValuePerAllConversionsByConversionDate() { return ((bitField3_ & 0x00000400) != 0); } /** *
     * The value of all conversions divided by the number of all conversions. When
     * this column is selected with date, the values in date column means the
     * conversion date. Details for the by_conversion_date columns are available
     * at https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_all_conversions_by_conversion_date = 244; * @return The valuePerAllConversionsByConversionDate. */ @java.lang.Override public double getValuePerAllConversionsByConversionDate() { return valuePerAllConversionsByConversionDate_; } /** *
     * The value of all conversions divided by the number of all conversions. When
     * this column is selected with date, the values in date column means the
     * conversion date. Details for the by_conversion_date columns are available
     * at https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_all_conversions_by_conversion_date = 244; * @param value The valuePerAllConversionsByConversionDate to set. * @return This builder for chaining. */ public Builder setValuePerAllConversionsByConversionDate(double value) { bitField3_ |= 0x00000400; valuePerAllConversionsByConversionDate_ = value; onChanged(); return this; } /** *
     * The value of all conversions divided by the number of all conversions. When
     * this column is selected with date, the values in date column means the
     * conversion date. Details for the by_conversion_date columns are available
     * at https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_all_conversions_by_conversion_date = 244; * @return This builder for chaining. */ public Builder clearValuePerAllConversionsByConversionDate() { bitField3_ = (bitField3_ & ~0x00000400); valuePerAllConversionsByConversionDate_ = 0D; onChanged(); return this; } private double valuePerConversion_ ; /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double value_per_conversion = 151; * @return Whether the valuePerConversion field is set. */ @java.lang.Override public boolean hasValuePerConversion() { return ((bitField3_ & 0x00000800) != 0); } /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double value_per_conversion = 151; * @return The valuePerConversion. */ @java.lang.Override public double getValuePerConversion() { return valuePerConversion_; } /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double value_per_conversion = 151; * @param value The valuePerConversion to set. * @return This builder for chaining. */ public Builder setValuePerConversion(double value) { bitField3_ |= 0x00000800; valuePerConversion_ = value; onChanged(); return this; } /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions.
     * 
* * optional double value_per_conversion = 151; * @return This builder for chaining. */ public Builder clearValuePerConversion() { bitField3_ = (bitField3_ & ~0x00000800); valuePerConversion_ = 0D; onChanged(); return this; } private double valuePerConversionsByConversionDate_ ; /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions. When this column is selected with
     * date, the values in date column means the conversion date. Details for the
     * by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_conversions_by_conversion_date = 245; * @return Whether the valuePerConversionsByConversionDate field is set. */ @java.lang.Override public boolean hasValuePerConversionsByConversionDate() { return ((bitField3_ & 0x00001000) != 0); } /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions. When this column is selected with
     * date, the values in date column means the conversion date. Details for the
     * by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_conversions_by_conversion_date = 245; * @return The valuePerConversionsByConversionDate. */ @java.lang.Override public double getValuePerConversionsByConversionDate() { return valuePerConversionsByConversionDate_; } /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions. When this column is selected with
     * date, the values in date column means the conversion date. Details for the
     * by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_conversions_by_conversion_date = 245; * @param value The valuePerConversionsByConversionDate to set. * @return This builder for chaining. */ public Builder setValuePerConversionsByConversionDate(double value) { bitField3_ |= 0x00001000; valuePerConversionsByConversionDate_ = value; onChanged(); return this; } /** *
     * The value of conversions divided by the number of conversions. This only
     * includes conversion actions which include_in_conversions_metric attribute
     * is set to true. If you use conversion-based bidding, your bid strategies
     * will optimize for these conversions. When this column is selected with
     * date, the values in date column means the conversion date. Details for the
     * by_conversion_date columns are available at
     * https://support.google.com/google-ads/answer/9549009.
     * 
* * optional double value_per_conversions_by_conversion_date = 245; * @return This builder for chaining. */ public Builder clearValuePerConversionsByConversionDate() { bitField3_ = (bitField3_ & ~0x00001000); valuePerConversionsByConversionDate_ = 0D; onChanged(); return this; } private double valuePerCurrentModelAttributedConversion_ ; /** *
     * The value of current model attributed conversions divided by the number of
     * the conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double value_per_current_model_attributed_conversion = 152; * @return Whether the valuePerCurrentModelAttributedConversion field is set. */ @java.lang.Override public boolean hasValuePerCurrentModelAttributedConversion() { return ((bitField3_ & 0x00002000) != 0); } /** *
     * The value of current model attributed conversions divided by the number of
     * the conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double value_per_current_model_attributed_conversion = 152; * @return The valuePerCurrentModelAttributedConversion. */ @java.lang.Override public double getValuePerCurrentModelAttributedConversion() { return valuePerCurrentModelAttributedConversion_; } /** *
     * The value of current model attributed conversions divided by the number of
     * the conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double value_per_current_model_attributed_conversion = 152; * @param value The valuePerCurrentModelAttributedConversion to set. * @return This builder for chaining. */ public Builder setValuePerCurrentModelAttributedConversion(double value) { bitField3_ |= 0x00002000; valuePerCurrentModelAttributedConversion_ = value; onChanged(); return this; } /** *
     * The value of current model attributed conversions divided by the number of
     * the conversions. This only includes conversion actions which
     * include_in_conversions_metric attribute is set to true. If you use
     * conversion-based bidding, your bid strategies will optimize for these
     * conversions.
     * 
* * optional double value_per_current_model_attributed_conversion = 152; * @return This builder for chaining. */ public Builder clearValuePerCurrentModelAttributedConversion() { bitField3_ = (bitField3_ & ~0x00002000); valuePerCurrentModelAttributedConversion_ = 0D; onChanged(); return this; } private double videoQuartileP100Rate_ ; /** *
     * Percentage of impressions where the viewer watched all of your video.
     * 
* * optional double video_quartile_p100_rate = 132; * @return Whether the videoQuartileP100Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP100Rate() { return ((bitField3_ & 0x00004000) != 0); } /** *
     * Percentage of impressions where the viewer watched all of your video.
     * 
* * optional double video_quartile_p100_rate = 132; * @return The videoQuartileP100Rate. */ @java.lang.Override public double getVideoQuartileP100Rate() { return videoQuartileP100Rate_; } /** *
     * Percentage of impressions where the viewer watched all of your video.
     * 
* * optional double video_quartile_p100_rate = 132; * @param value The videoQuartileP100Rate to set. * @return This builder for chaining. */ public Builder setVideoQuartileP100Rate(double value) { bitField3_ |= 0x00004000; videoQuartileP100Rate_ = value; onChanged(); return this; } /** *
     * Percentage of impressions where the viewer watched all of your video.
     * 
* * optional double video_quartile_p100_rate = 132; * @return This builder for chaining. */ public Builder clearVideoQuartileP100Rate() { bitField3_ = (bitField3_ & ~0x00004000); videoQuartileP100Rate_ = 0D; onChanged(); return this; } private double videoQuartileP25Rate_ ; /** *
     * Percentage of impressions where the viewer watched 25% of your video.
     * 
* * optional double video_quartile_p25_rate = 133; * @return Whether the videoQuartileP25Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP25Rate() { return ((bitField3_ & 0x00008000) != 0); } /** *
     * Percentage of impressions where the viewer watched 25% of your video.
     * 
* * optional double video_quartile_p25_rate = 133; * @return The videoQuartileP25Rate. */ @java.lang.Override public double getVideoQuartileP25Rate() { return videoQuartileP25Rate_; } /** *
     * Percentage of impressions where the viewer watched 25% of your video.
     * 
* * optional double video_quartile_p25_rate = 133; * @param value The videoQuartileP25Rate to set. * @return This builder for chaining. */ public Builder setVideoQuartileP25Rate(double value) { bitField3_ |= 0x00008000; videoQuartileP25Rate_ = value; onChanged(); return this; } /** *
     * Percentage of impressions where the viewer watched 25% of your video.
     * 
* * optional double video_quartile_p25_rate = 133; * @return This builder for chaining. */ public Builder clearVideoQuartileP25Rate() { bitField3_ = (bitField3_ & ~0x00008000); videoQuartileP25Rate_ = 0D; onChanged(); return this; } private double videoQuartileP50Rate_ ; /** *
     * Percentage of impressions where the viewer watched 50% of your video.
     * 
* * optional double video_quartile_p50_rate = 134; * @return Whether the videoQuartileP50Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP50Rate() { return ((bitField3_ & 0x00010000) != 0); } /** *
     * Percentage of impressions where the viewer watched 50% of your video.
     * 
* * optional double video_quartile_p50_rate = 134; * @return The videoQuartileP50Rate. */ @java.lang.Override public double getVideoQuartileP50Rate() { return videoQuartileP50Rate_; } /** *
     * Percentage of impressions where the viewer watched 50% of your video.
     * 
* * optional double video_quartile_p50_rate = 134; * @param value The videoQuartileP50Rate to set. * @return This builder for chaining. */ public Builder setVideoQuartileP50Rate(double value) { bitField3_ |= 0x00010000; videoQuartileP50Rate_ = value; onChanged(); return this; } /** *
     * Percentage of impressions where the viewer watched 50% of your video.
     * 
* * optional double video_quartile_p50_rate = 134; * @return This builder for chaining. */ public Builder clearVideoQuartileP50Rate() { bitField3_ = (bitField3_ & ~0x00010000); videoQuartileP50Rate_ = 0D; onChanged(); return this; } private double videoQuartileP75Rate_ ; /** *
     * Percentage of impressions where the viewer watched 75% of your video.
     * 
* * optional double video_quartile_p75_rate = 135; * @return Whether the videoQuartileP75Rate field is set. */ @java.lang.Override public boolean hasVideoQuartileP75Rate() { return ((bitField3_ & 0x00020000) != 0); } /** *
     * Percentage of impressions where the viewer watched 75% of your video.
     * 
* * optional double video_quartile_p75_rate = 135; * @return The videoQuartileP75Rate. */ @java.lang.Override public double getVideoQuartileP75Rate() { return videoQuartileP75Rate_; } /** *
     * Percentage of impressions where the viewer watched 75% of your video.
     * 
* * optional double video_quartile_p75_rate = 135; * @param value The videoQuartileP75Rate to set. * @return This builder for chaining. */ public Builder setVideoQuartileP75Rate(double value) { bitField3_ |= 0x00020000; videoQuartileP75Rate_ = value; onChanged(); return this; } /** *
     * Percentage of impressions where the viewer watched 75% of your video.
     * 
* * optional double video_quartile_p75_rate = 135; * @return This builder for chaining. */ public Builder clearVideoQuartileP75Rate() { bitField3_ = (bitField3_ & ~0x00020000); videoQuartileP75Rate_ = 0D; onChanged(); return this; } private double videoViewRate_ ; /** *
     * The number of views your TrueView video ad receives divided by its number
     * of impressions, including thumbnail impressions for TrueView in-display
     * ads.
     * 
* * optional double video_view_rate = 153; * @return Whether the videoViewRate field is set. */ @java.lang.Override public boolean hasVideoViewRate() { return ((bitField3_ & 0x00040000) != 0); } /** *
     * The number of views your TrueView video ad receives divided by its number
     * of impressions, including thumbnail impressions for TrueView in-display
     * ads.
     * 
* * optional double video_view_rate = 153; * @return The videoViewRate. */ @java.lang.Override public double getVideoViewRate() { return videoViewRate_; } /** *
     * The number of views your TrueView video ad receives divided by its number
     * of impressions, including thumbnail impressions for TrueView in-display
     * ads.
     * 
* * optional double video_view_rate = 153; * @param value The videoViewRate to set. * @return This builder for chaining. */ public Builder setVideoViewRate(double value) { bitField3_ |= 0x00040000; videoViewRate_ = value; onChanged(); return this; } /** *
     * The number of views your TrueView video ad receives divided by its number
     * of impressions, including thumbnail impressions for TrueView in-display
     * ads.
     * 
* * optional double video_view_rate = 153; * @return This builder for chaining. */ public Builder clearVideoViewRate() { bitField3_ = (bitField3_ & ~0x00040000); videoViewRate_ = 0D; onChanged(); return this; } private long videoViews_ ; /** *
     * The number of times your video ads were viewed.
     * 
* * optional int64 video_views = 154; * @return Whether the videoViews field is set. */ @java.lang.Override public boolean hasVideoViews() { return ((bitField3_ & 0x00080000) != 0); } /** *
     * The number of times your video ads were viewed.
     * 
* * optional int64 video_views = 154; * @return The videoViews. */ @java.lang.Override public long getVideoViews() { return videoViews_; } /** *
     * The number of times your video ads were viewed.
     * 
* * optional int64 video_views = 154; * @param value The videoViews to set. * @return This builder for chaining. */ public Builder setVideoViews(long value) { bitField3_ |= 0x00080000; videoViews_ = value; onChanged(); return this; } /** *
     * The number of times your video ads were viewed.
     * 
* * optional int64 video_views = 154; * @return This builder for chaining. */ public Builder clearVideoViews() { bitField3_ = (bitField3_ & ~0x00080000); videoViews_ = 0L; onChanged(); return this; } private long viewThroughConversions_ ; /** *
     * The total number of view-through conversions.
     * These happen when a customer sees an image or rich media ad, then later
     * completes a conversion on your site without interacting with (for example,
     * clicking on) another ad.
     * 
* * optional int64 view_through_conversions = 155; * @return Whether the viewThroughConversions field is set. */ @java.lang.Override public boolean hasViewThroughConversions() { return ((bitField3_ & 0x00100000) != 0); } /** *
     * The total number of view-through conversions.
     * These happen when a customer sees an image or rich media ad, then later
     * completes a conversion on your site without interacting with (for example,
     * clicking on) another ad.
     * 
* * optional int64 view_through_conversions = 155; * @return The viewThroughConversions. */ @java.lang.Override public long getViewThroughConversions() { return viewThroughConversions_; } /** *
     * The total number of view-through conversions.
     * These happen when a customer sees an image or rich media ad, then later
     * completes a conversion on your site without interacting with (for example,
     * clicking on) another ad.
     * 
* * optional int64 view_through_conversions = 155; * @param value The viewThroughConversions to set. * @return This builder for chaining. */ public Builder setViewThroughConversions(long value) { bitField3_ |= 0x00100000; viewThroughConversions_ = value; onChanged(); return this; } /** *
     * The total number of view-through conversions.
     * These happen when a customer sees an image or rich media ad, then later
     * completes a conversion on your site without interacting with (for example,
     * clicking on) another ad.
     * 
* * optional int64 view_through_conversions = 155; * @return This builder for chaining. */ public Builder clearViewThroughConversions() { bitField3_ = (bitField3_ & ~0x00100000); viewThroughConversions_ = 0L; onChanged(); return this; } private long skAdNetworkConversions_ ; /** *
     * The number of iOS Store Kit Ad Network conversions.
     * 
* * int64 sk_ad_network_conversions = 246; * @return The skAdNetworkConversions. */ @java.lang.Override public long getSkAdNetworkConversions() { return skAdNetworkConversions_; } /** *
     * The number of iOS Store Kit Ad Network conversions.
     * 
* * int64 sk_ad_network_conversions = 246; * @param value The skAdNetworkConversions to set. * @return This builder for chaining. */ public Builder setSkAdNetworkConversions(long value) { skAdNetworkConversions_ = value; onChanged(); return this; } /** *
     * The number of iOS Store Kit Ad Network conversions.
     * 
* * int64 sk_ad_network_conversions = 246; * @return This builder for chaining. */ public Builder clearSkAdNetworkConversions() { skAdNetworkConversions_ = 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.ads.googleads.v10.common.Metrics) } // @@protoc_insertion_point(class_scope:google.ads.googleads.v10.common.Metrics) private static final com.google.ads.googleads.v10.common.Metrics DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new com.google.ads.googleads.v10.common.Metrics(); } public static com.google.ads.googleads.v10.common.Metrics getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Metrics parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public com.google.ads.googleads.v10.common.Metrics getDefaultInstanceForType() { return DEFAULT_INSTANCE; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy