diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e8a988d9..57908d608 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +43.1.0 - 2026-034-22 +------------------- +- Add support for v24_1 of the Google Ads API. + 43.0.0 - 2026-034-22 ------------------- - Add support for v24 of the Google Ads API. diff --git a/README.md b/README.md index 86371dec2..a01c9a111 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,12 @@ This project hosts the Java client library for the Google Ads API. com.google.api-ads google-ads - 43.0.0 + 43.1.0 ## Gradle dependency - implementation 'com.google.api-ads:google-ads:43.0.0' + implementation 'com.google.api-ads:google-ads:43.1.0' ## Documentation diff --git a/buildSrc/src/main/groovy/com.google.api-ads.java-conventions.gradle b/buildSrc/src/main/groovy/com.google.api-ads.java-conventions.gradle index 29c86e009..f27b8df4c 100644 --- a/buildSrc/src/main/groovy/com.google.api-ads.java-conventions.gradle +++ b/buildSrc/src/main/groovy/com.google.api-ads.java-conventions.gradle @@ -206,7 +206,7 @@ dependencies { api 'io.grpc:grpc-protobuf' api 'com.google.auth:google-auth-library-oauth2-http' api 'com.google.auth:google-auth-library-credentials' - api platform('com.google.cloud:google-cloud-shared-dependencies:3.57.0') + api platform('com.google.cloud:google-cloud-shared-dependencies:3.62.0') implementation 'com.google.guava:guava' implementation 'com.google.auto.service:auto-service:1.0.1' implementation 'javax.annotation:javax.annotation-api' diff --git a/google-ads-bom/build.gradle b/google-ads-bom/build.gradle index a0dc13171..5f628c225 100644 --- a/google-ads-bom/build.gradle +++ b/google-ads-bom/build.gradle @@ -126,7 +126,7 @@ dependencies { // This makes this BOM inherit all dependency versions from the Google Cloud // BOM. This version is determined based on the current used version of // google-cloud-shared-dependencies. - api(platform("com.google.cloud:libraries-bom:26.76.0")) + api(platform("com.google.cloud:libraries-bom:26.81.0")) // Add constraints for all of this project's artifacts. constraints { diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/AdTypeInfosProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/AdTypeInfosProto.java index 6f25538b1..151d00339 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/AdTypeInfosProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/AdTypeInfosProto.java @@ -399,7 +399,7 @@ public static void registerAllExtensions( "nAdInfo\022?\n\theadlines\030\001 \003(\0132,.google.ads." + "googleads.v24.common.AdTextAsset\022B\n\014desc" + "riptions\030\002 \003(\0132,.google.ads.googleads.v2" + - "4.common.AdTextAsset\"\216\005\n\031DemandGenMultiA" + + "4.common.AdTextAsset\"\335\005\n\031DemandGenMultiA" + "ssetAdInfo\022G\n\020marketing_images\030\001 \003(\0132-.g" + "oogle.ads.googleads.v24.common.AdImageAs" + "set\022N\n\027square_marketing_images\030\002 \003(\0132-.g" + @@ -410,58 +410,60 @@ public static void registerAllExtensions( "\n \003(\0132-.google.ads.googleads.v24.common." + "AdImageAsset\022B\n\013logo_images\030\004 \003(\0132-.goog" + "le.ads.googleads.v24.common.AdImageAsset" + - "\022?\n\theadlines\030\005 \003(\0132,.google.ads.googlea" + - "ds.v24.common.AdTextAsset\022B\n\014description" + - "s\030\006 \003(\0132,.google.ads.googleads.v24.commo" + - "n.AdTextAsset\022\032\n\rbusiness_name\030\007 \001(\tH\000\210\001" + - "\001\022 \n\023call_to_action_text\030\010 \001(\tH\001\210\001\001B\020\n\016_" + - "business_nameB\026\n\024_call_to_action_text\"\203\003" + - "\n\027DemandGenCarouselAdInfo\022\032\n\rbusiness_na" + - "me\030\001 \001(\tB\003\340A\002\022F\n\nlogo_image\030\002 \001(\0132-.goog" + - "le.ads.googleads.v24.common.AdImageAsset" + - "B\003\340A\002\022C\n\010headline\030\003 \001(\0132,.google.ads.goo" + - "gleads.v24.common.AdTextAssetB\003\340A\002\022F\n\013de" + - "scription\030\004 \001(\0132,.google.ads.googleads.v" + - "24.common.AdTextAssetB\003\340A\002\022\033\n\023call_to_ac" + - "tion_text\030\005 \001(\t\022Z\n\016carousel_cards\030\006 \003(\0132" + - "=.google.ads.googleads.v24.common.AdDema" + - "ndGenCarouselCardAssetB\003\340A\002\"\205\005\n\036DemandGe" + - "nVideoResponsiveAdInfo\022?\n\theadlines\030\001 \003(" + - "\0132,.google.ads.googleads.v24.common.AdTe" + - "xtAsset\022D\n\016long_headlines\030\002 \003(\0132,.google" + - ".ads.googleads.v24.common.AdTextAsset\022B\n" + - "\014descriptions\030\003 \003(\0132,.google.ads.googlea" + - "ds.v24.common.AdTextAsset\022B\n\006videos\030\004 \003(" + - "\0132-.google.ads.googleads.v24.common.AdVi" + - "deoAssetB\003\340A\002\022G\n\013logo_images\030\005 \003(\0132-.goo" + - "gle.ads.googleads.v24.common.AdImageAsse" + - "tB\003\340A\002\022H\n\021companion_banners\030\n \003(\0132-.goog" + - "le.ads.googleads.v24.common.AdImageAsset" + - "\022\023\n\013breadcrumb1\030\006 \001(\t\022\023\n\013breadcrumb2\030\007 \001" + - "(\t\022H\n\rbusiness_name\030\010 \001(\0132,.google.ads.g" + - "oogleads.v24.common.AdTextAssetB\003\340A\002\022M\n\017" + - "call_to_actions\030\t \003(\01324.google.ads.googl" + - "eads.v24.common.AdCallToActionAsset\"\202\004\n\026" + - "DemandGenProductAdInfo\022H\n\010headline\030\001 \001(\013" + + "\022M\n\026classic_display_images\030\013 \003(\0132-.googl" + + "e.ads.googleads.v24.common.AdImageAsset\022" + + "?\n\theadlines\030\005 \003(\0132,.google.ads.googlead" + + "s.v24.common.AdTextAsset\022B\n\014descriptions" + + "\030\006 \003(\0132,.google.ads.googleads.v24.common" + + ".AdTextAsset\022\032\n\rbusiness_name\030\007 \001(\tH\000\210\001\001" + + "\022 \n\023call_to_action_text\030\010 \001(\tH\001\210\001\001B\020\n\016_b" + + "usiness_nameB\026\n\024_call_to_action_text\"\203\003\n" + + "\027DemandGenCarouselAdInfo\022\032\n\rbusiness_nam" + + "e\030\001 \001(\tB\003\340A\002\022F\n\nlogo_image\030\002 \001(\0132-.googl" + + "e.ads.googleads.v24.common.AdImageAssetB" + + "\003\340A\002\022C\n\010headline\030\003 \001(\0132,.google.ads.goog" + + "leads.v24.common.AdTextAssetB\003\340A\002\022F\n\013des" + + "cription\030\004 \001(\0132,.google.ads.googleads.v2" + + "4.common.AdTextAssetB\003\340A\002\022\033\n\023call_to_act" + + "ion_text\030\005 \001(\t\022Z\n\016carousel_cards\030\006 \003(\0132=" + + ".google.ads.googleads.v24.common.AdDeman" + + "dGenCarouselCardAssetB\003\340A\002\"\205\005\n\036DemandGen" + + "VideoResponsiveAdInfo\022?\n\theadlines\030\001 \003(\013" + "2,.google.ads.googleads.v24.common.AdTex" + - "tAssetB\003\340A\002H\000\210\001\001\022K\n\013description\030\002 \001(\0132,." + - "google.ads.googleads.v24.common.AdTextAs" + - "setB\003\340A\002H\001\210\001\001\022K\n\nlogo_image\030\003 \001(\0132-.goog" + + "tAsset\022D\n\016long_headlines\030\002 \003(\0132,.google." + + "ads.googleads.v24.common.AdTextAsset\022B\n\014" + + "descriptions\030\003 \003(\0132,.google.ads.googlead" + + "s.v24.common.AdTextAsset\022B\n\006videos\030\004 \003(\013" + + "2-.google.ads.googleads.v24.common.AdVid" + + "eoAssetB\003\340A\002\022G\n\013logo_images\030\005 \003(\0132-.goog" + "le.ads.googleads.v24.common.AdImageAsset" + - "B\003\340A\002H\002\210\001\001\022\023\n\013breadcrumb1\030\004 \001(\t\022\023\n\013bread" + - "crumb2\030\005 \001(\t\022H\n\rbusiness_name\030\006 \001(\0132,.go" + - "ogle.ads.googleads.v24.common.AdTextAsse" + - "tB\003\340A\002\022Q\n\016call_to_action\030\007 \001(\01324.google." + - "ads.googleads.v24.common.AdCallToActionA" + - "ssetH\003\210\001\001B\013\n\t_headlineB\016\n\014_descriptionB\r" + - "\n\013_logo_imageB\021\n\017_call_to_actionB\360\001\n#com" + - ".google.ads.googleads.v24.commonB\020AdType" + - "InfosProtoP\001ZEgoogle.golang.org/genproto" + - "/googleapis/ads/googleads/v24/common;com" + - "mon\242\002\003GAA\252\002\037Google.Ads.GoogleAds.V24.Com" + - "mon\312\002\037Google\\Ads\\GoogleAds\\V24\\Common\352\002#" + - "Google::Ads::GoogleAds::V24::Commonb\006pro" + - "to3" + "B\003\340A\002\022H\n\021companion_banners\030\n \003(\0132-.googl" + + "e.ads.googleads.v24.common.AdImageAsset\022" + + "\023\n\013breadcrumb1\030\006 \001(\t\022\023\n\013breadcrumb2\030\007 \001(" + + "\t\022H\n\rbusiness_name\030\010 \001(\0132,.google.ads.go" + + "ogleads.v24.common.AdTextAssetB\003\340A\002\022M\n\017c" + + "all_to_actions\030\t \003(\01324.google.ads.google" + + "ads.v24.common.AdCallToActionAsset\"\202\004\n\026D" + + "emandGenProductAdInfo\022H\n\010headline\030\001 \001(\0132" + + ",.google.ads.googleads.v24.common.AdText" + + "AssetB\003\340A\002H\000\210\001\001\022K\n\013description\030\002 \001(\0132,.g" + + "oogle.ads.googleads.v24.common.AdTextAss" + + "etB\003\340A\002H\001\210\001\001\022K\n\nlogo_image\030\003 \001(\0132-.googl" + + "e.ads.googleads.v24.common.AdImageAssetB" + + "\003\340A\002H\002\210\001\001\022\023\n\013breadcrumb1\030\004 \001(\t\022\023\n\013breadc" + + "rumb2\030\005 \001(\t\022H\n\rbusiness_name\030\006 \001(\0132,.goo" + + "gle.ads.googleads.v24.common.AdTextAsset" + + "B\003\340A\002\022Q\n\016call_to_action\030\007 \001(\01324.google.a" + + "ds.googleads.v24.common.AdCallToActionAs" + + "setH\003\210\001\001B\013\n\t_headlineB\016\n\014_descriptionB\r\n" + + "\013_logo_imageB\021\n\017_call_to_actionB\360\001\n#com." + + "google.ads.googleads.v24.commonB\020AdTypeI" + + "nfosProtoP\001ZEgoogle.golang.org/genproto/" + + "googleapis/ads/googleads/v24/common;comm" + + "on\242\002\003GAA\252\002\037Google.Ads.GoogleAds.V24.Comm" + + "on\312\002\037Google\\Ads\\GoogleAds\\V24\\Common\352\002#G" + + "oogle::Ads::GoogleAds::V24::Commonb\006prot" + + "o3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -647,7 +649,7 @@ public static void registerAllExtensions( internal_static_google_ads_googleads_v24_common_DemandGenMultiAssetAdInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_ads_googleads_v24_common_DemandGenMultiAssetAdInfo_descriptor, - new java.lang.String[] { "MarketingImages", "SquareMarketingImages", "PortraitMarketingImages", "TallPortraitMarketingImages", "LogoImages", "Headlines", "Descriptions", "BusinessName", "CallToActionText", }); + new java.lang.String[] { "MarketingImages", "SquareMarketingImages", "PortraitMarketingImages", "TallPortraitMarketingImages", "LogoImages", "ClassicDisplayImages", "Headlines", "Descriptions", "BusinessName", "CallToActionText", }); internal_static_google_ads_googleads_v24_common_DemandGenCarouselAdInfo_descriptor = getDescriptor().getMessageTypes().get(29); internal_static_google_ads_googleads_v24_common_DemandGenCarouselAdInfo_fieldAccessorTable = new diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/CriteriaProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/CriteriaProto.java index c19a08b59..2e4478e9e 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/CriteriaProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/CriteriaProto.java @@ -760,27 +760,29 @@ public static void registerAllExtensions( "p_id\";\n\021PlacementListInfo\022\027\n\nshared_set\030" + "\001 \001(\tH\000\210\001\001B\r\n\013_shared_set\"J\n VerticalAds" + "ItemGroupRuleListInfo\022\027\n\nshared_set\030\001 \001(" + - "\tH\000\210\001\001B\r\n\013_shared_set\"\263\001\n\034VerticalAdsIte" + + "\tH\000\210\001\001B\r\n\013_shared_set\"\205\002\n\034VerticalAdsIte" + "mGroupRuleInfo\022\023\n\titem_code\030\001 \001(\tH\000\022\036\n\024c" + "ountry_criterion_id\030\002 \001(\tH\000\022\035\n\023region_cr" + "iterion_id\030\003 \001(\tH\000\022\033\n\021city_criterion_id\030" + - "\004 \001(\tH\000\022\025\n\013hotel_class\030\006 \001(\003H\000B\013\n\tdimens" + - "ion\"<\n\022RetailFilterBundle\022\027\n\nshared_set\030" + - "\001 \001(\tH\000\210\001\001B\r\n\013_shared_set\"\240\001\n\014RetailFilt" + - "er\022M\n\nexpression\030\001 \001(\01327.google.ads.goog" + - "leads.v24.common.RetailFilterExpressionH" + - "\000\0229\n\003tag\030\002 \001(\0132*.google.ads.googleads.v2" + - "4.common.RetailTagH\000B\006\n\004node\"4\n\026RetailFi" + - "lterExpression\022\021\n\004name\030\001 \001(\tH\000\210\001\001B\007\n\005_na" + - "me\"[\n\tRetailTag\022\022\n\005value\030\001 \001(\tH\000\210\001\001\022\034\n\017e" + - "xpression_name\030\002 \001(\tH\001\210\001\001B\010\n\006_valueB\022\n\020_" + - "expression_nameB\355\001\n#com.google.ads.googl" + - "eads.v24.commonB\rCriteriaProtoP\001ZEgoogle" + - ".golang.org/genproto/googleapis/ads/goog" + - "leads/v24/common;common\242\002\003GAA\252\002\037Google.A" + - "ds.GoogleAds.V24.Common\312\002\037Google\\Ads\\Goo" + - "gleAds\\V24\\Common\352\002#Google::Ads::GoogleA" + - "ds::V24::Commonb\006proto3" + "\004 \001(\tH\000\022\025\n\013hotel_class\030\006 \001(\003H\000\022\025\n\013user_r" + + "ating\030\007 \001(\003H\000\022\017\n\005venue\030\010 \001(\tH\000\022(\n\036event_" + + "participant_display_name\030\t \001(\tH\000B\013\n\tdime" + + "nsion\"<\n\022RetailFilterBundle\022\027\n\nshared_se" + + "t\030\001 \001(\tH\000\210\001\001B\r\n\013_shared_set\"\240\001\n\014RetailFi" + + "lter\022M\n\nexpression\030\001 \001(\01327.google.ads.go" + + "ogleads.v24.common.RetailFilterExpressio" + + "nH\000\0229\n\003tag\030\002 \001(\0132*.google.ads.googleads." + + "v24.common.RetailTagH\000B\006\n\004node\"4\n\026Retail" + + "FilterExpression\022\021\n\004name\030\001 \001(\tH\000\210\001\001B\007\n\005_" + + "name\"[\n\tRetailTag\022\022\n\005value\030\001 \001(\tH\000\210\001\001\022\034\n" + + "\017expression_name\030\002 \001(\tH\001\210\001\001B\010\n\006_valueB\022\n" + + "\020_expression_nameB\355\001\n#com.google.ads.goo" + + "gleads.v24.commonB\rCriteriaProtoP\001ZEgoog" + + "le.golang.org/genproto/googleapis/ads/go" + + "ogleads/v24/common;common\242\002\003GAA\252\002\037Google" + + ".Ads.GoogleAds.V24.Common\312\002\037Google\\Ads\\G" + + "oogleAds\\V24\\Common\352\002#Google::Ads::Googl" + + "eAds::V24::Commonb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -1298,7 +1300,7 @@ public static void registerAllExtensions( internal_static_google_ads_googleads_v24_common_VerticalAdsItemGroupRuleInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_ads_googleads_v24_common_VerticalAdsItemGroupRuleInfo_descriptor, - new java.lang.String[] { "ItemCode", "CountryCriterionId", "RegionCriterionId", "CityCriterionId", "HotelClass", "Dimension", }); + new java.lang.String[] { "ItemCode", "CountryCriterionId", "RegionCriterionId", "CityCriterionId", "HotelClass", "UserRating", "Venue", "EventParticipantDisplayName", "Dimension", }); internal_static_google_ads_googleads_v24_common_RetailFilterBundle_descriptor = getDescriptor().getMessageTypes().get(81); internal_static_google_ads_googleads_v24_common_RetailFilterBundle_fieldAccessorTable = new diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfo.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfo.java index d2770d828..8825997d4 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfo.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfo.java @@ -37,6 +37,7 @@ private DemandGenMultiAssetAdInfo() { portraitMarketingImages_ = java.util.Collections.emptyList(); tallPortraitMarketingImages_ = java.util.Collections.emptyList(); logoImages_ = java.util.Collections.emptyList(); + classicDisplayImages_ = java.util.Collections.emptyList(); headlines_ = java.util.Collections.emptyList(); descriptions_ = java.util.Collections.emptyList(); businessName_ = ""; @@ -457,6 +458,77 @@ public com.google.ads.googleads.v24.common.AdImageAssetOrBuilder getLogoImagesOr return logoImages_.get(index); } + public static final int CLASSIC_DISPLAY_IMAGES_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private java.util.List classicDisplayImages_; + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + @java.lang.Override + public java.util.List getClassicDisplayImagesList() { + return classicDisplayImages_; + } + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + @java.lang.Override + public java.util.List + getClassicDisplayImagesOrBuilderList() { + return classicDisplayImages_; + } + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + @java.lang.Override + public int getClassicDisplayImagesCount() { + return classicDisplayImages_.size(); + } + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.AdImageAsset getClassicDisplayImages(int index) { + return classicDisplayImages_.get(index); + } + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.AdImageAssetOrBuilder getClassicDisplayImagesOrBuilder( + int index) { + return classicDisplayImages_.get(index); + } + public static final int HEADLINES_FIELD_NUMBER = 5; @SuppressWarnings("serial") private java.util.List headlines_; @@ -748,6 +820,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) for (int i = 0; i < tallPortraitMarketingImages_.size(); i++) { output.writeMessage(10, tallPortraitMarketingImages_.get(i)); } + for (int i = 0; i < classicDisplayImages_.size(); i++) { + output.writeMessage(11, classicDisplayImages_.get(i)); + } getUnknownFields().writeTo(output); } @@ -791,6 +866,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(10, tallPortraitMarketingImages_.get(i)); } + for (int i = 0; i < classicDisplayImages_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, classicDisplayImages_.get(i)); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -816,6 +895,8 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getTallPortraitMarketingImagesList())) return false; if (!getLogoImagesList() .equals(other.getLogoImagesList())) return false; + if (!getClassicDisplayImagesList() + .equals(other.getClassicDisplayImagesList())) return false; if (!getHeadlinesList() .equals(other.getHeadlinesList())) return false; if (!getDescriptionsList() @@ -861,6 +942,10 @@ public int hashCode() { hash = (37 * hash) + LOGO_IMAGES_FIELD_NUMBER; hash = (53 * hash) + getLogoImagesList().hashCode(); } + if (getClassicDisplayImagesCount() > 0) { + hash = (37 * hash) + CLASSIC_DISPLAY_IMAGES_FIELD_NUMBER; + hash = (53 * hash) + getClassicDisplayImagesList().hashCode(); + } if (getHeadlinesCount() > 0) { hash = (37 * hash) + HEADLINES_FIELD_NUMBER; hash = (53 * hash) + getHeadlinesList().hashCode(); @@ -1047,20 +1132,27 @@ public Builder clear() { logoImagesBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000010); + if (classicDisplayImagesBuilder_ == null) { + classicDisplayImages_ = java.util.Collections.emptyList(); + } else { + classicDisplayImages_ = null; + classicDisplayImagesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); if (headlinesBuilder_ == null) { headlines_ = java.util.Collections.emptyList(); } else { headlines_ = null; headlinesBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000040); if (descriptionsBuilder_ == null) { descriptions_ = java.util.Collections.emptyList(); } else { descriptions_ = null; descriptionsBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); businessName_ = ""; callToActionText_ = ""; return this; @@ -1141,19 +1233,28 @@ private void buildPartialRepeatedFields(com.google.ads.googleads.v24.common.Dema } else { result.logoImages_ = logoImagesBuilder_.build(); } - if (headlinesBuilder_ == null) { + if (classicDisplayImagesBuilder_ == null) { if (((bitField0_ & 0x00000020) != 0)) { - headlines_ = java.util.Collections.unmodifiableList(headlines_); + classicDisplayImages_ = java.util.Collections.unmodifiableList(classicDisplayImages_); bitField0_ = (bitField0_ & ~0x00000020); } + result.classicDisplayImages_ = classicDisplayImages_; + } else { + result.classicDisplayImages_ = classicDisplayImagesBuilder_.build(); + } + if (headlinesBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0)) { + headlines_ = java.util.Collections.unmodifiableList(headlines_); + bitField0_ = (bitField0_ & ~0x00000040); + } result.headlines_ = headlines_; } else { result.headlines_ = headlinesBuilder_.build(); } if (descriptionsBuilder_ == null) { - if (((bitField0_ & 0x00000040) != 0)) { + if (((bitField0_ & 0x00000080) != 0)) { descriptions_ = java.util.Collections.unmodifiableList(descriptions_); - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); } result.descriptions_ = descriptions_; } else { @@ -1164,11 +1265,11 @@ private void buildPartialRepeatedFields(com.google.ads.googleads.v24.common.Dema private void buildPartial0(com.google.ads.googleads.v24.common.DemandGenMultiAssetAdInfo result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000080) != 0)) { + if (((from_bitField0_ & 0x00000100) != 0)) { result.businessName_ = businessName_; to_bitField0_ |= 0x00000001; } - if (((from_bitField0_ & 0x00000100) != 0)) { + if (((from_bitField0_ & 0x00000200) != 0)) { result.callToActionText_ = callToActionText_; to_bitField0_ |= 0x00000002; } @@ -1317,11 +1418,37 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.DemandGenMultiAsset } } } + if (classicDisplayImagesBuilder_ == null) { + if (!other.classicDisplayImages_.isEmpty()) { + if (classicDisplayImages_.isEmpty()) { + classicDisplayImages_ = other.classicDisplayImages_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.addAll(other.classicDisplayImages_); + } + onChanged(); + } + } else { + if (!other.classicDisplayImages_.isEmpty()) { + if (classicDisplayImagesBuilder_.isEmpty()) { + classicDisplayImagesBuilder_.dispose(); + classicDisplayImagesBuilder_ = null; + classicDisplayImages_ = other.classicDisplayImages_; + bitField0_ = (bitField0_ & ~0x00000020); + classicDisplayImagesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + internalGetClassicDisplayImagesFieldBuilder() : null; + } else { + classicDisplayImagesBuilder_.addAllMessages(other.classicDisplayImages_); + } + } + } if (headlinesBuilder_ == null) { if (!other.headlines_.isEmpty()) { if (headlines_.isEmpty()) { headlines_ = other.headlines_; - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000040); } else { ensureHeadlinesIsMutable(); headlines_.addAll(other.headlines_); @@ -1334,7 +1461,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.DemandGenMultiAsset headlinesBuilder_.dispose(); headlinesBuilder_ = null; headlines_ = other.headlines_; - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000040); headlinesBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? internalGetHeadlinesFieldBuilder() : null; @@ -1347,7 +1474,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.DemandGenMultiAsset if (!other.descriptions_.isEmpty()) { if (descriptions_.isEmpty()) { descriptions_ = other.descriptions_; - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); } else { ensureDescriptionsIsMutable(); descriptions_.addAll(other.descriptions_); @@ -1360,7 +1487,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.DemandGenMultiAsset descriptionsBuilder_.dispose(); descriptionsBuilder_ = null; descriptions_ = other.descriptions_; - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); descriptionsBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? internalGetDescriptionsFieldBuilder() : null; @@ -1371,12 +1498,12 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.DemandGenMultiAsset } if (other.hasBusinessName()) { businessName_ = other.businessName_; - bitField0_ |= 0x00000080; + bitField0_ |= 0x00000100; onChanged(); } if (other.hasCallToActionText()) { callToActionText_ = other.callToActionText_; - bitField0_ |= 0x00000100; + bitField0_ |= 0x00000200; onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); @@ -1485,12 +1612,12 @@ public Builder mergeFrom( } // case 50 case 58: { businessName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000080; + bitField0_ |= 0x00000100; break; } // case 58 case 66: { callToActionText_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000100; + bitField0_ |= 0x00000200; break; } // case 66 case 82: { @@ -1506,6 +1633,19 @@ public Builder mergeFrom( } break; } // case 82 + case 90: { + com.google.ads.googleads.v24.common.AdImageAsset m = + input.readMessage( + com.google.ads.googleads.v24.common.AdImageAsset.parser(), + extensionRegistry); + if (classicDisplayImagesBuilder_ == null) { + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.add(m); + } else { + classicDisplayImagesBuilder_.addMessage(m); + } + break; + } // case 90 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -3425,12 +3565,360 @@ public com.google.ads.googleads.v24.common.AdImageAsset.Builder addLogoImagesBui return logoImagesBuilder_; } + private java.util.List classicDisplayImages_ = + java.util.Collections.emptyList(); + private void ensureClassicDisplayImagesIsMutable() { + if (!((bitField0_ & 0x00000020) != 0)) { + classicDisplayImages_ = new java.util.ArrayList(classicDisplayImages_); + bitField0_ |= 0x00000020; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.common.AdImageAsset, com.google.ads.googleads.v24.common.AdImageAsset.Builder, com.google.ads.googleads.v24.common.AdImageAssetOrBuilder> classicDisplayImagesBuilder_; + + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public java.util.List getClassicDisplayImagesList() { + if (classicDisplayImagesBuilder_ == null) { + return java.util.Collections.unmodifiableList(classicDisplayImages_); + } else { + return classicDisplayImagesBuilder_.getMessageList(); + } + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public int getClassicDisplayImagesCount() { + if (classicDisplayImagesBuilder_ == null) { + return classicDisplayImages_.size(); + } else { + return classicDisplayImagesBuilder_.getCount(); + } + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public com.google.ads.googleads.v24.common.AdImageAsset getClassicDisplayImages(int index) { + if (classicDisplayImagesBuilder_ == null) { + return classicDisplayImages_.get(index); + } else { + return classicDisplayImagesBuilder_.getMessage(index); + } + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder setClassicDisplayImages( + int index, com.google.ads.googleads.v24.common.AdImageAsset value) { + if (classicDisplayImagesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.set(index, value); + onChanged(); + } else { + classicDisplayImagesBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder setClassicDisplayImages( + int index, com.google.ads.googleads.v24.common.AdImageAsset.Builder builderForValue) { + if (classicDisplayImagesBuilder_ == null) { + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.set(index, builderForValue.build()); + onChanged(); + } else { + classicDisplayImagesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder addClassicDisplayImages(com.google.ads.googleads.v24.common.AdImageAsset value) { + if (classicDisplayImagesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.add(value); + onChanged(); + } else { + classicDisplayImagesBuilder_.addMessage(value); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder addClassicDisplayImages( + int index, com.google.ads.googleads.v24.common.AdImageAsset value) { + if (classicDisplayImagesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.add(index, value); + onChanged(); + } else { + classicDisplayImagesBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder addClassicDisplayImages( + com.google.ads.googleads.v24.common.AdImageAsset.Builder builderForValue) { + if (classicDisplayImagesBuilder_ == null) { + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.add(builderForValue.build()); + onChanged(); + } else { + classicDisplayImagesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder addClassicDisplayImages( + int index, com.google.ads.googleads.v24.common.AdImageAsset.Builder builderForValue) { + if (classicDisplayImagesBuilder_ == null) { + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.add(index, builderForValue.build()); + onChanged(); + } else { + classicDisplayImagesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder addAllClassicDisplayImages( + java.lang.Iterable values) { + if (classicDisplayImagesBuilder_ == null) { + ensureClassicDisplayImagesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, classicDisplayImages_); + onChanged(); + } else { + classicDisplayImagesBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder clearClassicDisplayImages() { + if (classicDisplayImagesBuilder_ == null) { + classicDisplayImages_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + } else { + classicDisplayImagesBuilder_.clear(); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public Builder removeClassicDisplayImages(int index) { + if (classicDisplayImagesBuilder_ == null) { + ensureClassicDisplayImagesIsMutable(); + classicDisplayImages_.remove(index); + onChanged(); + } else { + classicDisplayImagesBuilder_.remove(index); + } + return this; + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public com.google.ads.googleads.v24.common.AdImageAsset.Builder getClassicDisplayImagesBuilder( + int index) { + return internalGetClassicDisplayImagesFieldBuilder().getBuilder(index); + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public com.google.ads.googleads.v24.common.AdImageAssetOrBuilder getClassicDisplayImagesOrBuilder( + int index) { + if (classicDisplayImagesBuilder_ == null) { + return classicDisplayImages_.get(index); } else { + return classicDisplayImagesBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public java.util.List + getClassicDisplayImagesOrBuilderList() { + if (classicDisplayImagesBuilder_ != null) { + return classicDisplayImagesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(classicDisplayImages_); + } + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public com.google.ads.googleads.v24.common.AdImageAsset.Builder addClassicDisplayImagesBuilder() { + return internalGetClassicDisplayImagesFieldBuilder().addBuilder( + com.google.ads.googleads.v24.common.AdImageAsset.getDefaultInstance()); + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public com.google.ads.googleads.v24.common.AdImageAsset.Builder addClassicDisplayImagesBuilder( + int index) { + return internalGetClassicDisplayImagesFieldBuilder().addBuilder( + index, com.google.ads.googleads.v24.common.AdImageAsset.getDefaultInstance()); + } + /** + *
+     * Classic display image assets to be used in the ad. Valid image types are
+     * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + public java.util.List + getClassicDisplayImagesBuilderList() { + return internalGetClassicDisplayImagesFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.common.AdImageAsset, com.google.ads.googleads.v24.common.AdImageAsset.Builder, com.google.ads.googleads.v24.common.AdImageAssetOrBuilder> + internalGetClassicDisplayImagesFieldBuilder() { + if (classicDisplayImagesBuilder_ == null) { + classicDisplayImagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.common.AdImageAsset, com.google.ads.googleads.v24.common.AdImageAsset.Builder, com.google.ads.googleads.v24.common.AdImageAssetOrBuilder>( + classicDisplayImages_, + ((bitField0_ & 0x00000020) != 0), + getParentForChildren(), + isClean()); + classicDisplayImages_ = null; + } + return classicDisplayImagesBuilder_; + } + private java.util.List headlines_ = java.util.Collections.emptyList(); private void ensureHeadlinesIsMutable() { - if (!((bitField0_ & 0x00000020) != 0)) { + if (!((bitField0_ & 0x00000040) != 0)) { headlines_ = new java.util.ArrayList(headlines_); - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000040; } } @@ -3635,7 +4123,7 @@ public Builder addAllHeadlines( public Builder clearHeadlines() { if (headlinesBuilder_ == null) { headlines_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000040); onChanged(); } else { headlinesBuilder_.clear(); @@ -3747,7 +4235,7 @@ public com.google.ads.googleads.v24.common.AdTextAsset.Builder addHeadlinesBuild headlinesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< com.google.ads.googleads.v24.common.AdTextAsset, com.google.ads.googleads.v24.common.AdTextAsset.Builder, com.google.ads.googleads.v24.common.AdTextAssetOrBuilder>( headlines_, - ((bitField0_ & 0x00000020) != 0), + ((bitField0_ & 0x00000040) != 0), getParentForChildren(), isClean()); headlines_ = null; @@ -3758,9 +4246,9 @@ public com.google.ads.googleads.v24.common.AdTextAsset.Builder addHeadlinesBuild private java.util.List descriptions_ = java.util.Collections.emptyList(); private void ensureDescriptionsIsMutable() { - if (!((bitField0_ & 0x00000040) != 0)) { + if (!((bitField0_ & 0x00000080) != 0)) { descriptions_ = new java.util.ArrayList(descriptions_); - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; } } @@ -3965,7 +4453,7 @@ public Builder addAllDescriptions( public Builder clearDescriptions() { if (descriptionsBuilder_ == null) { descriptions_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); onChanged(); } else { descriptionsBuilder_.clear(); @@ -4077,7 +4565,7 @@ public com.google.ads.googleads.v24.common.AdTextAsset.Builder addDescriptionsBu descriptionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< com.google.ads.googleads.v24.common.AdTextAsset, com.google.ads.googleads.v24.common.AdTextAsset.Builder, com.google.ads.googleads.v24.common.AdTextAssetOrBuilder>( descriptions_, - ((bitField0_ & 0x00000040) != 0), + ((bitField0_ & 0x00000080) != 0), getParentForChildren(), isClean()); descriptions_ = null; @@ -4095,7 +4583,7 @@ public com.google.ads.googleads.v24.common.AdTextAsset.Builder addDescriptionsBu * @return Whether the businessName field is set. */ public boolean hasBusinessName() { - return ((bitField0_ & 0x00000080) != 0); + return ((bitField0_ & 0x00000100) != 0); } /** *
@@ -4151,7 +4639,7 @@ public Builder setBusinessName(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       businessName_ = value;
-      bitField0_ |= 0x00000080;
+      bitField0_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -4165,7 +4653,7 @@ public Builder setBusinessName(
      */
     public Builder clearBusinessName() {
       businessName_ = getDefaultInstance().getBusinessName();
-      bitField0_ = (bitField0_ & ~0x00000080);
+      bitField0_ = (bitField0_ & ~0x00000100);
       onChanged();
       return this;
     }
@@ -4183,7 +4671,7 @@ public Builder setBusinessNameBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       businessName_ = value;
-      bitField0_ |= 0x00000080;
+      bitField0_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -4198,7 +4686,7 @@ public Builder setBusinessNameBytes(
      * @return Whether the callToActionText field is set.
      */
     public boolean hasCallToActionText() {
-      return ((bitField0_ & 0x00000100) != 0);
+      return ((bitField0_ & 0x00000200) != 0);
     }
     /**
      * 
@@ -4254,7 +4742,7 @@ public Builder setCallToActionText(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       callToActionText_ = value;
-      bitField0_ |= 0x00000100;
+      bitField0_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -4268,7 +4756,7 @@ public Builder setCallToActionText(
      */
     public Builder clearCallToActionText() {
       callToActionText_ = getDefaultInstance().getCallToActionText();
-      bitField0_ = (bitField0_ & ~0x00000100);
+      bitField0_ = (bitField0_ & ~0x00000200);
       onChanged();
       return this;
     }
@@ -4286,7 +4774,7 @@ public Builder setCallToActionTextBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       callToActionText_ = value;
-      bitField0_ |= 0x00000100;
+      bitField0_ |= 0x00000200;
       onChanged();
       return this;
     }
diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfoOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfoOrBuilder.java
index 51dd59d04..c8d7ac49a 100644
--- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfoOrBuilder.java
+++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/DemandGenMultiAssetAdInfoOrBuilder.java
@@ -325,6 +325,60 @@ com.google.ads.googleads.v24.common.AdImageAssetOrBuilder getTallPortraitMarketi
   com.google.ads.googleads.v24.common.AdImageAssetOrBuilder getLogoImagesOrBuilder(
       int index);
 
+  /**
+   * 
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + java.util.List + getClassicDisplayImagesList(); + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + com.google.ads.googleads.v24.common.AdImageAsset getClassicDisplayImages(int index); + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + int getClassicDisplayImagesCount(); + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + java.util.List + getClassicDisplayImagesOrBuilderList(); + /** + *
+   * Classic display image assets to be used in the ad. Valid image types are
+   * GIF, JPEG, and PNG. At most 20 classic display images can be specified per
+   * ad.
+   * 
+ * + * repeated .google.ads.googleads.v24.common.AdImageAsset classic_display_images = 11; + */ + com.google.ads.googleads.v24.common.AdImageAssetOrBuilder getClassicDisplayImagesOrBuilder( + int index); + /** *
    * Headline text asset of the ad. Maximum display width is 30. At least 1 and
diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/ExperimentTypesProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/ExperimentTypesProto.java
new file mode 100644
index 000000000..6116eed44
--- /dev/null
+++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/ExperimentTypesProto.java
@@ -0,0 +1,93 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/ads/googleads/v24/common/experiment_types.proto
+// Protobuf Java Version: 4.31.0
+
+package com.google.ads.googleads.v24.common;
+
+@com.google.protobuf.Generated
+public final class ExperimentTypesProto {
+  private ExperimentTypesProto() {}
+  static {
+    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+      /* major= */ 4,
+      /* minor= */ 31,
+      /* patch= */ 0,
+      /* suffix= */ "",
+      ExperimentTypesProto.class.getName());
+  }
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
+      internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
+      internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n6google/ads/googleads/v24/common/experi" +
+      "ment_types.proto\022\037google.ads.googleads.v" +
+      "24.common\032Ggoogle/ads/googleads/v24/enum" +
+      "s/optimize_assets_experiment_subtype.pro" +
+      "to\032=google/ads/googleads/v24/enums/video" +
+      "_experiment_subtype.proto\"\212\001\n\023VideoExper" +
+      "imentInfo\022s\n\030video_experiment_subtype\030\001 " +
+      "\001(\0162Q.google.ads.googleads.v24.enums.Vid" +
+      "eoExperimentSubtypeEnum.VideoExperimentS" +
+      "ubtype\"\260\001\n\034OptimizeAssetsExperimentInfo\022" +
+      "\217\001\n\"optimize_assets_experiment_subtype\030\001" +
+      " \001(\0162c.google.ads.googleads.v24.enums.Op" +
+      "timizeAssetsExperimentSubtypeEnum.Optimi" +
+      "zeAssetsExperimentSubtypeB\364\001\n#com.google" +
+      ".ads.googleads.v24.commonB\024ExperimentTyp" +
+      "esProtoP\001ZEgoogle.golang.org/genproto/go" +
+      "ogleapis/ads/googleads/v24/common;common" +
+      "\242\002\003GAA\252\002\037Google.Ads.GoogleAds.V24.Common" +
+      "\312\002\037Google\\Ads\\GoogleAds\\V24\\Common\352\002#Goo" +
+      "gle::Ads::GoogleAds::V24::Commonb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeProto.getDescriptor(),
+          com.google.ads.googleads.v24.enums.VideoExperimentSubtypeProto.getDescriptor(),
+        });
+    internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+        internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_descriptor,
+        new java.lang.String[] { "VideoExperimentSubtype", });
+    internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+        internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_descriptor,
+        new java.lang.String[] { "OptimizeAssetsExperimentSubtype", });
+    descriptor.resolveAllFeaturesImmutable();
+    com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeProto.getDescriptor();
+    com.google.ads.googleads.v24.enums.VideoExperimentSubtypeProto.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Metrics.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Metrics.java
index 1a7391173..d55b829fc 100644
--- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Metrics.java
+++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Metrics.java
@@ -64,6 +64,7 @@ private Metrics() {
   private int bitField5_;
   private int bitField6_;
   private int bitField7_;
+  private int bitField8_;
   public static final int ABSOLUTE_TOP_IMPRESSION_PERCENTAGE_FIELD_NUMBER = 183;
   private double absoluteTopImpressionPercentage_ = 0D;
   /**
@@ -1397,6 +1398,35 @@ public long getClicks() {
     return clicks_;
   }
 
+  public static final int CONTROL_CLICKS_FIELD_NUMBER = 443;
+  private long controlClicks_ = 0L;
+  /**
+   * 
+   * The number of clicks on the control arm of an experiment.
+   * The treatment clicks value can be selected by using `clicks`.
+   * 
+ * + * optional int64 control_clicks = 443; + * @return Whether the controlClicks field is set. + */ + @java.lang.Override + public boolean hasControlClicks() { + return ((bitField1_ & 0x00000800) != 0); + } + /** + *
+   * The number of clicks on the control arm of an experiment.
+   * The treatment clicks value can be selected by using `clicks`.
+   * 
+ * + * optional int64 control_clicks = 443; + * @return The controlClicks. + */ + @java.lang.Override + public long getControlClicks() { + return controlClicks_; + } + public static final int COMBINED_CLICKS_FIELD_NUMBER = 156; private long combinedClicks_ = 0L; /** @@ -1411,7 +1441,7 @@ public long getClicks() { */ @java.lang.Override public boolean hasCombinedClicks() { - return ((bitField1_ & 0x00000800) != 0); + return ((bitField1_ & 0x00001000) != 0); } /** *
@@ -1443,7 +1473,7 @@ public long getCombinedClicks() {
    */
   @java.lang.Override
   public boolean hasCombinedClicksPerQuery() {
-    return ((bitField1_ & 0x00001000) != 0);
+    return ((bitField1_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -1475,7 +1505,7 @@ public double getCombinedClicksPerQuery() {
    */
   @java.lang.Override
   public boolean hasCombinedQueries() {
-    return ((bitField1_ & 0x00002000) != 0);
+    return ((bitField1_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -1507,7 +1537,7 @@ public long getCombinedQueries() {
    */
   @java.lang.Override
   public boolean hasContentBudgetLostImpressionShare() {
-    return ((bitField1_ & 0x00004000) != 0);
+    return ((bitField1_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -1540,7 +1570,7 @@ public double getContentBudgetLostImpressionShare() {
    */
   @java.lang.Override
   public boolean hasContentImpressionShare() {
-    return ((bitField1_ & 0x00008000) != 0);
+    return ((bitField1_ & 0x00010000) != 0);
   }
   /**
    * 
@@ -1575,7 +1605,7 @@ public double getContentImpressionShare() {
    */
   @java.lang.Override
   public boolean hasConversionLastReceivedRequestDateTime() {
-    return ((bitField1_ & 0x00010000) != 0);
+    return ((bitField1_ & 0x00020000) != 0);
   }
   /**
    * 
@@ -1643,7 +1673,7 @@ public java.lang.String getConversionLastReceivedRequestDateTime() {
    */
   @java.lang.Override
   public boolean hasConversionLastConversionDate() {
-    return ((bitField1_ & 0x00020000) != 0);
+    return ((bitField1_ & 0x00040000) != 0);
   }
   /**
    * 
@@ -1706,7 +1736,7 @@ public java.lang.String getConversionLastConversionDate() {
    */
   @java.lang.Override
   public boolean hasContentRankLostImpressionShare() {
-    return ((bitField1_ & 0x00040000) != 0);
+    return ((bitField1_ & 0x00080000) != 0);
   }
   /**
    * 
@@ -1740,7 +1770,7 @@ public double getContentRankLostImpressionShare() {
    */
   @java.lang.Override
   public boolean hasConversionsFromInteractionsRate() {
-    return ((bitField1_ & 0x00080000) != 0);
+    return ((bitField1_ & 0x00100000) != 0);
   }
   /**
    * 
@@ -1774,7 +1804,7 @@ public double getConversionsFromInteractionsRate() {
    */
   @java.lang.Override
   public boolean hasConversionsValue() {
-    return ((bitField1_ & 0x00100000) != 0);
+    return ((bitField1_ & 0x00200000) != 0);
   }
   /**
    * 
@@ -1810,7 +1840,7 @@ public double getConversionsValue() {
    */
   @java.lang.Override
   public boolean hasConversionsValueByConversionDate() {
-    return ((bitField1_ & 0x00200000) != 0);
+    return ((bitField1_ & 0x00400000) != 0);
   }
   /**
    * 
@@ -1849,7 +1879,7 @@ public double getConversionsValueByConversionDate() {
    */
   @java.lang.Override
   public boolean hasNewCustomerLifetimeValue() {
-    return ((bitField1_ & 0x00400000) != 0);
+    return ((bitField1_ & 0x00800000) != 0);
   }
   /**
    * 
@@ -1885,7 +1915,7 @@ public double getNewCustomerLifetimeValue() {
    */
   @java.lang.Override
   public boolean hasConversionsValuePerCost() {
-    return ((bitField1_ & 0x00800000) != 0);
+    return ((bitField1_ & 0x01000000) != 0);
   }
   /**
    * 
@@ -1919,7 +1949,7 @@ public double getConversionsValuePerCost() {
    */
   @java.lang.Override
   public boolean hasConversionsFromInteractionsValuePerInteraction() {
-    return ((bitField1_ & 0x01000000) != 0);
+    return ((bitField1_ & 0x02000000) != 0);
   }
   /**
    * 
@@ -1953,7 +1983,7 @@ public double getConversionsFromInteractionsValuePerInteraction() {
    */
   @java.lang.Override
   public boolean hasConversions() {
-    return ((bitField1_ & 0x02000000) != 0);
+    return ((bitField1_ & 0x04000000) != 0);
   }
   /**
    * 
@@ -1989,7 +2019,7 @@ public double getConversions() {
    */
   @java.lang.Override
   public boolean hasConversionsByConversionDate() {
-    return ((bitField1_ & 0x04000000) != 0);
+    return ((bitField1_ & 0x08000000) != 0);
   }
   /**
    * 
@@ -2023,7 +2053,7 @@ public double getConversionsByConversionDate() {
    */
   @java.lang.Override
   public boolean hasCostMicros() {
-    return ((bitField1_ & 0x08000000) != 0);
+    return ((bitField1_ & 0x10000000) != 0);
   }
   /**
    * 
@@ -2051,7 +2081,7 @@ public long getCostMicros() {
    */
   @java.lang.Override
   public boolean hasCostPerAllConversions() {
-    return ((bitField1_ & 0x10000000) != 0);
+    return ((bitField1_ & 0x20000000) != 0);
   }
   /**
    * 
@@ -2081,7 +2111,7 @@ public double getCostPerAllConversions() {
    */
   @java.lang.Override
   public boolean hasCostPerConversion() {
-    return ((bitField1_ & 0x20000000) != 0);
+    return ((bitField1_ & 0x40000000) != 0);
   }
   /**
    * 
@@ -2115,7 +2145,7 @@ public double getCostPerConversion() {
    */
   @java.lang.Override
   public boolean hasCostPerCurrentModelAttributedConversion() {
-    return ((bitField1_ & 0x40000000) != 0);
+    return ((bitField1_ & 0x80000000) != 0);
   }
   /**
    * 
@@ -2148,7 +2178,7 @@ public double getCostPerCurrentModelAttributedConversion() {
    */
   @java.lang.Override
   public boolean hasCrossDeviceConversions() {
-    return ((bitField1_ & 0x80000000) != 0);
+    return ((bitField2_ & 0x00000001) != 0);
   }
   /**
    * 
@@ -2179,7 +2209,7 @@ public double getCrossDeviceConversions() {
    */
   @java.lang.Override
   public boolean hasCrossDeviceConversionsByConversionDate() {
-    return ((bitField2_ & 0x00000001) != 0);
+    return ((bitField2_ & 0x00000002) != 0);
   }
   /**
    * 
@@ -2208,7 +2238,7 @@ public double getCrossDeviceConversionsByConversionDate() {
    */
   @java.lang.Override
   public boolean hasCrossDeviceConversionsValue() {
-    return ((bitField2_ & 0x00000002) != 0);
+    return ((bitField2_ & 0x00000004) != 0);
   }
   /**
    * 
@@ -2235,7 +2265,7 @@ public double getCrossDeviceConversionsValue() {
    */
   @java.lang.Override
   public boolean hasCrossDeviceConversionsValueMicros() {
-    return ((bitField2_ & 0x00000004) != 0);
+    return ((bitField2_ & 0x00000008) != 0);
   }
   /**
    * 
@@ -2264,7 +2294,7 @@ public long getCrossDeviceConversionsValueMicros() {
    */
   @java.lang.Override
   public boolean hasCrossDeviceConversionsValueByConversionDate() {
-    return ((bitField2_ & 0x00000008) != 0);
+    return ((bitField2_ & 0x00000010) != 0);
   }
   /**
    * 
@@ -2294,7 +2324,7 @@ public double getCrossDeviceConversionsValueByConversionDate() {
    */
   @java.lang.Override
   public boolean hasCtr() {
-    return ((bitField2_ & 0x00000010) != 0);
+    return ((bitField2_ & 0x00000020) != 0);
   }
   /**
    * 
@@ -2326,7 +2356,7 @@ public double getCtr() {
    */
   @java.lang.Override
   public boolean hasCurrentModelAttributedConversions() {
-    return ((bitField2_ & 0x00000020) != 0);
+    return ((bitField2_ & 0x00000040) != 0);
   }
   /**
    * 
@@ -2362,7 +2392,7 @@ public double getCurrentModelAttributedConversions() {
    */
   @java.lang.Override
   public boolean hasCurrentModelAttributedConversionsFromInteractionsRate() {
-    return ((bitField2_ & 0x00000040) != 0);
+    return ((bitField2_ & 0x00000080) != 0);
   }
   /**
    * 
@@ -2398,7 +2428,7 @@ public double getCurrentModelAttributedConversionsFromInteractionsRate() {
    */
   @java.lang.Override
   public boolean hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() {
-    return ((bitField2_ & 0x00000080) != 0);
+    return ((bitField2_ & 0x00000100) != 0);
   }
   /**
    * 
@@ -2432,7 +2462,7 @@ public double getCurrentModelAttributedConversionsFromInteractionsValuePerIntera
    */
   @java.lang.Override
   public boolean hasCurrentModelAttributedConversionsValue() {
-    return ((bitField2_ & 0x00000100) != 0);
+    return ((bitField2_ & 0x00000200) != 0);
   }
   /**
    * 
@@ -2466,7 +2496,7 @@ public double getCurrentModelAttributedConversionsValue() {
    */
   @java.lang.Override
   public boolean hasCurrentModelAttributedConversionsValuePerCost() {
-    return ((bitField2_ & 0x00000200) != 0);
+    return ((bitField2_ & 0x00000400) != 0);
   }
   /**
    * 
@@ -2498,7 +2528,7 @@ public double getCurrentModelAttributedConversionsValuePerCost() {
    */
   @java.lang.Override
   public boolean hasEngagementRate() {
-    return ((bitField2_ & 0x00000400) != 0);
+    return ((bitField2_ & 0x00000800) != 0);
   }
   /**
    * 
@@ -2528,7 +2558,7 @@ public double getEngagementRate() {
    */
   @java.lang.Override
   public boolean hasEngagements() {
-    return ((bitField2_ & 0x00000800) != 0);
+    return ((bitField2_ & 0x00001000) != 0);
   }
   /**
    * 
@@ -2557,7 +2587,7 @@ public long getEngagements() {
    */
   @java.lang.Override
   public boolean hasHotelAverageLeadValueMicros() {
-    return ((bitField2_ & 0x00001000) != 0);
+    return ((bitField2_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -2585,7 +2615,7 @@ public double getHotelAverageLeadValueMicros() {
    */
   @java.lang.Override
   public boolean hasHotelCommissionRateMicros() {
-    return ((bitField2_ & 0x00002000) != 0);
+    return ((bitField2_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -2614,7 +2644,7 @@ public long getHotelCommissionRateMicros() {
    */
   @java.lang.Override
   public boolean hasHotelExpectedCommissionCost() {
-    return ((bitField2_ & 0x00004000) != 0);
+    return ((bitField2_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -2643,7 +2673,7 @@ public double getHotelExpectedCommissionCost() {
    */
   @java.lang.Override
   public boolean hasHotelPriceDifferencePercentage() {
-    return ((bitField2_ & 0x00008000) != 0);
+    return ((bitField2_ & 0x00010000) != 0);
   }
   /**
    * 
@@ -2672,7 +2702,7 @@ public double getHotelPriceDifferencePercentage() {
    */
   @java.lang.Override
   public boolean hasHotelEligibleImpressions() {
-    return ((bitField2_ & 0x00010000) != 0);
+    return ((bitField2_ & 0x00020000) != 0);
   }
   /**
    * 
@@ -2752,7 +2782,7 @@ public long getHotelEligibleImpressions() {
    */
   @java.lang.Override
   public boolean hasHistoricalQualityScore() {
-    return ((bitField2_ & 0x00020000) != 0);
+    return ((bitField2_ & 0x00040000) != 0);
   }
   /**
    * 
@@ -2805,7 +2835,7 @@ public long getHistoricalQualityScore() {
    */
   @java.lang.Override
   public boolean hasGmailForwards() {
-    return ((bitField2_ & 0x00040000) != 0);
+    return ((bitField2_ & 0x00080000) != 0);
   }
   /**
    * 
@@ -2833,7 +2863,7 @@ public long getGmailForwards() {
    */
   @java.lang.Override
   public boolean hasGmailSaves() {
-    return ((bitField2_ & 0x00080000) != 0);
+    return ((bitField2_ & 0x00100000) != 0);
   }
   /**
    * 
@@ -2862,7 +2892,7 @@ public long getGmailSaves() {
    */
   @java.lang.Override
   public boolean hasGmailSecondaryClicks() {
-    return ((bitField2_ & 0x00100000) != 0);
+    return ((bitField2_ & 0x00200000) != 0);
   }
   /**
    * 
@@ -2892,7 +2922,7 @@ public long getGmailSecondaryClicks() {
    */
   @java.lang.Override
   public boolean hasImpressionsFromStoreReach() {
-    return ((bitField2_ & 0x00200000) != 0);
+    return ((bitField2_ & 0x00400000) != 0);
   }
   /**
    * 
@@ -2922,7 +2952,7 @@ public long getImpressionsFromStoreReach() {
    */
   @java.lang.Override
   public boolean hasImpressions() {
-    return ((bitField2_ & 0x00400000) != 0);
+    return ((bitField2_ & 0x00800000) != 0);
   }
   /**
    * 
@@ -2952,7 +2982,7 @@ public long getImpressions() {
    */
   @java.lang.Override
   public boolean hasInteractionRate() {
-    return ((bitField2_ & 0x00800000) != 0);
+    return ((bitField2_ & 0x01000000) != 0);
   }
   /**
    * 
@@ -2983,7 +3013,7 @@ public double getInteractionRate() {
    */
   @java.lang.Override
   public boolean hasInteractions() {
-    return ((bitField2_ & 0x01000000) != 0);
+    return ((bitField2_ & 0x02000000) != 0);
   }
   /**
    * 
@@ -3092,7 +3122,7 @@ public int getInteractionEventTypesValue(int index) {
    */
   @java.lang.Override
   public boolean hasInvalidClickRate() {
-    return ((bitField2_ & 0x02000000) != 0);
+    return ((bitField2_ & 0x04000000) != 0);
   }
   /**
    * 
@@ -3120,7 +3150,7 @@ public double getInvalidClickRate() {
    */
   @java.lang.Override
   public boolean hasInvalidClicks() {
-    return ((bitField2_ & 0x04000000) != 0);
+    return ((bitField2_ & 0x08000000) != 0);
   }
   /**
    * 
@@ -3155,7 +3185,7 @@ public long getInvalidClicks() {
    */
   @java.lang.Override
   public boolean hasGeneralInvalidClickRate() {
-    return ((bitField2_ & 0x08000000) != 0);
+    return ((bitField2_ & 0x10000000) != 0);
   }
   /**
    * 
@@ -3196,7 +3226,7 @@ public double getGeneralInvalidClickRate() {
    */
   @java.lang.Override
   public boolean hasGeneralInvalidClicks() {
-    return ((bitField2_ & 0x10000000) != 0);
+    return ((bitField2_ & 0x20000000) != 0);
   }
   /**
    * 
@@ -3230,7 +3260,7 @@ public long getGeneralInvalidClicks() {
    */
   @java.lang.Override
   public boolean hasMessageChats() {
-    return ((bitField2_ & 0x20000000) != 0);
+    return ((bitField2_ & 0x40000000) != 0);
   }
   /**
    * 
@@ -3258,7 +3288,7 @@ public long getMessageChats() {
    */
   @java.lang.Override
   public boolean hasMessageImpressions() {
-    return ((bitField2_ & 0x40000000) != 0);
+    return ((bitField2_ & 0x80000000) != 0);
   }
   /**
    * 
@@ -3289,7 +3319,7 @@ public long getMessageImpressions() {
    */
   @java.lang.Override
   public boolean hasMessageChatRate() {
-    return ((bitField2_ & 0x80000000) != 0);
+    return ((bitField3_ & 0x00000001) != 0);
   }
   /**
    * 
@@ -3320,7 +3350,7 @@ public double getMessageChatRate() {
    */
   @java.lang.Override
   public boolean hasMobileFriendlyClicksPercentage() {
-    return ((bitField3_ & 0x00000001) != 0);
+    return ((bitField3_ & 0x00000002) != 0);
   }
   /**
    * 
@@ -3347,7 +3377,7 @@ public double getMobileFriendlyClicksPercentage() {
    */
   @java.lang.Override
   public boolean hasOptimizationScoreUplift() {
-    return ((bitField3_ & 0x00000002) != 0);
+    return ((bitField3_ & 0x00000004) != 0);
   }
   /**
    * 
@@ -3380,7 +3410,7 @@ public double getOptimizationScoreUplift() {
    */
   @java.lang.Override
   public boolean hasOptimizationScoreUrl() {
-    return ((bitField3_ & 0x00000004) != 0);
+    return ((bitField3_ & 0x00000008) != 0);
   }
   /**
    * 
@@ -3450,7 +3480,7 @@ public java.lang.String getOptimizationScoreUrl() {
    */
   @java.lang.Override
   public boolean hasOrganicClicks() {
-    return ((bitField3_ & 0x00000008) != 0);
+    return ((bitField3_ & 0x00000010) != 0);
   }
   /**
    * 
@@ -3482,7 +3512,7 @@ public long getOrganicClicks() {
    */
   @java.lang.Override
   public boolean hasOrganicClicksPerQuery() {
-    return ((bitField3_ & 0x00000010) != 0);
+    return ((bitField3_ & 0x00000020) != 0);
   }
   /**
    * 
@@ -3514,7 +3544,7 @@ public double getOrganicClicksPerQuery() {
    */
   @java.lang.Override
   public boolean hasOrganicImpressions() {
-    return ((bitField3_ & 0x00000020) != 0);
+    return ((bitField3_ & 0x00000040) != 0);
   }
   /**
    * 
@@ -3546,7 +3576,7 @@ public long getOrganicImpressions() {
    */
   @java.lang.Override
   public boolean hasOrganicImpressionsPerQuery() {
-    return ((bitField3_ & 0x00000040) != 0);
+    return ((bitField3_ & 0x00000080) != 0);
   }
   /**
    * 
@@ -3578,7 +3608,7 @@ public double getOrganicImpressionsPerQuery() {
    */
   @java.lang.Override
   public boolean hasOrganicQueries() {
-    return ((bitField3_ & 0x00000080) != 0);
+    return ((bitField3_ & 0x00000100) != 0);
   }
   /**
    * 
@@ -3608,7 +3638,7 @@ public long getOrganicQueries() {
    */
   @java.lang.Override
   public boolean hasPercentNewVisitors() {
-    return ((bitField3_ & 0x00000100) != 0);
+    return ((bitField3_ & 0x00000200) != 0);
   }
   /**
    * 
@@ -3636,7 +3666,7 @@ public double getPercentNewVisitors() {
    */
   @java.lang.Override
   public boolean hasPhoneCalls() {
-    return ((bitField3_ & 0x00000200) != 0);
+    return ((bitField3_ & 0x00000400) != 0);
   }
   /**
    * 
@@ -3663,7 +3693,7 @@ public long getPhoneCalls() {
    */
   @java.lang.Override
   public boolean hasPhoneImpressions() {
-    return ((bitField3_ & 0x00000400) != 0);
+    return ((bitField3_ & 0x00000800) != 0);
   }
   /**
    * 
@@ -3691,7 +3721,7 @@ public long getPhoneImpressions() {
    */
   @java.lang.Override
   public boolean hasPhoneThroughRate() {
-    return ((bitField3_ & 0x00000800) != 0);
+    return ((bitField3_ & 0x00001000) != 0);
   }
   /**
    * 
@@ -3721,7 +3751,7 @@ public double getPhoneThroughRate() {
    */
   @java.lang.Override
   public boolean hasRelativeCtr() {
-    return ((bitField3_ & 0x00001000) != 0);
+    return ((bitField3_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -3753,7 +3783,7 @@ public double getRelativeCtr() {
    */
   @java.lang.Override
   public boolean hasSearchAbsoluteTopImpressionShare() {
-    return ((bitField3_ & 0x00002000) != 0);
+    return ((bitField3_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -3786,7 +3816,7 @@ public double getSearchAbsoluteTopImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchBudgetLostAbsoluteTopImpressionShare() {
-    return ((bitField3_ & 0x00004000) != 0);
+    return ((bitField3_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -3819,7 +3849,7 @@ public double getSearchBudgetLostAbsoluteTopImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchBudgetLostImpressionShare() {
-    return ((bitField3_ & 0x00008000) != 0);
+    return ((bitField3_ & 0x00010000) != 0);
   }
   /**
    * 
@@ -3852,7 +3882,7 @@ public double getSearchBudgetLostImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchBudgetLostTopImpressionShare() {
-    return ((bitField3_ & 0x00010000) != 0);
+    return ((bitField3_ & 0x00020000) != 0);
   }
   /**
    * 
@@ -3885,7 +3915,7 @@ public double getSearchBudgetLostTopImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchClickShare() {
-    return ((bitField3_ & 0x00020000) != 0);
+    return ((bitField3_ & 0x00040000) != 0);
   }
   /**
    * 
@@ -3920,7 +3950,7 @@ public double getSearchClickShare() {
    */
   @java.lang.Override
   public boolean hasSearchExactMatchImpressionShare() {
-    return ((bitField3_ & 0x00040000) != 0);
+    return ((bitField3_ & 0x00080000) != 0);
   }
   /**
    * 
@@ -3955,7 +3985,7 @@ public double getSearchExactMatchImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchImpressionShare() {
-    return ((bitField3_ & 0x00080000) != 0);
+    return ((bitField3_ & 0x00100000) != 0);
   }
   /**
    * 
@@ -3988,7 +4018,7 @@ public double getSearchImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchRankLostAbsoluteTopImpressionShare() {
-    return ((bitField3_ & 0x00100000) != 0);
+    return ((bitField3_ & 0x00200000) != 0);
   }
   /**
    * 
@@ -4021,7 +4051,7 @@ public double getSearchRankLostAbsoluteTopImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchRankLostImpressionShare() {
-    return ((bitField3_ & 0x00200000) != 0);
+    return ((bitField3_ & 0x00400000) != 0);
   }
   /**
    * 
@@ -4054,7 +4084,7 @@ public double getSearchRankLostImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchRankLostTopImpressionShare() {
-    return ((bitField3_ & 0x00400000) != 0);
+    return ((bitField3_ & 0x00800000) != 0);
   }
   /**
    * 
@@ -4090,7 +4120,7 @@ public double getSearchRankLostTopImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchTopImpressionShare() {
-    return ((bitField3_ & 0x00800000) != 0);
+    return ((bitField3_ & 0x01000000) != 0);
   }
   /**
    * 
@@ -4123,7 +4153,7 @@ public double getSearchTopImpressionShare() {
    */
   @java.lang.Override
   public boolean hasSearchVolume() {
-    return ((bitField3_ & 0x01000000) != 0);
+    return ((bitField3_ & 0x02000000) != 0);
   }
   /**
    * 
@@ -4162,7 +4192,7 @@ public com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder getSearchV
    */
   @java.lang.Override
   public boolean hasSpeedScore() {
-    return ((bitField3_ & 0x02000000) != 0);
+    return ((bitField3_ & 0x04000000) != 0);
   }
   /**
    * 
@@ -4191,7 +4221,7 @@ public long getSpeedScore() {
    */
   @java.lang.Override
   public boolean hasAverageTargetCpaMicros() {
-    return ((bitField3_ & 0x04000000) != 0);
+    return ((bitField3_ & 0x08000000) != 0);
   }
   /**
    * 
@@ -4220,7 +4250,7 @@ public long getAverageTargetCpaMicros() {
    */
   @java.lang.Override
   public boolean hasAverageTargetRoas() {
-    return ((bitField3_ & 0x08000000) != 0);
+    return ((bitField3_ & 0x10000000) != 0);
   }
   /**
    * 
@@ -4249,7 +4279,7 @@ public double getAverageTargetRoas() {
    */
   @java.lang.Override
   public boolean hasTopImpressionPercentage() {
-    return ((bitField3_ & 0x10000000) != 0);
+    return ((bitField3_ & 0x20000000) != 0);
   }
   /**
    * 
@@ -4278,7 +4308,7 @@ public double getTopImpressionPercentage() {
    */
   @java.lang.Override
   public boolean hasValidAcceleratedMobilePagesClicksPercentage() {
-    return ((bitField3_ & 0x20000000) != 0);
+    return ((bitField3_ & 0x40000000) != 0);
   }
   /**
    * 
@@ -4306,7 +4336,7 @@ public double getValidAcceleratedMobilePagesClicksPercentage() {
    */
   @java.lang.Override
   public boolean hasValuePerAllConversions() {
-    return ((bitField3_ & 0x40000000) != 0);
+    return ((bitField3_ & 0x80000000) != 0);
   }
   /**
    * 
@@ -4336,7 +4366,7 @@ public double getValuePerAllConversions() {
    */
   @java.lang.Override
   public boolean hasValuePerAllConversionsByConversionDate() {
-    return ((bitField3_ & 0x80000000) != 0);
+    return ((bitField4_ & 0x00000001) != 0);
   }
   /**
    * 
@@ -4369,7 +4399,7 @@ public double getValuePerAllConversionsByConversionDate() {
    */
   @java.lang.Override
   public boolean hasValuePerConversion() {
-    return ((bitField4_ & 0x00000001) != 0);
+    return ((bitField4_ & 0x00000002) != 0);
   }
   /**
    * 
@@ -4405,7 +4435,7 @@ public double getValuePerConversion() {
    */
   @java.lang.Override
   public boolean hasValuePerConversionsByConversionDate() {
-    return ((bitField4_ & 0x00000002) != 0);
+    return ((bitField4_ & 0x00000004) != 0);
   }
   /**
    * 
@@ -4442,7 +4472,7 @@ public double getValuePerConversionsByConversionDate() {
    */
   @java.lang.Override
   public boolean hasValuePerCurrentModelAttributedConversion() {
-    return ((bitField4_ & 0x00000004) != 0);
+    return ((bitField4_ & 0x00000008) != 0);
   }
   /**
    * 
@@ -4473,7 +4503,7 @@ public double getValuePerCurrentModelAttributedConversion() {
    */
   @java.lang.Override
   public boolean hasVideoQuartileP100Rate() {
-    return ((bitField4_ & 0x00000008) != 0);
+    return ((bitField4_ & 0x00000010) != 0);
   }
   /**
    * 
@@ -4500,7 +4530,7 @@ public double getVideoQuartileP100Rate() {
    */
   @java.lang.Override
   public boolean hasVideoQuartileP25Rate() {
-    return ((bitField4_ & 0x00000010) != 0);
+    return ((bitField4_ & 0x00000020) != 0);
   }
   /**
    * 
@@ -4527,7 +4557,7 @@ public double getVideoQuartileP25Rate() {
    */
   @java.lang.Override
   public boolean hasVideoQuartileP50Rate() {
-    return ((bitField4_ & 0x00000020) != 0);
+    return ((bitField4_ & 0x00000040) != 0);
   }
   /**
    * 
@@ -4554,7 +4584,7 @@ public double getVideoQuartileP50Rate() {
    */
   @java.lang.Override
   public boolean hasVideoQuartileP75Rate() {
-    return ((bitField4_ & 0x00000040) != 0);
+    return ((bitField4_ & 0x00000080) != 0);
   }
   /**
    * 
@@ -4583,7 +4613,7 @@ public double getVideoQuartileP75Rate() {
    */
   @java.lang.Override
   public boolean hasVideoTrueviewViewRate() {
-    return ((bitField4_ & 0x00000080) != 0);
+    return ((bitField4_ & 0x00000100) != 0);
   }
   /**
    * 
@@ -4612,7 +4642,7 @@ public double getVideoTrueviewViewRate() {
    */
   @java.lang.Override
   public boolean hasVideoTrueviewViews() {
-    return ((bitField4_ & 0x00000100) != 0);
+    return ((bitField4_ & 0x00000200) != 0);
   }
   /**
    * 
@@ -4642,7 +4672,7 @@ public long getVideoTrueviewViews() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversions() {
-    return ((bitField4_ & 0x00000200) != 0);
+    return ((bitField4_ & 0x00000400) != 0);
   }
   /**
    * 
@@ -4752,7 +4782,7 @@ public long getPublisherUnknownClicks() {
    */
   @java.lang.Override
   public boolean hasAllConversionsFromLocationAssetClickToCall() {
-    return ((bitField4_ & 0x00000400) != 0);
+    return ((bitField4_ & 0x00000800) != 0);
   }
   /**
    * 
@@ -4783,7 +4813,7 @@ public double getAllConversionsFromLocationAssetClickToCall() {
    */
   @java.lang.Override
   public boolean hasAllConversionsFromLocationAssetDirections() {
-    return ((bitField4_ & 0x00000800) != 0);
+    return ((bitField4_ & 0x00001000) != 0);
   }
   /**
    * 
@@ -4814,7 +4844,7 @@ public double getAllConversionsFromLocationAssetDirections() {
    */
   @java.lang.Override
   public boolean hasAllConversionsFromLocationAssetMenu() {
-    return ((bitField4_ & 0x00001000) != 0);
+    return ((bitField4_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -4845,7 +4875,7 @@ public double getAllConversionsFromLocationAssetMenu() {
    */
   @java.lang.Override
   public boolean hasAllConversionsFromLocationAssetOrder() {
-    return ((bitField4_ & 0x00002000) != 0);
+    return ((bitField4_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -4876,7 +4906,7 @@ public double getAllConversionsFromLocationAssetOrder() {
    */
   @java.lang.Override
   public boolean hasAllConversionsFromLocationAssetOtherEngagement() {
-    return ((bitField4_ & 0x00004000) != 0);
+    return ((bitField4_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -4907,7 +4937,7 @@ public double getAllConversionsFromLocationAssetOtherEngagement() {
    */
   @java.lang.Override
   public boolean hasAllConversionsFromLocationAssetStoreVisits() {
-    return ((bitField4_ & 0x00008000) != 0);
+    return ((bitField4_ & 0x00010000) != 0);
   }
   /**
    * 
@@ -4938,7 +4968,7 @@ public double getAllConversionsFromLocationAssetStoreVisits() {
    */
   @java.lang.Override
   public boolean hasAllConversionsFromLocationAssetWebsite() {
-    return ((bitField4_ & 0x00010000) != 0);
+    return ((bitField4_ & 0x00020000) != 0);
   }
   /**
    * 
@@ -4969,7 +4999,7 @@ public double getAllConversionsFromLocationAssetWebsite() {
    */
   @java.lang.Override
   public boolean hasEligibleImpressionsFromLocationAssetStoreReach() {
-    return ((bitField4_ & 0x00020000) != 0);
+    return ((bitField4_ & 0x00040000) != 0);
   }
   /**
    * 
@@ -4999,7 +5029,7 @@ public long getEligibleImpressionsFromLocationAssetStoreReach() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversionsFromLocationAssetClickToCall() {
-    return ((bitField4_ & 0x00040000) != 0);
+    return ((bitField4_ & 0x00080000) != 0);
   }
   /**
    * 
@@ -5028,7 +5058,7 @@ public double getViewThroughConversionsFromLocationAssetClickToCall() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversionsFromLocationAssetDirections() {
-    return ((bitField4_ & 0x00080000) != 0);
+    return ((bitField4_ & 0x00100000) != 0);
   }
   /**
    * 
@@ -5057,7 +5087,7 @@ public double getViewThroughConversionsFromLocationAssetDirections() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversionsFromLocationAssetMenu() {
-    return ((bitField4_ & 0x00100000) != 0);
+    return ((bitField4_ & 0x00200000) != 0);
   }
   /**
    * 
@@ -5086,7 +5116,7 @@ public double getViewThroughConversionsFromLocationAssetMenu() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversionsFromLocationAssetOrder() {
-    return ((bitField4_ & 0x00200000) != 0);
+    return ((bitField4_ & 0x00400000) != 0);
   }
   /**
    * 
@@ -5115,7 +5145,7 @@ public double getViewThroughConversionsFromLocationAssetOrder() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversionsFromLocationAssetOtherEngagement() {
-    return ((bitField4_ & 0x00400000) != 0);
+    return ((bitField4_ & 0x00800000) != 0);
   }
   /**
    * 
@@ -5144,7 +5174,7 @@ public double getViewThroughConversionsFromLocationAssetOtherEngagement() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversionsFromLocationAssetStoreVisits() {
-    return ((bitField4_ & 0x00800000) != 0);
+    return ((bitField4_ & 0x01000000) != 0);
   }
   /**
    * 
@@ -5173,7 +5203,7 @@ public double getViewThroughConversionsFromLocationAssetStoreVisits() {
    */
   @java.lang.Override
   public boolean hasViewThroughConversionsFromLocationAssetWebsite() {
-    return ((bitField4_ & 0x01000000) != 0);
+    return ((bitField4_ & 0x02000000) != 0);
   }
   /**
    * 
@@ -5210,7 +5240,7 @@ public double getViewThroughConversionsFromLocationAssetWebsite() {
    */
   @java.lang.Override
   public boolean hasOrders() {
-    return ((bitField4_ & 0x02000000) != 0);
+    return ((bitField4_ & 0x04000000) != 0);
   }
   /**
    * 
@@ -5253,7 +5283,7 @@ public double getOrders() {
    */
   @java.lang.Override
   public boolean hasAverageOrderValueMicros() {
-    return ((bitField4_ & 0x04000000) != 0);
+    return ((bitField4_ & 0x08000000) != 0);
   }
   /**
    * 
@@ -5294,7 +5324,7 @@ public long getAverageOrderValueMicros() {
    */
   @java.lang.Override
   public boolean hasAverageCartSize() {
-    return ((bitField4_ & 0x08000000) != 0);
+    return ((bitField4_ & 0x10000000) != 0);
   }
   /**
    * 
@@ -5338,7 +5368,7 @@ public double getAverageCartSize() {
    */
   @java.lang.Override
   public boolean hasCostOfGoodsSoldMicros() {
-    return ((bitField4_ & 0x10000000) != 0);
+    return ((bitField4_ & 0x20000000) != 0);
   }
   /**
    * 
@@ -5385,7 +5415,7 @@ public long getCostOfGoodsSoldMicros() {
    */
   @java.lang.Override
   public boolean hasGrossProfitMicros() {
-    return ((bitField4_ & 0x20000000) != 0);
+    return ((bitField4_ & 0x40000000) != 0);
   }
   /**
    * 
@@ -5434,7 +5464,7 @@ public long getGrossProfitMicros() {
    */
   @java.lang.Override
   public boolean hasGrossProfitMargin() {
-    return ((bitField4_ & 0x40000000) != 0);
+    return ((bitField4_ & 0x80000000) != 0);
   }
   /**
    * 
@@ -5481,7 +5511,7 @@ public double getGrossProfitMargin() {
    */
   @java.lang.Override
   public boolean hasRevenueMicros() {
-    return ((bitField4_ & 0x80000000) != 0);
+    return ((bitField5_ & 0x00000001) != 0);
   }
   /**
    * 
@@ -5523,7 +5553,7 @@ public long getRevenueMicros() {
    */
   @java.lang.Override
   public boolean hasUnitsSold() {
-    return ((bitField5_ & 0x00000001) != 0);
+    return ((bitField5_ & 0x00000002) != 0);
   }
   /**
    * 
@@ -5570,7 +5600,7 @@ public double getUnitsSold() {
    */
   @java.lang.Override
   public boolean hasCrossSellCostOfGoodsSoldMicros() {
-    return ((bitField5_ & 0x00000002) != 0);
+    return ((bitField5_ & 0x00000004) != 0);
   }
   /**
    * 
@@ -5622,7 +5652,7 @@ public long getCrossSellCostOfGoodsSoldMicros() {
    */
   @java.lang.Override
   public boolean hasCrossSellGrossProfitMicros() {
-    return ((bitField5_ & 0x00000004) != 0);
+    return ((bitField5_ & 0x00000008) != 0);
   }
   /**
    * 
@@ -5673,7 +5703,7 @@ public long getCrossSellGrossProfitMicros() {
    */
   @java.lang.Override
   public boolean hasCrossSellRevenueMicros() {
-    return ((bitField5_ & 0x00000008) != 0);
+    return ((bitField5_ & 0x00000010) != 0);
   }
   /**
    * 
@@ -5723,7 +5753,7 @@ public long getCrossSellRevenueMicros() {
    */
   @java.lang.Override
   public boolean hasCrossSellUnitsSold() {
-    return ((bitField5_ & 0x00000010) != 0);
+    return ((bitField5_ & 0x00000020) != 0);
   }
   /**
    * 
@@ -5773,7 +5803,7 @@ public double getCrossSellUnitsSold() {
    */
   @java.lang.Override
   public boolean hasLeadCostOfGoodsSoldMicros() {
-    return ((bitField5_ & 0x00000020) != 0);
+    return ((bitField5_ & 0x00000040) != 0);
   }
   /**
    * 
@@ -5824,7 +5854,7 @@ public long getLeadCostOfGoodsSoldMicros() {
    */
   @java.lang.Override
   public boolean hasLeadGrossProfitMicros() {
-    return ((bitField5_ & 0x00000040) != 0);
+    return ((bitField5_ & 0x00000080) != 0);
   }
   /**
    * 
@@ -5875,7 +5905,7 @@ public long getLeadGrossProfitMicros() {
    */
   @java.lang.Override
   public boolean hasLeadRevenueMicros() {
-    return ((bitField5_ & 0x00000080) != 0);
+    return ((bitField5_ & 0x00000100) != 0);
   }
   /**
    * 
@@ -5924,7 +5954,7 @@ public long getLeadRevenueMicros() {
    */
   @java.lang.Override
   public boolean hasLeadUnitsSold() {
-    return ((bitField5_ & 0x00000100) != 0);
+    return ((bitField5_ & 0x00000200) != 0);
   }
   /**
    * 
@@ -5964,7 +5994,7 @@ public double getLeadUnitsSold() {
    */
   @java.lang.Override
   public boolean hasUniqueUsers() {
-    return ((bitField5_ & 0x00000200) != 0);
+    return ((bitField5_ & 0x00000400) != 0);
   }
   /**
    * 
@@ -5997,7 +6027,7 @@ public long getUniqueUsers() {
    */
   @java.lang.Override
   public boolean hasAverageImpressionFrequencyPerUser() {
-    return ((bitField5_ & 0x00000400) != 0);
+    return ((bitField5_ & 0x00000800) != 0);
   }
   /**
    * 
@@ -6029,7 +6059,7 @@ public double getAverageImpressionFrequencyPerUser() {
    */
   @java.lang.Override
   public boolean hasLinkedEntitiesCount() {
-    return ((bitField5_ & 0x00000800) != 0);
+    return ((bitField5_ & 0x00001000) != 0);
   }
   /**
    * 
@@ -6122,7 +6152,7 @@ public java.lang.String getLinkedSampleEntities(int index) {
    */
   @java.lang.Override
   public boolean hasAssetPinnedTotalCount() {
-    return ((bitField5_ & 0x00001000) != 0);
+    return ((bitField5_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -6155,7 +6185,7 @@ public long getAssetPinnedTotalCount() {
    */
   @java.lang.Override
   public boolean hasAssetPinnedAsHeadlinePositionOneCount() {
-    return ((bitField5_ & 0x00002000) != 0);
+    return ((bitField5_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -6188,7 +6218,7 @@ public long getAssetPinnedAsHeadlinePositionOneCount() {
    */
   @java.lang.Override
   public boolean hasAssetPinnedAsHeadlinePositionTwoCount() {
-    return ((bitField5_ & 0x00004000) != 0);
+    return ((bitField5_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -6221,7 +6251,7 @@ public long getAssetPinnedAsHeadlinePositionTwoCount() {
    */
   @java.lang.Override
   public boolean hasAssetPinnedAsHeadlinePositionThreeCount() {
-    return ((bitField5_ & 0x00008000) != 0);
+    return ((bitField5_ & 0x00010000) != 0);
   }
   /**
    * 
@@ -6254,7 +6284,7 @@ public long getAssetPinnedAsHeadlinePositionThreeCount() {
    */
   @java.lang.Override
   public boolean hasAssetPinnedAsDescriptionPositionOneCount() {
-    return ((bitField5_ & 0x00010000) != 0);
+    return ((bitField5_ & 0x00020000) != 0);
   }
   /**
    * 
@@ -6287,7 +6317,7 @@ public long getAssetPinnedAsDescriptionPositionOneCount() {
    */
   @java.lang.Override
   public boolean hasAssetPinnedAsDescriptionPositionTwoCount() {
-    return ((bitField5_ & 0x00020000) != 0);
+    return ((bitField5_ & 0x00040000) != 0);
   }
   /**
    * 
@@ -6317,7 +6347,7 @@ public long getAssetPinnedAsDescriptionPositionTwoCount() {
    */
   @java.lang.Override
   public boolean hasStoreVisitsLastClickModelAttributedConversions() {
-    return ((bitField5_ & 0x00040000) != 0);
+    return ((bitField5_ & 0x00080000) != 0);
   }
   /**
    * 
@@ -6344,7 +6374,7 @@ public double getStoreVisitsLastClickModelAttributedConversions() {
    */
   @java.lang.Override
   public boolean hasResultsConversionsPurchase() {
-    return ((bitField5_ & 0x00080000) != 0);
+    return ((bitField5_ & 0x00100000) != 0);
   }
   /**
    * 
@@ -6372,7 +6402,7 @@ public double getResultsConversionsPurchase() {
    */
   @java.lang.Override
   public boolean hasVideoTrueviewViewRateInFeed() {
-    return ((bitField5_ & 0x00100000) != 0);
+    return ((bitField5_ & 0x00200000) != 0);
   }
   /**
    * 
@@ -6401,7 +6431,7 @@ public double getVideoTrueviewViewRateInFeed() {
    */
   @java.lang.Override
   public boolean hasVideoTrueviewViewRateInStream() {
-    return ((bitField5_ & 0x00200000) != 0);
+    return ((bitField5_ & 0x00400000) != 0);
   }
   /**
    * 
@@ -6430,7 +6460,7 @@ public double getVideoTrueviewViewRateInStream() {
    */
   @java.lang.Override
   public boolean hasVideoTrueviewViewRateShorts() {
-    return ((bitField5_ & 0x00400000) != 0);
+    return ((bitField5_ & 0x00800000) != 0);
   }
   /**
    * 
@@ -6463,7 +6493,7 @@ public double getVideoTrueviewViewRateShorts() {
    */
   @java.lang.Override
   public boolean hasCoviewedImpressions() {
-    return ((bitField5_ & 0x00800000) != 0);
+    return ((bitField5_ & 0x01000000) != 0);
   }
   /**
    * 
@@ -6498,7 +6528,7 @@ public long getCoviewedImpressions() {
    */
   @java.lang.Override
   public boolean hasPrimaryImpressions() {
-    return ((bitField5_ & 0x01000000) != 0);
+    return ((bitField5_ & 0x02000000) != 0);
   }
   /**
    * 
@@ -6532,7 +6562,7 @@ public long getPrimaryImpressions() {
    */
   @java.lang.Override
   public boolean hasPlatformComparableConversionsFromInteractionsRate() {
-    return ((bitField5_ & 0x02000000) != 0);
+    return ((bitField5_ & 0x04000000) != 0);
   }
   /**
    * 
@@ -6566,7 +6596,7 @@ public double getPlatformComparableConversionsFromInteractionsRate() {
    */
   @java.lang.Override
   public boolean hasPlatformComparableConversions() {
-    return ((bitField5_ & 0x04000000) != 0);
+    return ((bitField5_ & 0x08000000) != 0);
   }
   /**
    * 
@@ -6599,7 +6629,7 @@ public double getPlatformComparableConversions() {
    */
   @java.lang.Override
   public boolean hasPlatformComparableConversionsValue() {
-    return ((bitField5_ & 0x08000000) != 0);
+    return ((bitField5_ & 0x10000000) != 0);
   }
   /**
    * 
@@ -6632,7 +6662,7 @@ public double getPlatformComparableConversionsValue() {
    */
   @java.lang.Override
   public boolean hasPlatformComparableConversionsValuePerCost() {
-    return ((bitField5_ & 0x10000000) != 0);
+    return ((bitField5_ & 0x20000000) != 0);
   }
   /**
    * 
@@ -6667,7 +6697,7 @@ public double getPlatformComparableConversionsValuePerCost() {
    */
   @java.lang.Override
   public boolean hasPlatformComparableConversionsByConversionDate() {
-    return ((bitField5_ & 0x20000000) != 0);
+    return ((bitField5_ & 0x40000000) != 0);
   }
   /**
    * 
@@ -6703,7 +6733,7 @@ public double getPlatformComparableConversionsByConversionDate() {
    */
   @java.lang.Override
   public boolean hasPlatformComparableConversionsValueByConversionDate() {
-    return ((bitField5_ & 0x40000000) != 0);
+    return ((bitField5_ & 0x80000000) != 0);
   }
   /**
    * 
@@ -6738,7 +6768,7 @@ public double getPlatformComparableConversionsValueByConversionDate() {
    */
   @java.lang.Override
   public boolean hasPlatformComparableConversionsFromInteractionsValuePerInteraction() {
-    return ((bitField5_ & 0x80000000) != 0);
+    return ((bitField6_ & 0x00000001) != 0);
   }
   /**
    * 
@@ -6773,7 +6803,7 @@ public double getPlatformComparableConversionsFromInteractionsValuePerInteractio
    */
   @java.lang.Override
   public boolean hasCostPerPlatformComparableConversion() {
-    return ((bitField6_ & 0x00000001) != 0);
+    return ((bitField6_ & 0x00000002) != 0);
   }
   /**
    * 
@@ -6808,7 +6838,7 @@ public double getCostPerPlatformComparableConversion() {
    */
   @java.lang.Override
   public boolean hasValuePerPlatformComparableConversion() {
-    return ((bitField6_ & 0x00000002) != 0);
+    return ((bitField6_ & 0x00000004) != 0);
   }
   /**
    * 
@@ -6844,7 +6874,7 @@ public double getValuePerPlatformComparableConversion() {
    */
   @java.lang.Override
   public boolean hasValuePerPlatformComparableConversionsByConversionDate() {
-    return ((bitField6_ & 0x00000004) != 0);
+    return ((bitField6_ & 0x00000008) != 0);
   }
   /**
    * 
@@ -6877,7 +6907,7 @@ public double getValuePerPlatformComparableConversionsByConversionDate() {
    */
   @java.lang.Override
   public boolean hasCostConvertedCurrencyPerPlatformComparableConversion() {
-    return ((bitField6_ & 0x00000008) != 0);
+    return ((bitField6_ & 0x00000010) != 0);
   }
   /**
    * 
@@ -6907,7 +6937,7 @@ public double getCostConvertedCurrencyPerPlatformComparableConversion() {
    */
   @java.lang.Override
   public boolean hasUniqueUsersTwoPlus() {
-    return ((bitField6_ & 0x00000010) != 0);
+    return ((bitField6_ & 0x00000020) != 0);
   }
   /**
    * 
@@ -6938,7 +6968,7 @@ public long getUniqueUsersTwoPlus() {
    */
   @java.lang.Override
   public boolean hasUniqueUsersThreePlus() {
-    return ((bitField6_ & 0x00000020) != 0);
+    return ((bitField6_ & 0x00000040) != 0);
   }
   /**
    * 
@@ -6969,7 +6999,7 @@ public long getUniqueUsersThreePlus() {
    */
   @java.lang.Override
   public boolean hasUniqueUsersFourPlus() {
-    return ((bitField6_ & 0x00000040) != 0);
+    return ((bitField6_ & 0x00000080) != 0);
   }
   /**
    * 
@@ -7000,7 +7030,7 @@ public long getUniqueUsersFourPlus() {
    */
   @java.lang.Override
   public boolean hasUniqueUsersFivePlus() {
-    return ((bitField6_ & 0x00000080) != 0);
+    return ((bitField6_ & 0x00000100) != 0);
   }
   /**
    * 
@@ -7031,7 +7061,7 @@ public long getUniqueUsersFivePlus() {
    */
   @java.lang.Override
   public boolean hasUniqueUsersTenPlus() {
-    return ((bitField6_ & 0x00000100) != 0);
+    return ((bitField6_ & 0x00000200) != 0);
   }
   /**
    * 
@@ -7061,7 +7091,7 @@ public long getUniqueUsersTenPlus() {
    */
   @java.lang.Override
   public boolean hasValueAdjustment() {
-    return ((bitField6_ & 0x00000200) != 0);
+    return ((bitField6_ & 0x00000400) != 0);
   }
   /**
    * 
@@ -7090,7 +7120,7 @@ public double getValueAdjustment() {
    */
   @java.lang.Override
   public boolean hasAllValueAdjustment() {
-    return ((bitField6_ & 0x00000400) != 0);
+    return ((bitField6_ & 0x00000800) != 0);
   }
   /**
    * 
@@ -7118,7 +7148,7 @@ public double getAllValueAdjustment() {
    */
   @java.lang.Override
   public boolean hasClicksUniqueQueryClusters() {
-    return ((bitField6_ & 0x00000800) != 0);
+    return ((bitField6_ & 0x00001000) != 0);
   }
   /**
    * 
@@ -7145,7 +7175,7 @@ public long getClicksUniqueQueryClusters() {
    */
   @java.lang.Override
   public boolean hasConversionsUniqueQueryClusters() {
-    return ((bitField6_ & 0x00001000) != 0);
+    return ((bitField6_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -7172,7 +7202,7 @@ public long getConversionsUniqueQueryClusters() {
    */
   @java.lang.Override
   public boolean hasImpressionsUniqueQueryClusters() {
-    return ((bitField6_ & 0x00002000) != 0);
+    return ((bitField6_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -7203,7 +7233,7 @@ public long getImpressionsUniqueQueryClusters() {
    */
   @java.lang.Override
   public boolean hasVideoWatchTimeDurationMillis() {
-    return ((bitField6_ & 0x00004000) != 0);
+    return ((bitField6_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -7235,7 +7265,7 @@ public long getVideoWatchTimeDurationMillis() {
    */
   @java.lang.Override
   public boolean hasAverageVideoWatchTimeDurationMillis() {
-    return ((bitField6_ & 0x00008000) != 0);
+    return ((bitField6_ & 0x00010000) != 0);
   }
   /**
    * 
@@ -7263,7 +7293,7 @@ public long getAverageVideoWatchTimeDurationMillis() {
    */
   @java.lang.Override
   public boolean hasSvr() {
-    return ((bitField6_ & 0x00010000) != 0);
+    return ((bitField6_ & 0x00020000) != 0);
   }
   /**
    * 
@@ -7291,7 +7321,7 @@ public long getSvr() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibilityMeasurableImpressions() {
-    return ((bitField6_ & 0x00020000) != 0);
+    return ((bitField6_ & 0x00040000) != 0);
   }
   /**
    * 
@@ -7321,7 +7351,7 @@ public long getActiveViewAudibilityMeasurableImpressions() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibilityMeasurableImpressionsRate() {
-    return ((bitField6_ & 0x00040000) != 0);
+    return ((bitField6_ & 0x00080000) != 0);
   }
   /**
    * 
@@ -7352,7 +7382,7 @@ public double getActiveViewAudibilityMeasurableImpressionsRate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibilityInvalidMeasurableImpressionsRate() {
-    return ((bitField6_ & 0x00080000) != 0);
+    return ((bitField6_ & 0x00100000) != 0);
   }
   /**
    * 
@@ -7384,7 +7414,7 @@ public double getActiveViewAudibilityInvalidMeasurableImpressionsRate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() {
-    return ((bitField6_ & 0x00100000) != 0);
+    return ((bitField6_ & 0x00200000) != 0);
   }
   /**
    * 
@@ -7415,7 +7445,7 @@ public double getActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleImpressions() {
-    return ((bitField6_ & 0x00200000) != 0);
+    return ((bitField6_ & 0x00400000) != 0);
   }
   /**
    * 
@@ -7445,7 +7475,7 @@ public long getActiveViewAudibleImpressions() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleImpressionsRate() {
-    return ((bitField6_ & 0x00400000) != 0);
+    return ((bitField6_ & 0x00800000) != 0);
   }
   /**
    * 
@@ -7475,7 +7505,7 @@ public double getActiveViewAudibleImpressionsRate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleTwoSecondsImpressions() {
-    return ((bitField6_ & 0x00800000) != 0);
+    return ((bitField6_ & 0x01000000) != 0);
   }
   /**
    * 
@@ -7505,7 +7535,7 @@ public long getActiveViewAudibleTwoSecondsImpressions() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleTwoSecondsImpressionsRate() {
-    return ((bitField6_ & 0x01000000) != 0);
+    return ((bitField6_ & 0x02000000) != 0);
   }
   /**
    * 
@@ -7535,7 +7565,7 @@ public double getActiveViewAudibleTwoSecondsImpressionsRate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleThirtySecondsImpressions() {
-    return ((bitField6_ & 0x02000000) != 0);
+    return ((bitField6_ & 0x04000000) != 0);
   }
   /**
    * 
@@ -7565,7 +7595,7 @@ public long getActiveViewAudibleThirtySecondsImpressions() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleThirtySecondsImpressionsRate() {
-    return ((bitField6_ & 0x04000000) != 0);
+    return ((bitField6_ & 0x08000000) != 0);
   }
   /**
    * 
@@ -7596,7 +7626,7 @@ public double getActiveViewAudibleThirtySecondsImpressionsRate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleQuartileP25Rate() {
-    return ((bitField6_ & 0x08000000) != 0);
+    return ((bitField6_ & 0x10000000) != 0);
   }
   /**
    * 
@@ -7627,7 +7657,7 @@ public double getActiveViewAudibleQuartileP25Rate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleQuartileP50Rate() {
-    return ((bitField6_ & 0x10000000) != 0);
+    return ((bitField6_ & 0x20000000) != 0);
   }
   /**
    * 
@@ -7658,7 +7688,7 @@ public double getActiveViewAudibleQuartileP50Rate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleQuartileP75Rate() {
-    return ((bitField6_ & 0x20000000) != 0);
+    return ((bitField6_ & 0x40000000) != 0);
   }
   /**
    * 
@@ -7689,7 +7719,7 @@ public double getActiveViewAudibleQuartileP75Rate() {
    */
   @java.lang.Override
   public boolean hasActiveViewAudibleQuartileP100Rate() {
-    return ((bitField6_ & 0x40000000) != 0);
+    return ((bitField6_ & 0x80000000) != 0);
   }
   /**
    * 
@@ -7719,7 +7749,7 @@ public double getActiveViewAudibleQuartileP100Rate() {
    */
   @java.lang.Override
   public boolean hasBiddableIndirectInstallFirstInAppConversionMicros() {
-    return ((bitField6_ & 0x80000000) != 0);
+    return ((bitField7_ & 0x00000001) != 0);
   }
   /**
    * 
@@ -7752,7 +7782,7 @@ public long getBiddableIndirectInstallFirstInAppConversionMicros() {
    */
   @java.lang.Override
   public boolean hasAllAverageCartSize() {
-    return ((bitField7_ & 0x00000001) != 0);
+    return ((bitField7_ & 0x00000002) != 0);
   }
   /**
    * 
@@ -7789,7 +7819,7 @@ public double getAllAverageCartSize() {
    */
   @java.lang.Override
   public boolean hasAllAverageOrderValueMicros() {
-    return ((bitField7_ & 0x00000002) != 0);
+    return ((bitField7_ & 0x00000004) != 0);
   }
   /**
    * 
@@ -7826,7 +7856,7 @@ public long getAllAverageOrderValueMicros() {
    */
   @java.lang.Override
   public boolean hasAllCostOfGoodsSoldMicros() {
-    return ((bitField7_ & 0x00000004) != 0);
+    return ((bitField7_ & 0x00000008) != 0);
   }
   /**
    * 
@@ -7864,7 +7894,7 @@ public long getAllCostOfGoodsSoldMicros() {
    */
   @java.lang.Override
   public boolean hasAllCrossSellCostOfGoodsSoldMicros() {
-    return ((bitField7_ & 0x00000008) != 0);
+    return ((bitField7_ & 0x00000010) != 0);
   }
   /**
    * 
@@ -7903,7 +7933,7 @@ public long getAllCrossSellCostOfGoodsSoldMicros() {
    */
   @java.lang.Override
   public boolean hasAllCrossSellGrossProfitMicros() {
-    return ((bitField7_ & 0x00000010) != 0);
+    return ((bitField7_ & 0x00000020) != 0);
   }
   /**
    * 
@@ -7941,7 +7971,7 @@ public long getAllCrossSellGrossProfitMicros() {
    */
   @java.lang.Override
   public boolean hasAllCrossSellRevenueMicros() {
-    return ((bitField7_ & 0x00000020) != 0);
+    return ((bitField7_ & 0x00000040) != 0);
   }
   /**
    * 
@@ -7979,7 +8009,7 @@ public long getAllCrossSellRevenueMicros() {
    */
   @java.lang.Override
   public boolean hasAllCrossSellUnitsSold() {
-    return ((bitField7_ & 0x00000040) != 0);
+    return ((bitField7_ & 0x00000080) != 0);
   }
   /**
    * 
@@ -8019,7 +8049,7 @@ public double getAllCrossSellUnitsSold() {
    */
   @java.lang.Override
   public boolean hasAllGrossProfitMargin() {
-    return ((bitField7_ & 0x00000080) != 0);
+    return ((bitField7_ & 0x00000100) != 0);
   }
   /**
    * 
@@ -8058,7 +8088,7 @@ public double getAllGrossProfitMargin() {
    */
   @java.lang.Override
   public boolean hasAllGrossProfitMicros() {
-    return ((bitField7_ & 0x00000100) != 0);
+    return ((bitField7_ & 0x00000200) != 0);
   }
   /**
    * 
@@ -8096,7 +8126,7 @@ public long getAllGrossProfitMicros() {
    */
   @java.lang.Override
   public boolean hasAllLeadCostOfGoodsSoldMicros() {
-    return ((bitField7_ & 0x00000200) != 0);
+    return ((bitField7_ & 0x00000400) != 0);
   }
   /**
    * 
@@ -8135,7 +8165,7 @@ public long getAllLeadCostOfGoodsSoldMicros() {
    */
   @java.lang.Override
   public boolean hasAllLeadGrossProfitMicros() {
-    return ((bitField7_ & 0x00000400) != 0);
+    return ((bitField7_ & 0x00000800) != 0);
   }
   /**
    * 
@@ -8173,7 +8203,7 @@ public long getAllLeadGrossProfitMicros() {
    */
   @java.lang.Override
   public boolean hasAllLeadRevenueMicros() {
-    return ((bitField7_ & 0x00000800) != 0);
+    return ((bitField7_ & 0x00001000) != 0);
   }
   /**
    * 
@@ -8210,7 +8240,7 @@ public long getAllLeadRevenueMicros() {
    */
   @java.lang.Override
   public boolean hasAllLeadUnitsSold() {
-    return ((bitField7_ & 0x00001000) != 0);
+    return ((bitField7_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -8247,7 +8277,7 @@ public double getAllLeadUnitsSold() {
    */
   @java.lang.Override
   public boolean hasAllOrders() {
-    return ((bitField7_ & 0x00002000) != 0);
+    return ((bitField7_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -8284,7 +8314,7 @@ public double getAllOrders() {
    */
   @java.lang.Override
   public boolean hasAllRevenueMicros() {
-    return ((bitField7_ & 0x00004000) != 0);
+    return ((bitField7_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -8321,7 +8351,7 @@ public long getAllRevenueMicros() {
    */
   @java.lang.Override
   public boolean hasAllUnitsSold() {
-    return ((bitField7_ & 0x00008000) != 0);
+    return ((bitField7_ & 0x00010000) != 0);
   }
   /**
    * 
@@ -8341,404 +8371,1451 @@ public double getAllUnitsSold() {
     return allUnitsSold_;
   }
 
-  private byte memoizedIsInitialized = -1;
+  public static final int CONTROL_COST_PER_CONVERSION_FIELD_NUMBER = 446;
+  private double controlCostPerConversion_ = 0D;
+  /**
+   * 
+   * The cost per conversion metric on the control arm of the
+   * experiment. The treatment cost per conversion value can be
+   * selected by using `cost_per_conversion`.
+   * 
+ * + * optional double control_cost_per_conversion = 446; + * @return Whether the controlCostPerConversion field is set. + */ @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + public boolean hasControlCostPerConversion() { + return ((bitField7_ & 0x00020000) != 0); + } + /** + *
+   * The cost per conversion metric on the control arm of the
+   * experiment. The treatment cost per conversion value can be
+   * selected by using `cost_per_conversion`.
+   * 
+ * + * optional double control_cost_per_conversion = 446; + * @return The controlCostPerConversion. + */ + @java.lang.Override + public double getControlCostPerConversion() { + return controlCostPerConversion_; + } - memoizedIsInitialized = 1; - return true; + public static final int COST_PER_CONVERSION_MARGIN_OF_ERROR_FIELD_NUMBER = 447; + private double costPerConversionMarginOfError_ = 0D; + /** + *
+   * The margin of error when estimating the experiment's effect on cost per
+   * conversion.
+   *
+   * Together with `cost_per_conversion_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_per_conversion_change_point_estimate`.
+   * 
+ * + * optional double cost_per_conversion_margin_of_error = 447; + * @return Whether the costPerConversionMarginOfError field is set. + */ + @java.lang.Override + public boolean hasCostPerConversionMarginOfError() { + return ((bitField7_ & 0x00040000) != 0); + } + /** + *
+   * The margin of error when estimating the experiment's effect on cost per
+   * conversion.
+   *
+   * Together with `cost_per_conversion_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_per_conversion_change_point_estimate`.
+   * 
+ * + * optional double cost_per_conversion_margin_of_error = 447; + * @return The costPerConversionMarginOfError. + */ + @java.lang.Override + public double getCostPerConversionMarginOfError() { + return costPerConversionMarginOfError_; } + public static final int COST_PER_CONVERSION_P_VALUE_FIELD_NUMBER = 448; + private double costPerConversionPValue_ = 0D; + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost per conversion. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost per conversion, is 3%.
+   * 
+ * + * optional double cost_per_conversion_p_value = 448; + * @return Whether the costPerConversionPValue field is set. + */ @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (historicalCreativeQualityScore_ != com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { - output.writeEnum(80, historicalCreativeQualityScore_); - } - if (historicalLandingPageQualityScore_ != com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { - output.writeEnum(81, historicalLandingPageQualityScore_); - } - if (historicalSearchPredictedCtr_ != com.google.ads.googleads.v24.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_.getInt(i)); - } - if (((bitField1_ & 0x00000400) != 0)) { - output.writeInt64(131, clicks_); - } - if (((bitField4_ & 0x00000008) != 0)) { - output.writeDouble(132, videoQuartileP100Rate_); - } - if (((bitField4_ & 0x00000010) != 0)) { - output.writeDouble(133, videoQuartileP25Rate_); - } - if (((bitField4_ & 0x00000020) != 0)) { - output.writeDouble(134, videoQuartileP50Rate_); - } - if (((bitField4_ & 0x00000040) != 0)) { - output.writeDouble(135, videoQuartileP75Rate_); - } - if (((bitField3_ & 0x00002000) != 0)) { - output.writeDouble(136, searchAbsoluteTopImpressionShare_); - } - if (((bitField3_ & 0x00004000) != 0)) { - output.writeDouble(137, searchBudgetLostAbsoluteTopImpressionShare_); - } - if (((bitField3_ & 0x00008000) != 0)) { - output.writeDouble(138, searchBudgetLostImpressionShare_); - } - if (((bitField3_ & 0x00010000) != 0)) { - output.writeDouble(139, searchBudgetLostTopImpressionShare_); - } - if (((bitField3_ & 0x00020000) != 0)) { - output.writeDouble(140, searchClickShare_); - } - if (((bitField3_ & 0x00040000) != 0)) { - output.writeDouble(141, searchExactMatchImpressionShare_); - } - if (((bitField3_ & 0x00080000) != 0)) { - output.writeDouble(142, searchImpressionShare_); - } - if (((bitField3_ & 0x00100000) != 0)) { - output.writeDouble(143, searchRankLostAbsoluteTopImpressionShare_); - } - if (((bitField3_ & 0x00200000) != 0)) { - output.writeDouble(144, searchRankLostImpressionShare_); - } - if (((bitField3_ & 0x00400000) != 0)) { - output.writeDouble(145, searchRankLostTopImpressionShare_); - } - if (((bitField3_ & 0x00800000) != 0)) { - output.writeDouble(146, searchTopImpressionShare_); - } - if (((bitField3_ & 0x02000000) != 0)) { - output.writeInt64(147, speedScore_); - } - if (((bitField3_ & 0x10000000) != 0)) { - output.writeDouble(148, topImpressionPercentage_); - } - if (((bitField3_ & 0x20000000) != 0)) { - output.writeDouble(149, validAcceleratedMobilePagesClicksPercentage_); - } - if (((bitField3_ & 0x40000000) != 0)) { - output.writeDouble(150, valuePerAllConversions_); - } - if (((bitField4_ & 0x00000001) != 0)) { - output.writeDouble(151, valuePerConversion_); - } - if (((bitField4_ & 0x00000004) != 0)) { - output.writeDouble(152, valuePerCurrentModelAttributedConversion_); - } - if (((bitField4_ & 0x00000200) != 0)) { - output.writeInt64(155, viewThroughConversions_); - } - if (((bitField1_ & 0x00000800) != 0)) { - output.writeInt64(156, combinedClicks_); - } - if (((bitField1_ & 0x00001000) != 0)) { - output.writeDouble(157, combinedClicksPerQuery_); - } - if (((bitField1_ & 0x00002000) != 0)) { - output.writeInt64(158, combinedQueries_); - } - if (((bitField1_ & 0x00004000) != 0)) { - output.writeDouble(159, contentBudgetLostImpressionShare_); - } - if (((bitField1_ & 0x00008000) != 0)) { - output.writeDouble(160, contentImpressionShare_); - } - if (((bitField1_ & 0x00010000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 161, conversionLastReceivedRequestDateTime_); - } - if (((bitField1_ & 0x00020000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 162, conversionLastConversionDate_); - } - if (((bitField1_ & 0x00040000) != 0)) { - output.writeDouble(163, contentRankLostImpressionShare_); - } - if (((bitField1_ & 0x00080000) != 0)) { - output.writeDouble(164, conversionsFromInteractionsRate_); - } - if (((bitField1_ & 0x00100000) != 0)) { - output.writeDouble(165, conversionsValue_); - } - if (((bitField1_ & 0x00800000) != 0)) { - output.writeDouble(166, conversionsValuePerCost_); - } - if (((bitField1_ & 0x01000000) != 0)) { - output.writeDouble(167, conversionsFromInteractionsValuePerInteraction_); - } - if (((bitField1_ & 0x02000000) != 0)) { - output.writeDouble(168, conversions_); - } - if (((bitField1_ & 0x08000000) != 0)) { - output.writeInt64(169, costMicros_); - } - if (((bitField1_ & 0x10000000) != 0)) { - output.writeDouble(170, costPerAllConversions_); - } - if (((bitField1_ & 0x20000000) != 0)) { - output.writeDouble(171, costPerConversion_); - } - if (((bitField1_ & 0x40000000) != 0)) { - output.writeDouble(172, costPerCurrentModelAttributedConversion_); - } - if (((bitField1_ & 0x80000000) != 0)) { - output.writeDouble(173, crossDeviceConversions_); - } - if (((bitField2_ & 0x00000010) != 0)) { - output.writeDouble(174, ctr_); - } - if (((bitField2_ & 0x00000020) != 0)) { - output.writeDouble(175, currentModelAttributedConversions_); - } - if (((bitField2_ & 0x00000040) != 0)) { - output.writeDouble(176, currentModelAttributedConversionsFromInteractionsRate_); - } - if (((bitField2_ & 0x00000080) != 0)) { - output.writeDouble(177, currentModelAttributedConversionsFromInteractionsValuePerInteraction_); - } - if (((bitField2_ & 0x00000100) != 0)) { - output.writeDouble(178, currentModelAttributedConversionsValue_); - } - if (((bitField2_ & 0x00000200) != 0)) { - output.writeDouble(179, currentModelAttributedConversionsValuePerCost_); - } - if (((bitField2_ & 0x00000400) != 0)) { - output.writeDouble(180, engagementRate_); - } - if (((bitField2_ & 0x00000800) != 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_ & 0x00001000) != 0)) { - output.writeDouble(193, allConversions_); - } - if (((bitField0_ & 0x00004000) != 0)) { - output.writeDouble(194, allConversionsValuePerCost_); - } - if (((bitField0_ & 0x00008000) != 0)) { - output.writeDouble(195, allConversionsFromClickToCall_); - } - if (((bitField0_ & 0x00010000) != 0)) { - output.writeDouble(196, allConversionsFromDirections_); - } - if (((bitField0_ & 0x00020000) != 0)) { - output.writeDouble(197, allConversionsFromInteractionsValuePerInteraction_); - } - if (((bitField0_ & 0x00040000) != 0)) { - output.writeDouble(198, allConversionsFromMenu_); - } - if (((bitField0_ & 0x00080000) != 0)) { - output.writeDouble(199, allConversionsFromOrder_); - } - if (((bitField0_ & 0x00100000) != 0)) { - output.writeDouble(200, allConversionsFromOtherEngagement_); - } - if (((bitField0_ & 0x00200000) != 0)) { - output.writeDouble(201, allConversionsFromStoreVisit_); - } - if (((bitField0_ & 0x00400000) != 0)) { - output.writeDouble(202, allConversionsFromStoreWebsite_); - } - if (((bitField0_ & 0x20000000) != 0)) { - output.writeDouble(203, averageCost_); - } - if (((bitField0_ & 0x40000000) != 0)) { - output.writeDouble(204, averageCpc_); - } - if (((bitField0_ & 0x80000000) != 0)) { - output.writeDouble(205, averageCpe_); - } - if (((bitField1_ & 0x00000001) != 0)) { - output.writeDouble(206, averageCpm_); - } - if (((bitField1_ & 0x00000004) != 0)) { - output.writeDouble(208, averagePageViews_); - } - if (((bitField1_ & 0x00000008) != 0)) { - output.writeDouble(209, averageTimeOnSite_); - } - if (((bitField1_ & 0x00000010) != 0)) { - output.writeDouble(210, benchmarkAverageMaxCpc_); - } - if (((bitField1_ & 0x00000100) != 0)) { - output.writeDouble(211, benchmarkCtr_); - } - if (((bitField1_ & 0x00000200) != 0)) { - output.writeDouble(212, bounceRate_); - } - if (((bitField2_ & 0x00001000) != 0)) { - output.writeDouble(213, hotelAverageLeadValueMicros_); - } - if (((bitField2_ & 0x00008000) != 0)) { - output.writeDouble(214, hotelPriceDifferencePercentage_); - } - if (((bitField2_ & 0x00010000) != 0)) { - output.writeInt64(215, hotelEligibleImpressions_); - } - if (((bitField2_ & 0x00020000) != 0)) { - output.writeInt64(216, historicalQualityScore_); - } - if (((bitField2_ & 0x00040000) != 0)) { - output.writeInt64(217, gmailForwards_); - } - if (((bitField2_ & 0x00080000) != 0)) { - output.writeInt64(218, gmailSaves_); - } - if (((bitField2_ & 0x00100000) != 0)) { - output.writeInt64(219, gmailSecondaryClicks_); - } - if (((bitField2_ & 0x00200000) != 0)) { - output.writeInt64(220, impressionsFromStoreReach_); - } - if (((bitField2_ & 0x00400000) != 0)) { - output.writeInt64(221, impressions_); - } - if (((bitField2_ & 0x00800000) != 0)) { - output.writeDouble(222, interactionRate_); - } - if (((bitField2_ & 0x01000000) != 0)) { - output.writeInt64(223, interactions_); - } - if (((bitField2_ & 0x02000000) != 0)) { - output.writeDouble(224, invalidClickRate_); - } - if (((bitField2_ & 0x04000000) != 0)) { - output.writeInt64(225, invalidClicks_); - } - if (((bitField2_ & 0x20000000) != 0)) { - output.writeInt64(226, messageChats_); - } - if (((bitField2_ & 0x40000000) != 0)) { - output.writeInt64(227, messageImpressions_); - } - if (((bitField2_ & 0x80000000) != 0)) { - output.writeDouble(228, messageChatRate_); - } - if (((bitField3_ & 0x00000001) != 0)) { - output.writeDouble(229, mobileFriendlyClicksPercentage_); - } - if (((bitField3_ & 0x00000008) != 0)) { - output.writeInt64(230, organicClicks_); - } - if (((bitField3_ & 0x00000010) != 0)) { - output.writeDouble(231, organicClicksPerQuery_); - } - if (((bitField3_ & 0x00000020) != 0)) { - output.writeInt64(232, organicImpressions_); - } - if (((bitField3_ & 0x00000040) != 0)) { - output.writeDouble(233, organicImpressionsPerQuery_); - } - if (((bitField3_ & 0x00000080) != 0)) { - output.writeInt64(234, organicQueries_); - } - if (((bitField3_ & 0x00000100) != 0)) { - output.writeDouble(235, percentNewVisitors_); + public boolean hasCostPerConversionPValue() { + return ((bitField7_ & 0x00080000) != 0); + } + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost per conversion. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost per conversion, is 3%.
+   * 
+ * + * optional double cost_per_conversion_p_value = 448; + * @return The costPerConversionPValue. + */ + @java.lang.Override + public double getCostPerConversionPValue() { + return costPerConversionPValue_; + } + + public static final int COST_PER_CONVERSION_CHANGE_POINT_ESTIMATE_FIELD_NUMBER = 449; + private double costPerConversionChangePointEstimate_ = 0D; + /** + *
+   * The point estimate when estimating the experiment's effect on cost per
+   * conversion change.
+   *
+   * Together with `cost_per_conversion_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_per_conversion_change_point_estimate -
+   * cost_per_conversion_margin_of_error,
+   * cost_per_conversion_change_point_estimate +
+   * cost_per_conversion_margin_of_error)`.
+   * 
+ * + * optional double cost_per_conversion_change_point_estimate = 449; + * @return Whether the costPerConversionChangePointEstimate field is set. + */ + @java.lang.Override + public boolean hasCostPerConversionChangePointEstimate() { + return ((bitField7_ & 0x00100000) != 0); + } + /** + *
+   * The point estimate when estimating the experiment's effect on cost per
+   * conversion change.
+   *
+   * Together with `cost_per_conversion_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_per_conversion_change_point_estimate -
+   * cost_per_conversion_margin_of_error,
+   * cost_per_conversion_change_point_estimate +
+   * cost_per_conversion_margin_of_error)`.
+   * 
+ * + * optional double cost_per_conversion_change_point_estimate = 449; + * @return The costPerConversionChangePointEstimate. + */ + @java.lang.Override + public double getCostPerConversionChangePointEstimate() { + return costPerConversionChangePointEstimate_; + } + + public static final int CONTROL_CONVERSIONS_FIELD_NUMBER = 450; + private double controlConversions_ = 0D; + /** + *
+   * The conversions metric on the control arm of the experiment.
+   * The treatment conversions value can be selected by using
+   * `conversions`.
+   * 
+ * + * optional double control_conversions = 450; + * @return Whether the controlConversions field is set. + */ + @java.lang.Override + public boolean hasControlConversions() { + return ((bitField7_ & 0x00200000) != 0); + } + /** + *
+   * The conversions metric on the control arm of the experiment.
+   * The treatment conversions value can be selected by using
+   * `conversions`.
+   * 
+ * + * optional double control_conversions = 450; + * @return The controlConversions. + */ + @java.lang.Override + public double getControlConversions() { + return controlConversions_; + } + + public static final int CONVERSIONS_ABSOLUTE_CHANGE_MARGIN_OF_ERROR_FIELD_NUMBER = 451; + private double conversionsAbsoluteChangeMarginOfError_ = 0D; + /** + *
+   * The margin of error when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the radius of the confidence
+   * interval, which is centered at
+   * `conversions_absolute_change_point_estimate`.
+   * 
+ * + * optional double conversions_absolute_change_margin_of_error = 451; + * @return Whether the conversionsAbsoluteChangeMarginOfError field is set. + */ + @java.lang.Override + public boolean hasConversionsAbsoluteChangeMarginOfError() { + return ((bitField7_ & 0x00400000) != 0); + } + /** + *
+   * The margin of error when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the radius of the confidence
+   * interval, which is centered at
+   * `conversions_absolute_change_point_estimate`.
+   * 
+ * + * optional double conversions_absolute_change_margin_of_error = 451; + * @return The conversionsAbsoluteChangeMarginOfError. + */ + @java.lang.Override + public double getConversionsAbsoluteChangeMarginOfError() { + return conversionsAbsoluteChangeMarginOfError_; + } + + public static final int CONVERSIONS_ABSOLUTE_CHANGE_P_VALUE_FIELD_NUMBER = 452; + private double conversionsAbsoluteChangePValue_ = 0D; + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversions absolute change. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversions absolute change, is
+   * 3%.
+   * 
+ * + * optional double conversions_absolute_change_p_value = 452; + * @return Whether the conversionsAbsoluteChangePValue field is set. + */ + @java.lang.Override + public boolean hasConversionsAbsoluteChangePValue() { + return ((bitField7_ & 0x00800000) != 0); + } + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversions absolute change. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversions absolute change, is
+   * 3%.
+   * 
+ * + * optional double conversions_absolute_change_p_value = 452; + * @return The conversionsAbsoluteChangePValue. + */ + @java.lang.Override + public double getConversionsAbsoluteChangePValue() { + return conversionsAbsoluteChangePValue_; + } + + public static final int CONVERSIONS_ABSOLUTE_CHANGE_POINT_ESTIMATE_FIELD_NUMBER = 453; + private double conversionsAbsoluteChangePointEstimate_ = 0D; + /** + *
+   * The point estimate when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the point estimate, which is
+   * the center of the confidence interval:
+   * `(conversions_absolute_change_point_estimate -
+   * conversions_absolute_change_margin_of_error,
+   * conversions_absolute_change_point_estimate +
+   * conversions_absolute_change_margin_of_error)`.
+   * 
+ * + * optional double conversions_absolute_change_point_estimate = 453; + * @return Whether the conversionsAbsoluteChangePointEstimate field is set. + */ + @java.lang.Override + public boolean hasConversionsAbsoluteChangePointEstimate() { + return ((bitField7_ & 0x01000000) != 0); + } + /** + *
+   * The point estimate when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the point estimate, which is
+   * the center of the confidence interval:
+   * `(conversions_absolute_change_point_estimate -
+   * conversions_absolute_change_margin_of_error,
+   * conversions_absolute_change_point_estimate +
+   * conversions_absolute_change_margin_of_error)`.
+   * 
+ * + * optional double conversions_absolute_change_point_estimate = 453; + * @return The conversionsAbsoluteChangePointEstimate. + */ + @java.lang.Override + public double getConversionsAbsoluteChangePointEstimate() { + return conversionsAbsoluteChangePointEstimate_; + } + + public static final int CONTROL_CONVERSION_VALUE_PER_COST_FIELD_NUMBER = 454; + private double controlConversionValuePerCost_ = 0D; + /** + *
+   * The conversion value per cost metric on the control arm of the
+   * experiment. The treatment conversion value per cost value can be
+   * selected by using `conversions_value_per_cost`.
+   * 
+ * + * optional double control_conversion_value_per_cost = 454; + * @return Whether the controlConversionValuePerCost field is set. + */ + @java.lang.Override + public boolean hasControlConversionValuePerCost() { + return ((bitField7_ & 0x02000000) != 0); + } + /** + *
+   * The conversion value per cost metric on the control arm of the
+   * experiment. The treatment conversion value per cost value can be
+   * selected by using `conversions_value_per_cost`.
+   * 
+ * + * optional double control_conversion_value_per_cost = 454; + * @return The controlConversionValuePerCost. + */ + @java.lang.Override + public double getControlConversionValuePerCost() { + return controlConversionValuePerCost_; + } + + public static final int CONVERSION_VALUE_PER_COST_MARGIN_OF_ERROR_FIELD_NUMBER = 455; + private double conversionValuePerCostMarginOfError_ = 0D; + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value per cost.
+   *
+   * Together with `conversion_value_per_cost_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_per_cost_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_per_cost_margin_of_error = 455; + * @return Whether the conversionValuePerCostMarginOfError field is set. + */ + @java.lang.Override + public boolean hasConversionValuePerCostMarginOfError() { + return ((bitField7_ & 0x04000000) != 0); + } + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value per cost.
+   *
+   * Together with `conversion_value_per_cost_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_per_cost_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_per_cost_margin_of_error = 455; + * @return The conversionValuePerCostMarginOfError. + */ + @java.lang.Override + public double getConversionValuePerCostMarginOfError() { + return conversionValuePerCostMarginOfError_; + } + + public static final int CONVERSION_VALUE_PER_COST_P_VALUE_FIELD_NUMBER = 456; + private double conversionValuePerCostPValue_ = 0D; + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value per cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value per cost, is 3%.
+   * 
+ * + * optional double conversion_value_per_cost_p_value = 456; + * @return Whether the conversionValuePerCostPValue field is set. + */ + @java.lang.Override + public boolean hasConversionValuePerCostPValue() { + return ((bitField7_ & 0x08000000) != 0); + } + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value per cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value per cost, is 3%.
+   * 
+ * + * optional double conversion_value_per_cost_p_value = 456; + * @return The conversionValuePerCostPValue. + */ + @java.lang.Override + public double getConversionValuePerCostPValue() { + return conversionValuePerCostPValue_; + } + + public static final int CONVERSION_VALUE_PER_COST_CHANGE_POINT_ESTIMATE_FIELD_NUMBER = 457; + private double conversionValuePerCostChangePointEstimate_ = 0D; + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value per cost change.
+   *
+   * Together with `conversion_value_per_cost_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_per_cost_change_point_estimate -
+   * conversion_value_per_cost_margin_of_error,
+   * conversion_value_per_cost_change_point_estimate +
+   * conversion_value_per_cost_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_per_cost_change_point_estimate = 457; + * @return Whether the conversionValuePerCostChangePointEstimate field is set. + */ + @java.lang.Override + public boolean hasConversionValuePerCostChangePointEstimate() { + return ((bitField7_ & 0x10000000) != 0); + } + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value per cost change.
+   *
+   * Together with `conversion_value_per_cost_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_per_cost_change_point_estimate -
+   * conversion_value_per_cost_margin_of_error,
+   * conversion_value_per_cost_change_point_estimate +
+   * conversion_value_per_cost_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_per_cost_change_point_estimate = 457; + * @return The conversionValuePerCostChangePointEstimate. + */ + @java.lang.Override + public double getConversionValuePerCostChangePointEstimate() { + return conversionValuePerCostChangePointEstimate_; + } + + public static final int CONTROL_COST_MICROS_FIELD_NUMBER = 458; + private long controlCostMicros_ = 0L; + /** + *
+   * The cost metric on the control arm of the experiment.
+   * The treatment cost value can be selected by using `cost_micros`.
+   * 
+ * + * optional int64 control_cost_micros = 458; + * @return Whether the controlCostMicros field is set. + */ + @java.lang.Override + public boolean hasControlCostMicros() { + return ((bitField7_ & 0x20000000) != 0); + } + /** + *
+   * The cost metric on the control arm of the experiment.
+   * The treatment cost value can be selected by using `cost_micros`.
+   * 
+ * + * optional int64 control_cost_micros = 458; + * @return The controlCostMicros. + */ + @java.lang.Override + public long getControlCostMicros() { + return controlCostMicros_; + } + + public static final int COST_MICROS_MARGIN_OF_ERROR_FIELD_NUMBER = 459; + private double costMicrosMarginOfError_ = 0D; + /** + *
+   * The margin of error when estimating the experiment's effect on cost.
+   *
+   * Together with `cost_micros_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_micros_change_point_estimate`.
+   * 
+ * + * optional double cost_micros_margin_of_error = 459; + * @return Whether the costMicrosMarginOfError field is set. + */ + @java.lang.Override + public boolean hasCostMicrosMarginOfError() { + return ((bitField7_ & 0x40000000) != 0); + } + /** + *
+   * The margin of error when estimating the experiment's effect on cost.
+   *
+   * Together with `cost_micros_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_micros_change_point_estimate`.
+   * 
+ * + * optional double cost_micros_margin_of_error = 459; + * @return The costMicrosMarginOfError. + */ + @java.lang.Override + public double getCostMicrosMarginOfError() { + return costMicrosMarginOfError_; + } + + public static final int COST_MICROS_P_VALUE_FIELD_NUMBER = 460; + private double costMicrosPValue_ = 0D; + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost, is 3%.
+   * 
+ * + * optional double cost_micros_p_value = 460; + * @return Whether the costMicrosPValue field is set. + */ + @java.lang.Override + public boolean hasCostMicrosPValue() { + return ((bitField7_ & 0x80000000) != 0); + } + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost, is 3%.
+   * 
+ * + * optional double cost_micros_p_value = 460; + * @return The costMicrosPValue. + */ + @java.lang.Override + public double getCostMicrosPValue() { + return costMicrosPValue_; + } + + public static final int COST_MICROS_CHANGE_POINT_ESTIMATE_FIELD_NUMBER = 461; + private double costMicrosChangePointEstimate_ = 0D; + /** + *
+   * The point estimate when estimating the experiment's effect on cost change.
+   *
+   * Together with `cost_micros_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+   * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
+   * 
+ * + * optional double cost_micros_change_point_estimate = 461; + * @return Whether the costMicrosChangePointEstimate field is set. + */ + @java.lang.Override + public boolean hasCostMicrosChangePointEstimate() { + return ((bitField8_ & 0x00000001) != 0); + } + /** + *
+   * The point estimate when estimating the experiment's effect on cost change.
+   *
+   * Together with `cost_micros_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+   * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
+   * 
+ * + * optional double cost_micros_change_point_estimate = 461; + * @return The costMicrosChangePointEstimate. + */ + @java.lang.Override + public double getCostMicrosChangePointEstimate() { + return costMicrosChangePointEstimate_; + } + + public static final int CONTROL_IMPRESSIONS_FIELD_NUMBER = 462; + private long controlImpressions_ = 0L; + /** + *
+   * The impressions metric on the control arm of the experiment.
+   * The treatment impressions value can be selected by using `impressions`.
+   * 
+ * + * optional int64 control_impressions = 462; + * @return Whether the controlImpressions field is set. + */ + @java.lang.Override + public boolean hasControlImpressions() { + return ((bitField8_ & 0x00000002) != 0); + } + /** + *
+   * The impressions metric on the control arm of the experiment.
+   * The treatment impressions value can be selected by using `impressions`.
+   * 
+ * + * optional int64 control_impressions = 462; + * @return The controlImpressions. + */ + @java.lang.Override + public long getControlImpressions() { + return controlImpressions_; + } + + public static final int IMPRESSIONS_MARGIN_OF_ERROR_FIELD_NUMBER = 463; + private double impressionsMarginOfError_ = 0D; + /** + *
+   * The margin of error when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `impressions_point_estimate`.
+   * 
+ * + * optional double impressions_margin_of_error = 463; + * @return Whether the impressionsMarginOfError field is set. + */ + @java.lang.Override + public boolean hasImpressionsMarginOfError() { + return ((bitField8_ & 0x00000004) != 0); + } + /** + *
+   * The margin of error when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `impressions_point_estimate`.
+   * 
+ * + * optional double impressions_margin_of_error = 463; + * @return The impressionsMarginOfError. + */ + @java.lang.Override + public double getImpressionsMarginOfError() { + return impressionsMarginOfError_; + } + + public static final int IMPRESSIONS_P_VALUE_FIELD_NUMBER = 464; + private double impressionsPValue_ = 0D; + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * impressions. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on impressions, is 3%.
+   * 
+ * + * optional double impressions_p_value = 464; + * @return Whether the impressionsPValue field is set. + */ + @java.lang.Override + public boolean hasImpressionsPValue() { + return ((bitField8_ & 0x00000008) != 0); + } + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * impressions. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on impressions, is 3%.
+   * 
+ * + * optional double impressions_p_value = 464; + * @return The impressionsPValue. + */ + @java.lang.Override + public double getImpressionsPValue() { + return impressionsPValue_; + } + + public static final int IMPRESSIONS_POINT_ESTIMATE_FIELD_NUMBER = 465; + private double impressionsPointEstimate_ = 0D; + /** + *
+   * The point estimate when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(impressions_point_estimate - impressions_margin_of_error,
+   * impressions_point_estimate + impressions_margin_of_error)`.
+   * 
+ * + * optional double impressions_point_estimate = 465; + * @return Whether the impressionsPointEstimate field is set. + */ + @java.lang.Override + public boolean hasImpressionsPointEstimate() { + return ((bitField8_ & 0x00000010) != 0); + } + /** + *
+   * The point estimate when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(impressions_point_estimate - impressions_margin_of_error,
+   * impressions_point_estimate + impressions_margin_of_error)`.
+   * 
+ * + * optional double impressions_point_estimate = 465; + * @return The impressionsPointEstimate. + */ + @java.lang.Override + public double getImpressionsPointEstimate() { + return impressionsPointEstimate_; + } + + public static final int CLICKS_MARGIN_OF_ERROR_FIELD_NUMBER = 466; + private double clicksMarginOfError_ = 0D; + /** + *
+   * The margin of error when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at `clicks_point_estimate`.
+   * 
+ * + * optional double clicks_margin_of_error = 466; + * @return Whether the clicksMarginOfError field is set. + */ + @java.lang.Override + public boolean hasClicksMarginOfError() { + return ((bitField8_ & 0x00000020) != 0); + } + /** + *
+   * The margin of error when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at `clicks_point_estimate`.
+   * 
+ * + * optional double clicks_margin_of_error = 466; + * @return The clicksMarginOfError. + */ + @java.lang.Override + public double getClicksMarginOfError() { + return clicksMarginOfError_; + } + + public static final int CLICKS_P_VALUE_FIELD_NUMBER = 467; + private double clicksPValue_ = 0D; + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * clicks. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on clicks, is 3%.
+   * 
+ * + * optional double clicks_p_value = 467; + * @return Whether the clicksPValue field is set. + */ + @java.lang.Override + public boolean hasClicksPValue() { + return ((bitField8_ & 0x00000040) != 0); + } + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * clicks. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on clicks, is 3%.
+   * 
+ * + * optional double clicks_p_value = 467; + * @return The clicksPValue. + */ + @java.lang.Override + public double getClicksPValue() { + return clicksPValue_; + } + + public static final int CLICKS_POINT_ESTIMATE_FIELD_NUMBER = 468; + private double clicksPointEstimate_ = 0D; + /** + *
+   * The point estimate when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval: `(clicks_point_estimate -
+   * clicks_margin_of_error,
+   * clicks_point_estimate + clicks_margin_of_error)`.
+   * 
+ * + * optional double clicks_point_estimate = 468; + * @return Whether the clicksPointEstimate field is set. + */ + @java.lang.Override + public boolean hasClicksPointEstimate() { + return ((bitField8_ & 0x00000080) != 0); + } + /** + *
+   * The point estimate when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval: `(clicks_point_estimate -
+   * clicks_margin_of_error,
+   * clicks_point_estimate + clicks_margin_of_error)`.
+   * 
+ * + * optional double clicks_point_estimate = 468; + * @return The clicksPointEstimate. + */ + @java.lang.Override + public double getClicksPointEstimate() { + return clicksPointEstimate_; + } + + public static final int CONTROL_CONVERSION_VALUE_FIELD_NUMBER = 469; + private double controlConversionValue_ = 0D; + /** + *
+   * The conversion value metric on the control arm of the experiment.
+   * The treatment conversion value can be selected by using
+   * `conversions_value`.
+   * 
+ * + * optional double control_conversion_value = 469; + * @return Whether the controlConversionValue field is set. + */ + @java.lang.Override + public boolean hasControlConversionValue() { + return ((bitField8_ & 0x00000100) != 0); + } + /** + *
+   * The conversion value metric on the control arm of the experiment.
+   * The treatment conversion value can be selected by using
+   * `conversions_value`.
+   * 
+ * + * optional double control_conversion_value = 469; + * @return The controlConversionValue. + */ + @java.lang.Override + public double getControlConversionValue() { + return controlConversionValue_; + } + + public static final int CONVERSION_VALUE_MARGIN_OF_ERROR_FIELD_NUMBER = 470; + private double conversionValueMarginOfError_ = 0D; + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value.
+   *
+   * Together with `conversion_value_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_margin_of_error = 470; + * @return Whether the conversionValueMarginOfError field is set. + */ + @java.lang.Override + public boolean hasConversionValueMarginOfError() { + return ((bitField8_ & 0x00000200) != 0); + } + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value.
+   *
+   * Together with `conversion_value_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_margin_of_error = 470; + * @return The conversionValueMarginOfError. + */ + @java.lang.Override + public double getConversionValueMarginOfError() { + return conversionValueMarginOfError_; + } + + public static final int CONVERSION_VALUE_P_VALUE_FIELD_NUMBER = 471; + private double conversionValuePValue_ = 0D; + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value, is 3%.
+   * 
+ * + * optional double conversion_value_p_value = 471; + * @return Whether the conversionValuePValue field is set. + */ + @java.lang.Override + public boolean hasConversionValuePValue() { + return ((bitField8_ & 0x00000400) != 0); + } + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value, is 3%.
+   * 
+ * + * optional double conversion_value_p_value = 471; + * @return The conversionValuePValue. + */ + @java.lang.Override + public double getConversionValuePValue() { + return conversionValuePValue_; + } + + public static final int CONVERSION_VALUE_CHANGE_POINT_ESTIMATE_FIELD_NUMBER = 472; + private double conversionValueChangePointEstimate_ = 0D; + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value change.
+   *
+   * Together with `conversion_value_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_change_point_estimate -
+   * conversion_value_margin_of_error,
+   * conversion_value_change_point_estimate +
+   * conversion_value_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_change_point_estimate = 472; + * @return Whether the conversionValueChangePointEstimate field is set. + */ + @java.lang.Override + public boolean hasConversionValueChangePointEstimate() { + return ((bitField8_ & 0x00000800) != 0); + } + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value change.
+   *
+   * Together with `conversion_value_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_change_point_estimate -
+   * conversion_value_margin_of_error,
+   * conversion_value_change_point_estimate +
+   * conversion_value_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_change_point_estimate = 472; + * @return The conversionValueChangePointEstimate. + */ + @java.lang.Override + public double getConversionValueChangePointEstimate() { + return conversionValueChangePointEstimate_; + } + + 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.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { + output.writeEnum(80, historicalCreativeQualityScore_); } - if (((bitField3_ & 0x00000200) != 0)) { - output.writeInt64(236, phoneCalls_); + if (historicalLandingPageQualityScore_ != com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { + output.writeEnum(81, historicalLandingPageQualityScore_); } - if (((bitField3_ & 0x00000400) != 0)) { - output.writeInt64(237, phoneImpressions_); + if (historicalSearchPredictedCtr_ != com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNSPECIFIED.getNumber()) { + output.writeEnum(83, historicalSearchPredictedCtr_); } - if (((bitField3_ & 0x00000800) != 0)) { - output.writeDouble(238, phoneThroughRate_); + if (getInteractionEventTypesList().size() > 0) { + output.writeUInt32NoTag(802); + output.writeUInt32NoTag(interactionEventTypesMemoizedSerializedSize); } - if (((bitField3_ & 0x00001000) != 0)) { - output.writeDouble(239, relativeCtr_); + for (int i = 0; i < interactionEventTypes_.size(); i++) { + output.writeEnumNoTag(interactionEventTypes_.getInt(i)); } - if (((bitField0_ & 0x00000400) != 0)) { - output.writeDouble(240, allConversionsValueByConversionDate_); + if (((bitField1_ & 0x00000400) != 0)) { + output.writeInt64(131, clicks_); } - if (((bitField0_ & 0x00002000) != 0)) { - output.writeDouble(241, allConversionsByConversionDate_); + if (((bitField4_ & 0x00000010) != 0)) { + output.writeDouble(132, videoQuartileP100Rate_); } - if (((bitField1_ & 0x00200000) != 0)) { - output.writeDouble(242, conversionsValueByConversionDate_); + if (((bitField4_ & 0x00000020) != 0)) { + output.writeDouble(133, videoQuartileP25Rate_); } - if (((bitField1_ & 0x04000000) != 0)) { - output.writeDouble(243, conversionsByConversionDate_); + if (((bitField4_ & 0x00000040) != 0)) { + output.writeDouble(134, videoQuartileP50Rate_); } - if (((bitField3_ & 0x80000000) != 0)) { - output.writeDouble(244, valuePerAllConversionsByConversionDate_); + if (((bitField4_ & 0x00000080) != 0)) { + output.writeDouble(135, videoQuartileP75Rate_); } - if (((bitField4_ & 0x00000002) != 0)) { - output.writeDouble(245, valuePerConversionsByConversionDate_); + if (((bitField3_ & 0x00004000) != 0)) { + output.writeDouble(136, searchAbsoluteTopImpressionShare_); } - if (skAdNetworkInstalls_ != 0L) { - output.writeInt64(246, skAdNetworkInstalls_); + if (((bitField3_ & 0x00008000) != 0)) { + output.writeDouble(137, searchBudgetLostAbsoluteTopImpressionShare_); } - if (((bitField3_ & 0x00000002) != 0)) { - output.writeDouble(247, optimizationScoreUplift_); + if (((bitField3_ & 0x00010000) != 0)) { + output.writeDouble(138, searchBudgetLostImpressionShare_); } - if (((bitField3_ & 0x00000004) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 248, optimizationScoreUrl_); + if (((bitField3_ & 0x00020000) != 0)) { + output.writeDouble(139, searchBudgetLostTopImpressionShare_); } - if (((bitField3_ & 0x08000000) != 0)) { - output.writeDouble(250, averageTargetRoas_); + if (((bitField3_ & 0x00040000) != 0)) { + output.writeDouble(140, searchClickShare_); } - if (((bitField2_ & 0x00000002) != 0)) { - output.writeDouble(253, crossDeviceConversionsValue_); + if (((bitField3_ & 0x00080000) != 0)) { + output.writeDouble(141, searchExactMatchImpressionShare_); } - if (((bitField1_ & 0x00000020) != 0)) { - output.writeDouble(254, biddableAppInstallConversions_); + if (((bitField3_ & 0x00100000) != 0)) { + output.writeDouble(142, searchImpressionShare_); } - if (((bitField1_ & 0x00000040) != 0)) { - output.writeDouble(255, biddableAppPostInstallConversions_); + if (((bitField3_ & 0x00200000) != 0)) { + output.writeDouble(143, searchRankLostAbsoluteTopImpressionShare_); } - if (((bitField2_ & 0x00002000) != 0)) { - output.writeInt64(256, hotelCommissionRateMicros_); + if (((bitField3_ & 0x00400000) != 0)) { + output.writeDouble(144, searchRankLostImpressionShare_); } - if (((bitField2_ & 0x00004000) != 0)) { - output.writeDouble(257, hotelExpectedCommissionCost_); + if (((bitField3_ & 0x00800000) != 0)) { + output.writeDouble(145, searchRankLostTopImpressionShare_); } - if (((bitField0_ & 0x00800000) != 0)) { - output.writeDouble(258, auctionInsightSearchAbsoluteTopImpressionPercentage_); + if (((bitField3_ & 0x01000000) != 0)) { + output.writeDouble(146, searchTopImpressionShare_); } - if (((bitField0_ & 0x01000000) != 0)) { - output.writeDouble(259, auctionInsightSearchImpressionShare_); + if (((bitField3_ & 0x04000000) != 0)) { + output.writeInt64(147, speedScore_); } - if (((bitField0_ & 0x02000000) != 0)) { + if (((bitField3_ & 0x20000000) != 0)) { + output.writeDouble(148, topImpressionPercentage_); + } + if (((bitField3_ & 0x40000000) != 0)) { + output.writeDouble(149, validAcceleratedMobilePagesClicksPercentage_); + } + if (((bitField3_ & 0x80000000) != 0)) { + output.writeDouble(150, valuePerAllConversions_); + } + if (((bitField4_ & 0x00000002) != 0)) { + output.writeDouble(151, valuePerConversion_); + } + if (((bitField4_ & 0x00000008) != 0)) { + output.writeDouble(152, valuePerCurrentModelAttributedConversion_); + } + if (((bitField4_ & 0x00000400) != 0)) { + output.writeInt64(155, viewThroughConversions_); + } + if (((bitField1_ & 0x00001000) != 0)) { + output.writeInt64(156, combinedClicks_); + } + if (((bitField1_ & 0x00002000) != 0)) { + output.writeDouble(157, combinedClicksPerQuery_); + } + if (((bitField1_ & 0x00004000) != 0)) { + output.writeInt64(158, combinedQueries_); + } + if (((bitField1_ & 0x00008000) != 0)) { + output.writeDouble(159, contentBudgetLostImpressionShare_); + } + if (((bitField1_ & 0x00010000) != 0)) { + output.writeDouble(160, contentImpressionShare_); + } + if (((bitField1_ & 0x00020000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 161, conversionLastReceivedRequestDateTime_); + } + if (((bitField1_ & 0x00040000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 162, conversionLastConversionDate_); + } + if (((bitField1_ & 0x00080000) != 0)) { + output.writeDouble(163, contentRankLostImpressionShare_); + } + if (((bitField1_ & 0x00100000) != 0)) { + output.writeDouble(164, conversionsFromInteractionsRate_); + } + if (((bitField1_ & 0x00200000) != 0)) { + output.writeDouble(165, conversionsValue_); + } + if (((bitField1_ & 0x01000000) != 0)) { + output.writeDouble(166, conversionsValuePerCost_); + } + if (((bitField1_ & 0x02000000) != 0)) { + output.writeDouble(167, conversionsFromInteractionsValuePerInteraction_); + } + if (((bitField1_ & 0x04000000) != 0)) { + output.writeDouble(168, conversions_); + } + if (((bitField1_ & 0x10000000) != 0)) { + output.writeInt64(169, costMicros_); + } + if (((bitField1_ & 0x20000000) != 0)) { + output.writeDouble(170, costPerAllConversions_); + } + if (((bitField1_ & 0x40000000) != 0)) { + output.writeDouble(171, costPerConversion_); + } + if (((bitField1_ & 0x80000000) != 0)) { + output.writeDouble(172, costPerCurrentModelAttributedConversion_); + } + if (((bitField2_ & 0x00000001) != 0)) { + output.writeDouble(173, crossDeviceConversions_); + } + if (((bitField2_ & 0x00000020) != 0)) { + output.writeDouble(174, ctr_); + } + if (((bitField2_ & 0x00000040) != 0)) { + output.writeDouble(175, currentModelAttributedConversions_); + } + if (((bitField2_ & 0x00000080) != 0)) { + output.writeDouble(176, currentModelAttributedConversionsFromInteractionsRate_); + } + if (((bitField2_ & 0x00000100) != 0)) { + output.writeDouble(177, currentModelAttributedConversionsFromInteractionsValuePerInteraction_); + } + if (((bitField2_ & 0x00000200) != 0)) { + output.writeDouble(178, currentModelAttributedConversionsValue_); + } + if (((bitField2_ & 0x00000400) != 0)) { + output.writeDouble(179, currentModelAttributedConversionsValuePerCost_); + } + if (((bitField2_ & 0x00000800) != 0)) { + output.writeDouble(180, engagementRate_); + } + if (((bitField2_ & 0x00001000) != 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_ & 0x00001000) != 0)) { + output.writeDouble(193, allConversions_); + } + if (((bitField0_ & 0x00004000) != 0)) { + output.writeDouble(194, allConversionsValuePerCost_); + } + if (((bitField0_ & 0x00008000) != 0)) { + output.writeDouble(195, allConversionsFromClickToCall_); + } + if (((bitField0_ & 0x00010000) != 0)) { + output.writeDouble(196, allConversionsFromDirections_); + } + if (((bitField0_ & 0x00020000) != 0)) { + output.writeDouble(197, allConversionsFromInteractionsValuePerInteraction_); + } + if (((bitField0_ & 0x00040000) != 0)) { + output.writeDouble(198, allConversionsFromMenu_); + } + if (((bitField0_ & 0x00080000) != 0)) { + output.writeDouble(199, allConversionsFromOrder_); + } + if (((bitField0_ & 0x00100000) != 0)) { + output.writeDouble(200, allConversionsFromOtherEngagement_); + } + if (((bitField0_ & 0x00200000) != 0)) { + output.writeDouble(201, allConversionsFromStoreVisit_); + } + if (((bitField0_ & 0x00400000) != 0)) { + output.writeDouble(202, allConversionsFromStoreWebsite_); + } + if (((bitField0_ & 0x20000000) != 0)) { + output.writeDouble(203, averageCost_); + } + if (((bitField0_ & 0x40000000) != 0)) { + output.writeDouble(204, averageCpc_); + } + if (((bitField0_ & 0x80000000) != 0)) { + output.writeDouble(205, averageCpe_); + } + if (((bitField1_ & 0x00000001) != 0)) { + output.writeDouble(206, averageCpm_); + } + if (((bitField1_ & 0x00000004) != 0)) { + output.writeDouble(208, averagePageViews_); + } + if (((bitField1_ & 0x00000008) != 0)) { + output.writeDouble(209, averageTimeOnSite_); + } + if (((bitField1_ & 0x00000010) != 0)) { + output.writeDouble(210, benchmarkAverageMaxCpc_); + } + if (((bitField1_ & 0x00000100) != 0)) { + output.writeDouble(211, benchmarkCtr_); + } + if (((bitField1_ & 0x00000200) != 0)) { + output.writeDouble(212, bounceRate_); + } + if (((bitField2_ & 0x00002000) != 0)) { + output.writeDouble(213, hotelAverageLeadValueMicros_); + } + if (((bitField2_ & 0x00010000) != 0)) { + output.writeDouble(214, hotelPriceDifferencePercentage_); + } + if (((bitField2_ & 0x00020000) != 0)) { + output.writeInt64(215, hotelEligibleImpressions_); + } + if (((bitField2_ & 0x00040000) != 0)) { + output.writeInt64(216, historicalQualityScore_); + } + if (((bitField2_ & 0x00080000) != 0)) { + output.writeInt64(217, gmailForwards_); + } + if (((bitField2_ & 0x00100000) != 0)) { + output.writeInt64(218, gmailSaves_); + } + if (((bitField2_ & 0x00200000) != 0)) { + output.writeInt64(219, gmailSecondaryClicks_); + } + if (((bitField2_ & 0x00400000) != 0)) { + output.writeInt64(220, impressionsFromStoreReach_); + } + if (((bitField2_ & 0x00800000) != 0)) { + output.writeInt64(221, impressions_); + } + if (((bitField2_ & 0x01000000) != 0)) { + output.writeDouble(222, interactionRate_); + } + if (((bitField2_ & 0x02000000) != 0)) { + output.writeInt64(223, interactions_); + } + if (((bitField2_ & 0x04000000) != 0)) { + output.writeDouble(224, invalidClickRate_); + } + if (((bitField2_ & 0x08000000) != 0)) { + output.writeInt64(225, invalidClicks_); + } + if (((bitField2_ & 0x40000000) != 0)) { + output.writeInt64(226, messageChats_); + } + if (((bitField2_ & 0x80000000) != 0)) { + output.writeInt64(227, messageImpressions_); + } + if (((bitField3_ & 0x00000001) != 0)) { + output.writeDouble(228, messageChatRate_); + } + if (((bitField3_ & 0x00000002) != 0)) { + output.writeDouble(229, mobileFriendlyClicksPercentage_); + } + if (((bitField3_ & 0x00000010) != 0)) { + output.writeInt64(230, organicClicks_); + } + if (((bitField3_ & 0x00000020) != 0)) { + output.writeDouble(231, organicClicksPerQuery_); + } + if (((bitField3_ & 0x00000040) != 0)) { + output.writeInt64(232, organicImpressions_); + } + if (((bitField3_ & 0x00000080) != 0)) { + output.writeDouble(233, organicImpressionsPerQuery_); + } + if (((bitField3_ & 0x00000100) != 0)) { + output.writeInt64(234, organicQueries_); + } + if (((bitField3_ & 0x00000200) != 0)) { + output.writeDouble(235, percentNewVisitors_); + } + if (((bitField3_ & 0x00000400) != 0)) { + output.writeInt64(236, phoneCalls_); + } + if (((bitField3_ & 0x00000800) != 0)) { + output.writeInt64(237, phoneImpressions_); + } + if (((bitField3_ & 0x00001000) != 0)) { + output.writeDouble(238, phoneThroughRate_); + } + if (((bitField3_ & 0x00002000) != 0)) { + output.writeDouble(239, relativeCtr_); + } + if (((bitField0_ & 0x00000400) != 0)) { + output.writeDouble(240, allConversionsValueByConversionDate_); + } + if (((bitField0_ & 0x00002000) != 0)) { + output.writeDouble(241, allConversionsByConversionDate_); + } + if (((bitField1_ & 0x00400000) != 0)) { + output.writeDouble(242, conversionsValueByConversionDate_); + } + if (((bitField1_ & 0x08000000) != 0)) { + output.writeDouble(243, conversionsByConversionDate_); + } + if (((bitField4_ & 0x00000001) != 0)) { + output.writeDouble(244, valuePerAllConversionsByConversionDate_); + } + if (((bitField4_ & 0x00000004) != 0)) { + output.writeDouble(245, valuePerConversionsByConversionDate_); + } + if (skAdNetworkInstalls_ != 0L) { + output.writeInt64(246, skAdNetworkInstalls_); + } + if (((bitField3_ & 0x00000004) != 0)) { + output.writeDouble(247, optimizationScoreUplift_); + } + if (((bitField3_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 248, optimizationScoreUrl_); + } + if (((bitField3_ & 0x10000000) != 0)) { + output.writeDouble(250, averageTargetRoas_); + } + if (((bitField2_ & 0x00000004) != 0)) { + output.writeDouble(253, crossDeviceConversionsValue_); + } + if (((bitField1_ & 0x00000020) != 0)) { + output.writeDouble(254, biddableAppInstallConversions_); + } + if (((bitField1_ & 0x00000040) != 0)) { + output.writeDouble(255, biddableAppPostInstallConversions_); + } + if (((bitField2_ & 0x00004000) != 0)) { + output.writeInt64(256, hotelCommissionRateMicros_); + } + if (((bitField2_ & 0x00008000) != 0)) { + output.writeDouble(257, hotelExpectedCommissionCost_); + } + if (((bitField0_ & 0x00800000) != 0)) { + output.writeDouble(258, auctionInsightSearchAbsoluteTopImpressionPercentage_); + } + if (((bitField0_ & 0x01000000) != 0)) { + output.writeDouble(259, auctionInsightSearchImpressionShare_); + } + if (((bitField0_ & 0x02000000) != 0)) { output.writeDouble(260, auctionInsightSearchOutrankingShare_); } if (((bitField0_ & 0x04000000) != 0)) { @@ -8759,357 +9836,441 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (publisherUnknownClicks_ != 0L) { output.writeInt64(266, publisherUnknownClicks_); } - if (((bitField4_ & 0x00000400) != 0)) { + if (((bitField4_ & 0x00000800) != 0)) { output.writeDouble(267, allConversionsFromLocationAssetClickToCall_); } - if (((bitField4_ & 0x00000800) != 0)) { + if (((bitField4_ & 0x00001000) != 0)) { output.writeDouble(268, allConversionsFromLocationAssetDirections_); } - if (((bitField4_ & 0x00001000) != 0)) { + if (((bitField4_ & 0x00002000) != 0)) { output.writeDouble(269, allConversionsFromLocationAssetMenu_); } - if (((bitField4_ & 0x00002000) != 0)) { + if (((bitField4_ & 0x00004000) != 0)) { output.writeDouble(270, allConversionsFromLocationAssetOrder_); } - if (((bitField4_ & 0x00004000) != 0)) { + if (((bitField4_ & 0x00008000) != 0)) { output.writeDouble(271, allConversionsFromLocationAssetOtherEngagement_); } - if (((bitField4_ & 0x00008000) != 0)) { + if (((bitField4_ & 0x00010000) != 0)) { output.writeDouble(272, allConversionsFromLocationAssetStoreVisits_); } - if (((bitField4_ & 0x00010000) != 0)) { + if (((bitField4_ & 0x00020000) != 0)) { output.writeDouble(273, allConversionsFromLocationAssetWebsite_); } - if (((bitField4_ & 0x00020000) != 0)) { + if (((bitField4_ & 0x00040000) != 0)) { output.writeInt64(274, eligibleImpressionsFromLocationAssetStoreReach_); } - if (((bitField4_ & 0x00040000) != 0)) { + if (((bitField4_ & 0x00080000) != 0)) { output.writeDouble(275, viewThroughConversionsFromLocationAssetClickToCall_); } - if (((bitField4_ & 0x00080000) != 0)) { + if (((bitField4_ & 0x00100000) != 0)) { output.writeDouble(276, viewThroughConversionsFromLocationAssetDirections_); } - if (((bitField4_ & 0x00100000) != 0)) { + if (((bitField4_ & 0x00200000) != 0)) { output.writeDouble(277, viewThroughConversionsFromLocationAssetMenu_); } - if (((bitField4_ & 0x00200000) != 0)) { + if (((bitField4_ & 0x00400000) != 0)) { output.writeDouble(278, viewThroughConversionsFromLocationAssetOrder_); } - if (((bitField4_ & 0x00400000) != 0)) { + if (((bitField4_ & 0x00800000) != 0)) { output.writeDouble(279, viewThroughConversionsFromLocationAssetOtherEngagement_); } - if (((bitField4_ & 0x00800000) != 0)) { + if (((bitField4_ & 0x01000000) != 0)) { output.writeDouble(280, viewThroughConversionsFromLocationAssetStoreVisits_); } - if (((bitField4_ & 0x01000000) != 0)) { + if (((bitField4_ & 0x02000000) != 0)) { output.writeDouble(281, viewThroughConversionsFromLocationAssetWebsite_); } - if (((bitField3_ & 0x04000000) != 0)) { + if (((bitField3_ & 0x08000000) != 0)) { output.writeInt64(290, averageTargetCpaMicros_); } if (skAdNetworkTotalConversions_ != 0L) { output.writeInt64(292, skAdNetworkTotalConversions_); } - if (((bitField1_ & 0x00400000) != 0)) { + if (((bitField1_ & 0x00800000) != 0)) { output.writeDouble(293, newCustomerLifetimeValue_); } if (((bitField0_ & 0x00000800) != 0)) { output.writeDouble(294, allNewCustomerLifetimeValue_); } - if (((bitField3_ & 0x01000000) != 0)) { + if (((bitField3_ & 0x02000000) != 0)) { output.writeMessage(295, getSearchVolume()); } - if (((bitField4_ & 0x02000000) != 0)) { + if (((bitField4_ & 0x04000000) != 0)) { output.writeDouble(296, orders_); } - if (((bitField4_ & 0x04000000) != 0)) { + if (((bitField4_ & 0x08000000) != 0)) { output.writeInt64(297, averageOrderValueMicros_); } - if (((bitField4_ & 0x08000000) != 0)) { + if (((bitField4_ & 0x10000000) != 0)) { output.writeDouble(298, averageCartSize_); } - if (((bitField4_ & 0x10000000) != 0)) { + if (((bitField4_ & 0x20000000) != 0)) { output.writeInt64(299, costOfGoodsSoldMicros_); } - if (((bitField4_ & 0x20000000) != 0)) { + if (((bitField4_ & 0x40000000) != 0)) { output.writeInt64(300, grossProfitMicros_); } - if (((bitField4_ & 0x40000000) != 0)) { + if (((bitField4_ & 0x80000000) != 0)) { output.writeDouble(301, grossProfitMargin_); } - if (((bitField4_ & 0x80000000) != 0)) { + if (((bitField5_ & 0x00000001) != 0)) { output.writeInt64(302, revenueMicros_); } - if (((bitField5_ & 0x00000001) != 0)) { + if (((bitField5_ & 0x00000002) != 0)) { output.writeDouble(303, unitsSold_); } - if (((bitField5_ & 0x00000002) != 0)) { + if (((bitField5_ & 0x00000004) != 0)) { output.writeInt64(304, crossSellCostOfGoodsSoldMicros_); } - if (((bitField5_ & 0x00000004) != 0)) { + if (((bitField5_ & 0x00000008) != 0)) { output.writeInt64(305, crossSellGrossProfitMicros_); } - if (((bitField5_ & 0x00000008) != 0)) { + if (((bitField5_ & 0x00000010) != 0)) { output.writeInt64(306, crossSellRevenueMicros_); } - if (((bitField5_ & 0x00000010) != 0)) { + if (((bitField5_ & 0x00000020) != 0)) { output.writeDouble(307, crossSellUnitsSold_); } - if (((bitField5_ & 0x00000020) != 0)) { + if (((bitField5_ & 0x00000040) != 0)) { output.writeInt64(308, leadCostOfGoodsSoldMicros_); } - if (((bitField5_ & 0x00000040) != 0)) { + if (((bitField5_ & 0x00000080) != 0)) { output.writeInt64(309, leadGrossProfitMicros_); } - if (((bitField5_ & 0x00000080) != 0)) { + if (((bitField5_ & 0x00000100) != 0)) { output.writeInt64(310, leadRevenueMicros_); } - if (((bitField5_ & 0x00000100) != 0)) { + if (((bitField5_ & 0x00000200) != 0)) { output.writeDouble(311, leadUnitsSold_); } - if (((bitField2_ & 0x00000004) != 0)) { + if (((bitField2_ & 0x00000008) != 0)) { output.writeInt64(312, crossDeviceConversionsValueMicros_); } - if (((bitField5_ & 0x00000200) != 0)) { + if (((bitField5_ & 0x00000400) != 0)) { output.writeInt64(319, uniqueUsers_); } - if (((bitField5_ & 0x00000400) != 0)) { + if (((bitField5_ & 0x00000800) != 0)) { output.writeDouble(320, averageImpressionFrequencyPerUser_); } - if (((bitField5_ & 0x00000800) != 0)) { + if (((bitField5_ & 0x00001000) != 0)) { output.writeInt64(341, linkedEntitiesCount_); } for (int i = 0; i < linkedSampleEntities_.size(); i++) { com.google.protobuf.GeneratedMessage.writeString(output, 342, linkedSampleEntities_.getRaw(i)); } - if (((bitField5_ & 0x00001000) != 0)) { + if (((bitField5_ & 0x00002000) != 0)) { output.writeInt64(348, assetPinnedTotalCount_); } - if (((bitField5_ & 0x00002000) != 0)) { + if (((bitField5_ & 0x00004000) != 0)) { output.writeInt64(349, assetPinnedAsHeadlinePositionOneCount_); } - if (((bitField5_ & 0x00004000) != 0)) { + if (((bitField5_ & 0x00008000) != 0)) { output.writeInt64(350, assetPinnedAsHeadlinePositionTwoCount_); } - if (((bitField5_ & 0x00008000) != 0)) { + if (((bitField5_ & 0x00010000) != 0)) { output.writeInt64(351, assetPinnedAsHeadlinePositionThreeCount_); } - if (((bitField5_ & 0x00010000) != 0)) { + if (((bitField5_ & 0x00020000) != 0)) { output.writeInt64(352, assetPinnedAsDescriptionPositionOneCount_); } - if (((bitField5_ & 0x00020000) != 0)) { + if (((bitField5_ & 0x00040000) != 0)) { output.writeInt64(353, assetPinnedAsDescriptionPositionTwoCount_); } - if (((bitField5_ & 0x00040000) != 0)) { + if (((bitField5_ & 0x00080000) != 0)) { output.writeDouble(365, storeVisitsLastClickModelAttributedConversions_); } - if (((bitField5_ & 0x00080000) != 0)) { + if (((bitField5_ & 0x00100000) != 0)) { output.writeDouble(366, resultsConversionsPurchase_); } - if (((bitField2_ & 0x08000000) != 0)) { + if (((bitField2_ & 0x10000000) != 0)) { output.writeDouble(370, generalInvalidClickRate_); } - if (((bitField2_ & 0x10000000) != 0)) { + if (((bitField2_ & 0x20000000) != 0)) { output.writeInt64(371, generalInvalidClicks_); } - if (((bitField2_ & 0x00000001) != 0)) { + if (((bitField2_ & 0x00000002) != 0)) { output.writeDouble(372, crossDeviceConversionsByConversionDate_); } - if (((bitField2_ & 0x00000008) != 0)) { + if (((bitField2_ & 0x00000010) != 0)) { output.writeDouble(373, crossDeviceConversionsValueByConversionDate_); } if (((bitField1_ & 0x00000080) != 0)) { output.writeDouble(378, biddableCohortAppPostInstallConversions_); } - if (((bitField5_ & 0x00800000) != 0)) { + if (((bitField5_ & 0x01000000) != 0)) { output.writeInt64(380, coviewedImpressions_); } - if (((bitField5_ & 0x01000000) != 0)) { + if (((bitField5_ & 0x02000000) != 0)) { output.writeInt64(381, primaryImpressions_); } - if (((bitField5_ & 0x02000000) != 0)) { + if (((bitField5_ & 0x04000000) != 0)) { output.writeDouble(382, platformComparableConversionsFromInteractionsRate_); } - if (((bitField5_ & 0x04000000) != 0)) { + if (((bitField5_ & 0x08000000) != 0)) { output.writeDouble(383, platformComparableConversions_); } - if (((bitField5_ & 0x08000000) != 0)) { + if (((bitField5_ & 0x10000000) != 0)) { output.writeDouble(384, platformComparableConversionsValue_); } - if (((bitField5_ & 0x10000000) != 0)) { + if (((bitField5_ & 0x20000000) != 0)) { output.writeDouble(385, platformComparableConversionsValuePerCost_); } - if (((bitField5_ & 0x20000000) != 0)) { + if (((bitField5_ & 0x40000000) != 0)) { output.writeDouble(386, platformComparableConversionsByConversionDate_); } - if (((bitField5_ & 0x40000000) != 0)) { + if (((bitField5_ & 0x80000000) != 0)) { output.writeDouble(387, platformComparableConversionsValueByConversionDate_); } - if (((bitField5_ & 0x80000000) != 0)) { + if (((bitField6_ & 0x00000001) != 0)) { output.writeDouble(388, platformComparableConversionsFromInteractionsValuePerInteraction_); } - if (((bitField6_ & 0x00000001) != 0)) { + if (((bitField6_ & 0x00000002) != 0)) { output.writeDouble(389, costPerPlatformComparableConversion_); } - if (((bitField6_ & 0x00000002) != 0)) { + if (((bitField6_ & 0x00000004) != 0)) { output.writeDouble(390, valuePerPlatformComparableConversion_); } - if (((bitField6_ & 0x00000004) != 0)) { + if (((bitField6_ & 0x00000008) != 0)) { output.writeDouble(391, valuePerPlatformComparableConversionsByConversionDate_); } - if (((bitField6_ & 0x00000008) != 0)) { + if (((bitField6_ & 0x00000010) != 0)) { output.writeDouble(392, costConvertedCurrencyPerPlatformComparableConversion_); } - if (((bitField6_ & 0x00000010) != 0)) { + if (((bitField6_ & 0x00000020) != 0)) { output.writeInt64(393, uniqueUsersTwoPlus_); } - if (((bitField6_ & 0x00000020) != 0)) { + if (((bitField6_ & 0x00000040) != 0)) { output.writeInt64(394, uniqueUsersThreePlus_); } - if (((bitField6_ & 0x00000040) != 0)) { + if (((bitField6_ & 0x00000080) != 0)) { output.writeInt64(395, uniqueUsersFourPlus_); } - if (((bitField6_ & 0x00000080) != 0)) { + if (((bitField6_ & 0x00000100) != 0)) { output.writeInt64(396, uniqueUsersFivePlus_); } - if (((bitField6_ & 0x00000100) != 0)) { + if (((bitField6_ & 0x00000200) != 0)) { output.writeInt64(397, uniqueUsersTenPlus_); } - if (((bitField6_ & 0x00000200) != 0)) { + if (((bitField6_ & 0x00000400) != 0)) { output.writeDouble(398, valueAdjustment_); } - if (((bitField6_ & 0x00000400) != 0)) { + if (((bitField6_ & 0x00000800) != 0)) { output.writeDouble(399, allValueAdjustment_); } - if (((bitField6_ & 0x00000800) != 0)) { + if (((bitField6_ & 0x00001000) != 0)) { output.writeInt64(400, clicksUniqueQueryClusters_); } - if (((bitField6_ & 0x00001000) != 0)) { + if (((bitField6_ & 0x00002000) != 0)) { output.writeInt64(401, conversionsUniqueQueryClusters_); } - if (((bitField6_ & 0x00002000) != 0)) { + if (((bitField6_ & 0x00004000) != 0)) { output.writeInt64(402, impressionsUniqueQueryClusters_); } - if (((bitField6_ & 0x00004000) != 0)) { + if (((bitField6_ & 0x00008000) != 0)) { output.writeInt64(403, videoWatchTimeDurationMillis_); } - if (((bitField6_ & 0x00008000) != 0)) { + if (((bitField6_ & 0x00010000) != 0)) { output.writeInt64(404, averageVideoWatchTimeDurationMillis_); } if (((bitField1_ & 0x00000002) != 0)) { output.writeDouble(405, trueviewAverageCpv_); } - if (((bitField4_ & 0x00000080) != 0)) { + if (((bitField4_ & 0x00000100) != 0)) { output.writeDouble(406, videoTrueviewViewRate_); } - if (((bitField4_ & 0x00000100) != 0)) { + if (((bitField4_ & 0x00000200) != 0)) { output.writeInt64(407, videoTrueviewViews_); } - if (((bitField5_ & 0x00100000) != 0)) { + if (((bitField5_ & 0x00200000) != 0)) { output.writeDouble(408, videoTrueviewViewRateInFeed_); } - if (((bitField5_ & 0x00200000) != 0)) { + if (((bitField5_ & 0x00400000) != 0)) { output.writeDouble(409, videoTrueviewViewRateInStream_); } - if (((bitField5_ & 0x00400000) != 0)) { + if (((bitField5_ & 0x00800000) != 0)) { output.writeDouble(410, videoTrueviewViewRateShorts_); } - if (((bitField6_ & 0x00010000) != 0)) { + if (((bitField6_ & 0x00020000) != 0)) { output.writeInt64(411, svr_); } - if (((bitField6_ & 0x00020000) != 0)) { + if (((bitField6_ & 0x00040000) != 0)) { output.writeInt64(412, activeViewAudibilityMeasurableImpressions_); } - if (((bitField6_ & 0x00040000) != 0)) { + if (((bitField6_ & 0x00080000) != 0)) { output.writeDouble(413, activeViewAudibilityMeasurableImpressionsRate_); } - if (((bitField6_ & 0x00080000) != 0)) { + if (((bitField6_ & 0x00100000) != 0)) { output.writeDouble(414, activeViewAudibilityInvalidMeasurableImpressionsRate_); } - if (((bitField6_ & 0x00100000) != 0)) { + if (((bitField6_ & 0x00200000) != 0)) { output.writeDouble(415, activeViewAudibilityInvalidGivtMeasurableImpressionsRate_); } - if (((bitField6_ & 0x00200000) != 0)) { + if (((bitField6_ & 0x00400000) != 0)) { output.writeInt64(416, activeViewAudibleImpressions_); } - if (((bitField6_ & 0x00400000) != 0)) { + if (((bitField6_ & 0x00800000) != 0)) { output.writeDouble(417, activeViewAudibleImpressionsRate_); } - if (((bitField6_ & 0x00800000) != 0)) { + if (((bitField6_ & 0x01000000) != 0)) { output.writeInt64(418, activeViewAudibleTwoSecondsImpressions_); } - if (((bitField6_ & 0x01000000) != 0)) { + if (((bitField6_ & 0x02000000) != 0)) { output.writeDouble(419, activeViewAudibleTwoSecondsImpressionsRate_); } - if (((bitField6_ & 0x02000000) != 0)) { + if (((bitField6_ & 0x04000000) != 0)) { output.writeInt64(420, activeViewAudibleThirtySecondsImpressions_); } - if (((bitField6_ & 0x04000000) != 0)) { + if (((bitField6_ & 0x08000000) != 0)) { output.writeDouble(421, activeViewAudibleThirtySecondsImpressionsRate_); } - if (((bitField6_ & 0x08000000) != 0)) { + if (((bitField6_ & 0x10000000) != 0)) { output.writeDouble(422, activeViewAudibleQuartileP25Rate_); } - if (((bitField6_ & 0x10000000) != 0)) { + if (((bitField6_ & 0x20000000) != 0)) { output.writeDouble(423, activeViewAudibleQuartileP50Rate_); } - if (((bitField6_ & 0x20000000) != 0)) { + if (((bitField6_ & 0x40000000) != 0)) { output.writeDouble(424, activeViewAudibleQuartileP75Rate_); } - if (((bitField6_ & 0x40000000) != 0)) { + if (((bitField6_ & 0x80000000) != 0)) { output.writeDouble(425, activeViewAudibleQuartileP100Rate_); } - if (((bitField6_ & 0x80000000) != 0)) { + if (((bitField7_ & 0x00000001) != 0)) { output.writeInt64(426, biddableIndirectInstallFirstInAppConversionMicros_); } - if (((bitField7_ & 0x00000001) != 0)) { + if (((bitField7_ & 0x00000002) != 0)) { output.writeDouble(427, allAverageCartSize_); } - if (((bitField7_ & 0x00000002) != 0)) { + if (((bitField7_ & 0x00000004) != 0)) { output.writeInt64(428, allAverageOrderValueMicros_); } - if (((bitField7_ & 0x00000004) != 0)) { + if (((bitField7_ & 0x00000008) != 0)) { output.writeInt64(429, allCostOfGoodsSoldMicros_); } - if (((bitField7_ & 0x00000008) != 0)) { + if (((bitField7_ & 0x00000010) != 0)) { output.writeInt64(430, allCrossSellCostOfGoodsSoldMicros_); } - if (((bitField7_ & 0x00000010) != 0)) { + if (((bitField7_ & 0x00000020) != 0)) { output.writeInt64(431, allCrossSellGrossProfitMicros_); } - if (((bitField7_ & 0x00000020) != 0)) { + if (((bitField7_ & 0x00000040) != 0)) { output.writeInt64(432, allCrossSellRevenueMicros_); } - if (((bitField7_ & 0x00000040) != 0)) { + if (((bitField7_ & 0x00000080) != 0)) { output.writeDouble(433, allCrossSellUnitsSold_); } - if (((bitField7_ & 0x00000080) != 0)) { + if (((bitField7_ & 0x00000100) != 0)) { output.writeDouble(434, allGrossProfitMargin_); } - if (((bitField7_ & 0x00000100) != 0)) { + if (((bitField7_ & 0x00000200) != 0)) { output.writeInt64(435, allGrossProfitMicros_); } - if (((bitField7_ & 0x00000200) != 0)) { + if (((bitField7_ & 0x00000400) != 0)) { output.writeInt64(436, allLeadCostOfGoodsSoldMicros_); } - if (((bitField7_ & 0x00000400) != 0)) { + if (((bitField7_ & 0x00000800) != 0)) { output.writeInt64(437, allLeadGrossProfitMicros_); } - if (((bitField7_ & 0x00000800) != 0)) { + if (((bitField7_ & 0x00001000) != 0)) { output.writeInt64(438, allLeadRevenueMicros_); } - if (((bitField7_ & 0x00001000) != 0)) { + if (((bitField7_ & 0x00002000) != 0)) { output.writeDouble(439, allLeadUnitsSold_); } - if (((bitField7_ & 0x00002000) != 0)) { + if (((bitField7_ & 0x00004000) != 0)) { output.writeDouble(440, allOrders_); } - if (((bitField7_ & 0x00004000) != 0)) { + if (((bitField7_ & 0x00008000) != 0)) { output.writeInt64(441, allRevenueMicros_); } - if (((bitField7_ & 0x00008000) != 0)) { + if (((bitField7_ & 0x00010000) != 0)) { output.writeDouble(442, allUnitsSold_); } + if (((bitField1_ & 0x00000800) != 0)) { + output.writeInt64(443, controlClicks_); + } + if (((bitField7_ & 0x00020000) != 0)) { + output.writeDouble(446, controlCostPerConversion_); + } + if (((bitField7_ & 0x00040000) != 0)) { + output.writeDouble(447, costPerConversionMarginOfError_); + } + if (((bitField7_ & 0x00080000) != 0)) { + output.writeDouble(448, costPerConversionPValue_); + } + if (((bitField7_ & 0x00100000) != 0)) { + output.writeDouble(449, costPerConversionChangePointEstimate_); + } + if (((bitField7_ & 0x00200000) != 0)) { + output.writeDouble(450, controlConversions_); + } + if (((bitField7_ & 0x00400000) != 0)) { + output.writeDouble(451, conversionsAbsoluteChangeMarginOfError_); + } + if (((bitField7_ & 0x00800000) != 0)) { + output.writeDouble(452, conversionsAbsoluteChangePValue_); + } + if (((bitField7_ & 0x01000000) != 0)) { + output.writeDouble(453, conversionsAbsoluteChangePointEstimate_); + } + if (((bitField7_ & 0x02000000) != 0)) { + output.writeDouble(454, controlConversionValuePerCost_); + } + if (((bitField7_ & 0x04000000) != 0)) { + output.writeDouble(455, conversionValuePerCostMarginOfError_); + } + if (((bitField7_ & 0x08000000) != 0)) { + output.writeDouble(456, conversionValuePerCostPValue_); + } + if (((bitField7_ & 0x10000000) != 0)) { + output.writeDouble(457, conversionValuePerCostChangePointEstimate_); + } + if (((bitField7_ & 0x20000000) != 0)) { + output.writeInt64(458, controlCostMicros_); + } + if (((bitField7_ & 0x40000000) != 0)) { + output.writeDouble(459, costMicrosMarginOfError_); + } + if (((bitField7_ & 0x80000000) != 0)) { + output.writeDouble(460, costMicrosPValue_); + } + if (((bitField8_ & 0x00000001) != 0)) { + output.writeDouble(461, costMicrosChangePointEstimate_); + } + if (((bitField8_ & 0x00000002) != 0)) { + output.writeInt64(462, controlImpressions_); + } + if (((bitField8_ & 0x00000004) != 0)) { + output.writeDouble(463, impressionsMarginOfError_); + } + if (((bitField8_ & 0x00000008) != 0)) { + output.writeDouble(464, impressionsPValue_); + } + if (((bitField8_ & 0x00000010) != 0)) { + output.writeDouble(465, impressionsPointEstimate_); + } + if (((bitField8_ & 0x00000020) != 0)) { + output.writeDouble(466, clicksMarginOfError_); + } + if (((bitField8_ & 0x00000040) != 0)) { + output.writeDouble(467, clicksPValue_); + } + if (((bitField8_ & 0x00000080) != 0)) { + output.writeDouble(468, clicksPointEstimate_); + } + if (((bitField8_ & 0x00000100) != 0)) { + output.writeDouble(469, controlConversionValue_); + } + if (((bitField8_ & 0x00000200) != 0)) { + output.writeDouble(470, conversionValueMarginOfError_); + } + if (((bitField8_ & 0x00000400) != 0)) { + output.writeDouble(471, conversionValuePValue_); + } + if (((bitField8_ & 0x00000800) != 0)) { + output.writeDouble(472, conversionValueChangePointEstimate_); + } getUnknownFields().writeTo(output); } @@ -9147,193 +10308,193 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(131, clicks_); } - if (((bitField4_ & 0x00000008) != 0)) { + if (((bitField4_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(132, videoQuartileP100Rate_); } - if (((bitField4_ & 0x00000010) != 0)) { + if (((bitField4_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(133, videoQuartileP25Rate_); } - if (((bitField4_ & 0x00000020) != 0)) { + if (((bitField4_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(134, videoQuartileP50Rate_); } - if (((bitField4_ & 0x00000040) != 0)) { + if (((bitField4_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(135, videoQuartileP75Rate_); } - if (((bitField3_ & 0x00002000) != 0)) { + if (((bitField3_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(136, searchAbsoluteTopImpressionShare_); } - if (((bitField3_ & 0x00004000) != 0)) { + if (((bitField3_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(137, searchBudgetLostAbsoluteTopImpressionShare_); } - if (((bitField3_ & 0x00008000) != 0)) { + if (((bitField3_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(138, searchBudgetLostImpressionShare_); } - if (((bitField3_ & 0x00010000) != 0)) { + if (((bitField3_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(139, searchBudgetLostTopImpressionShare_); } - if (((bitField3_ & 0x00020000) != 0)) { + if (((bitField3_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(140, searchClickShare_); } - if (((bitField3_ & 0x00040000) != 0)) { + if (((bitField3_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(141, searchExactMatchImpressionShare_); } - if (((bitField3_ & 0x00080000) != 0)) { + if (((bitField3_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(142, searchImpressionShare_); } - if (((bitField3_ & 0x00100000) != 0)) { + if (((bitField3_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(143, searchRankLostAbsoluteTopImpressionShare_); } - if (((bitField3_ & 0x00200000) != 0)) { + if (((bitField3_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(144, searchRankLostImpressionShare_); } - if (((bitField3_ & 0x00400000) != 0)) { + if (((bitField3_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(145, searchRankLostTopImpressionShare_); } - if (((bitField3_ & 0x00800000) != 0)) { + if (((bitField3_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(146, searchTopImpressionShare_); } - if (((bitField3_ & 0x02000000) != 0)) { + if (((bitField3_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(147, speedScore_); } - if (((bitField3_ & 0x10000000) != 0)) { + if (((bitField3_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(148, topImpressionPercentage_); } - if (((bitField3_ & 0x20000000) != 0)) { + if (((bitField3_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(149, validAcceleratedMobilePagesClicksPercentage_); } - if (((bitField3_ & 0x40000000) != 0)) { + if (((bitField3_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(150, valuePerAllConversions_); } - if (((bitField4_ & 0x00000001) != 0)) { + if (((bitField4_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(151, valuePerConversion_); } - if (((bitField4_ & 0x00000004) != 0)) { + if (((bitField4_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(152, valuePerCurrentModelAttributedConversion_); } - if (((bitField4_ & 0x00000200) != 0)) { + if (((bitField4_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(155, viewThroughConversions_); } - if (((bitField1_ & 0x00000800) != 0)) { + if (((bitField1_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(156, combinedClicks_); } - if (((bitField1_ & 0x00001000) != 0)) { + if (((bitField1_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(157, combinedClicksPerQuery_); } - if (((bitField1_ & 0x00002000) != 0)) { + if (((bitField1_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(158, combinedQueries_); } - if (((bitField1_ & 0x00004000) != 0)) { + if (((bitField1_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(159, contentBudgetLostImpressionShare_); } - if (((bitField1_ & 0x00008000) != 0)) { + if (((bitField1_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(160, contentImpressionShare_); } - if (((bitField1_ & 0x00010000) != 0)) { + if (((bitField1_ & 0x00020000) != 0)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(161, conversionLastReceivedRequestDateTime_); } - if (((bitField1_ & 0x00020000) != 0)) { + if (((bitField1_ & 0x00040000) != 0)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(162, conversionLastConversionDate_); } - if (((bitField1_ & 0x00040000) != 0)) { + if (((bitField1_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(163, contentRankLostImpressionShare_); } - if (((bitField1_ & 0x00080000) != 0)) { + if (((bitField1_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(164, conversionsFromInteractionsRate_); } - if (((bitField1_ & 0x00100000) != 0)) { + if (((bitField1_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(165, conversionsValue_); } - if (((bitField1_ & 0x00800000) != 0)) { + if (((bitField1_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(166, conversionsValuePerCost_); } - if (((bitField1_ & 0x01000000) != 0)) { + if (((bitField1_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(167, conversionsFromInteractionsValuePerInteraction_); } - if (((bitField1_ & 0x02000000) != 0)) { + if (((bitField1_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(168, conversions_); } - if (((bitField1_ & 0x08000000) != 0)) { + if (((bitField1_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(169, costMicros_); } - if (((bitField1_ & 0x10000000) != 0)) { + if (((bitField1_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(170, costPerAllConversions_); } - if (((bitField1_ & 0x20000000) != 0)) { + if (((bitField1_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(171, costPerConversion_); } - if (((bitField1_ & 0x40000000) != 0)) { + if (((bitField1_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(172, costPerCurrentModelAttributedConversion_); } - if (((bitField1_ & 0x80000000) != 0)) { + if (((bitField2_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(173, crossDeviceConversions_); } - if (((bitField2_ & 0x00000010) != 0)) { + if (((bitField2_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(174, ctr_); } - if (((bitField2_ & 0x00000020) != 0)) { + if (((bitField2_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(175, currentModelAttributedConversions_); } - if (((bitField2_ & 0x00000040) != 0)) { + if (((bitField2_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(176, currentModelAttributedConversionsFromInteractionsRate_); } - if (((bitField2_ & 0x00000080) != 0)) { + if (((bitField2_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(177, currentModelAttributedConversionsFromInteractionsValuePerInteraction_); } - if (((bitField2_ & 0x00000100) != 0)) { + if (((bitField2_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(178, currentModelAttributedConversionsValue_); } - if (((bitField2_ & 0x00000200) != 0)) { + if (((bitField2_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(179, currentModelAttributedConversionsValuePerCost_); } - if (((bitField2_ & 0x00000400) != 0)) { + if (((bitField2_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(180, engagementRate_); } - if (((bitField2_ & 0x00000800) != 0)) { + if (((bitField2_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(181, engagements_); } @@ -9453,111 +10614,111 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(212, bounceRate_); } - if (((bitField2_ & 0x00001000) != 0)) { + if (((bitField2_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(213, hotelAverageLeadValueMicros_); } - if (((bitField2_ & 0x00008000) != 0)) { + if (((bitField2_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(214, hotelPriceDifferencePercentage_); } - if (((bitField2_ & 0x00010000) != 0)) { + if (((bitField2_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(215, hotelEligibleImpressions_); } - if (((bitField2_ & 0x00020000) != 0)) { + if (((bitField2_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(216, historicalQualityScore_); } - if (((bitField2_ & 0x00040000) != 0)) { + if (((bitField2_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(217, gmailForwards_); } - if (((bitField2_ & 0x00080000) != 0)) { + if (((bitField2_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(218, gmailSaves_); } - if (((bitField2_ & 0x00100000) != 0)) { + if (((bitField2_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(219, gmailSecondaryClicks_); } - if (((bitField2_ & 0x00200000) != 0)) { + if (((bitField2_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(220, impressionsFromStoreReach_); } - if (((bitField2_ & 0x00400000) != 0)) { + if (((bitField2_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(221, impressions_); } - if (((bitField2_ & 0x00800000) != 0)) { + if (((bitField2_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(222, interactionRate_); } - if (((bitField2_ & 0x01000000) != 0)) { + if (((bitField2_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(223, interactions_); } - if (((bitField2_ & 0x02000000) != 0)) { + if (((bitField2_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(224, invalidClickRate_); } - if (((bitField2_ & 0x04000000) != 0)) { + if (((bitField2_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(225, invalidClicks_); } - if (((bitField2_ & 0x20000000) != 0)) { + if (((bitField2_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(226, messageChats_); } - if (((bitField2_ & 0x40000000) != 0)) { + if (((bitField2_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(227, messageImpressions_); } - if (((bitField2_ & 0x80000000) != 0)) { + if (((bitField3_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(228, messageChatRate_); } - if (((bitField3_ & 0x00000001) != 0)) { + if (((bitField3_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(229, mobileFriendlyClicksPercentage_); } - if (((bitField3_ & 0x00000008) != 0)) { + if (((bitField3_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(230, organicClicks_); } - if (((bitField3_ & 0x00000010) != 0)) { + if (((bitField3_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(231, organicClicksPerQuery_); } - if (((bitField3_ & 0x00000020) != 0)) { + if (((bitField3_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(232, organicImpressions_); } - if (((bitField3_ & 0x00000040) != 0)) { + if (((bitField3_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(233, organicImpressionsPerQuery_); } - if (((bitField3_ & 0x00000080) != 0)) { + if (((bitField3_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(234, organicQueries_); } - if (((bitField3_ & 0x00000100) != 0)) { + if (((bitField3_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(235, percentNewVisitors_); } - if (((bitField3_ & 0x00000200) != 0)) { + if (((bitField3_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(236, phoneCalls_); } - if (((bitField3_ & 0x00000400) != 0)) { + if (((bitField3_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(237, phoneImpressions_); } - if (((bitField3_ & 0x00000800) != 0)) { + if (((bitField3_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(238, phoneThroughRate_); } - if (((bitField3_ & 0x00001000) != 0)) { + if (((bitField3_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(239, relativeCtr_); } @@ -9569,19 +10730,19 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(241, allConversionsByConversionDate_); } - if (((bitField1_ & 0x00200000) != 0)) { + if (((bitField1_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(242, conversionsValueByConversionDate_); } - if (((bitField1_ & 0x04000000) != 0)) { + if (((bitField1_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(243, conversionsByConversionDate_); } - if (((bitField3_ & 0x80000000) != 0)) { + if (((bitField4_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(244, valuePerAllConversionsByConversionDate_); } - if (((bitField4_ & 0x00000002) != 0)) { + if (((bitField4_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(245, valuePerConversionsByConversionDate_); } @@ -9589,18 +10750,18 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(246, skAdNetworkInstalls_); } - if (((bitField3_ & 0x00000002) != 0)) { + if (((bitField3_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(247, optimizationScoreUplift_); } - if (((bitField3_ & 0x00000004) != 0)) { + if (((bitField3_ & 0x00000008) != 0)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(248, optimizationScoreUrl_); } - if (((bitField3_ & 0x08000000) != 0)) { + if (((bitField3_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(250, averageTargetRoas_); } - if (((bitField2_ & 0x00000002) != 0)) { + if (((bitField2_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(253, crossDeviceConversionsValue_); } @@ -9612,11 +10773,11 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(255, biddableAppPostInstallConversions_); } - if (((bitField2_ & 0x00002000) != 0)) { + if (((bitField2_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(256, hotelCommissionRateMicros_); } - if (((bitField2_ & 0x00004000) != 0)) { + if (((bitField2_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(257, hotelExpectedCommissionCost_); } @@ -9656,67 +10817,67 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(266, publisherUnknownClicks_); } - if (((bitField4_ & 0x00000400) != 0)) { + if (((bitField4_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(267, allConversionsFromLocationAssetClickToCall_); } - if (((bitField4_ & 0x00000800) != 0)) { + if (((bitField4_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(268, allConversionsFromLocationAssetDirections_); } - if (((bitField4_ & 0x00001000) != 0)) { + if (((bitField4_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(269, allConversionsFromLocationAssetMenu_); } - if (((bitField4_ & 0x00002000) != 0)) { + if (((bitField4_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(270, allConversionsFromLocationAssetOrder_); } - if (((bitField4_ & 0x00004000) != 0)) { + if (((bitField4_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(271, allConversionsFromLocationAssetOtherEngagement_); } - if (((bitField4_ & 0x00008000) != 0)) { + if (((bitField4_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(272, allConversionsFromLocationAssetStoreVisits_); } - if (((bitField4_ & 0x00010000) != 0)) { + if (((bitField4_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(273, allConversionsFromLocationAssetWebsite_); } - if (((bitField4_ & 0x00020000) != 0)) { + if (((bitField4_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(274, eligibleImpressionsFromLocationAssetStoreReach_); } - if (((bitField4_ & 0x00040000) != 0)) { + if (((bitField4_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(275, viewThroughConversionsFromLocationAssetClickToCall_); } - if (((bitField4_ & 0x00080000) != 0)) { + if (((bitField4_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(276, viewThroughConversionsFromLocationAssetDirections_); } - if (((bitField4_ & 0x00100000) != 0)) { + if (((bitField4_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(277, viewThroughConversionsFromLocationAssetMenu_); } - if (((bitField4_ & 0x00200000) != 0)) { + if (((bitField4_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(278, viewThroughConversionsFromLocationAssetOrder_); } - if (((bitField4_ & 0x00400000) != 0)) { + if (((bitField4_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(279, viewThroughConversionsFromLocationAssetOtherEngagement_); } - if (((bitField4_ & 0x00800000) != 0)) { + if (((bitField4_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(280, viewThroughConversionsFromLocationAssetStoreVisits_); } - if (((bitField4_ & 0x01000000) != 0)) { + if (((bitField4_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(281, viewThroughConversionsFromLocationAssetWebsite_); } - if (((bitField3_ & 0x04000000) != 0)) { + if (((bitField3_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(290, averageTargetCpaMicros_); } @@ -9724,7 +10885,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(292, skAdNetworkTotalConversions_); } - if (((bitField1_ & 0x00400000) != 0)) { + if (((bitField1_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(293, newCustomerLifetimeValue_); } @@ -9732,87 +10893,87 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(294, allNewCustomerLifetimeValue_); } - if (((bitField3_ & 0x01000000) != 0)) { + if (((bitField3_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(295, getSearchVolume()); } - if (((bitField4_ & 0x02000000) != 0)) { + if (((bitField4_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(296, orders_); } - if (((bitField4_ & 0x04000000) != 0)) { + if (((bitField4_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(297, averageOrderValueMicros_); } - if (((bitField4_ & 0x08000000) != 0)) { + if (((bitField4_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(298, averageCartSize_); } - if (((bitField4_ & 0x10000000) != 0)) { + if (((bitField4_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(299, costOfGoodsSoldMicros_); } - if (((bitField4_ & 0x20000000) != 0)) { + if (((bitField4_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(300, grossProfitMicros_); } - if (((bitField4_ & 0x40000000) != 0)) { + if (((bitField4_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(301, grossProfitMargin_); } - if (((bitField4_ & 0x80000000) != 0)) { + if (((bitField5_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(302, revenueMicros_); } - if (((bitField5_ & 0x00000001) != 0)) { + if (((bitField5_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(303, unitsSold_); } - if (((bitField5_ & 0x00000002) != 0)) { + if (((bitField5_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(304, crossSellCostOfGoodsSoldMicros_); } - if (((bitField5_ & 0x00000004) != 0)) { + if (((bitField5_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(305, crossSellGrossProfitMicros_); } - if (((bitField5_ & 0x00000008) != 0)) { + if (((bitField5_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(306, crossSellRevenueMicros_); } - if (((bitField5_ & 0x00000010) != 0)) { + if (((bitField5_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(307, crossSellUnitsSold_); } - if (((bitField5_ & 0x00000020) != 0)) { + if (((bitField5_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(308, leadCostOfGoodsSoldMicros_); } - if (((bitField5_ & 0x00000040) != 0)) { + if (((bitField5_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(309, leadGrossProfitMicros_); } - if (((bitField5_ & 0x00000080) != 0)) { + if (((bitField5_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(310, leadRevenueMicros_); } - if (((bitField5_ & 0x00000100) != 0)) { + if (((bitField5_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(311, leadUnitsSold_); } - if (((bitField2_ & 0x00000004) != 0)) { + if (((bitField2_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(312, crossDeviceConversionsValueMicros_); } - if (((bitField5_ & 0x00000200) != 0)) { + if (((bitField5_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(319, uniqueUsers_); } - if (((bitField5_ & 0x00000400) != 0)) { + if (((bitField5_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(320, averageImpressionFrequencyPerUser_); } - if (((bitField5_ & 0x00000800) != 0)) { + if (((bitField5_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(341, linkedEntitiesCount_); } @@ -9824,51 +10985,51 @@ public int getSerializedSize() { size += dataSize; size += 2 * getLinkedSampleEntitiesList().size(); } - if (((bitField5_ & 0x00001000) != 0)) { + if (((bitField5_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(348, assetPinnedTotalCount_); } - if (((bitField5_ & 0x00002000) != 0)) { + if (((bitField5_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(349, assetPinnedAsHeadlinePositionOneCount_); } - if (((bitField5_ & 0x00004000) != 0)) { + if (((bitField5_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(350, assetPinnedAsHeadlinePositionTwoCount_); } - if (((bitField5_ & 0x00008000) != 0)) { + if (((bitField5_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(351, assetPinnedAsHeadlinePositionThreeCount_); } - if (((bitField5_ & 0x00010000) != 0)) { + if (((bitField5_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(352, assetPinnedAsDescriptionPositionOneCount_); } - if (((bitField5_ & 0x00020000) != 0)) { + if (((bitField5_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(353, assetPinnedAsDescriptionPositionTwoCount_); } - if (((bitField5_ & 0x00040000) != 0)) { + if (((bitField5_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(365, storeVisitsLastClickModelAttributedConversions_); } - if (((bitField5_ & 0x00080000) != 0)) { + if (((bitField5_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(366, resultsConversionsPurchase_); } - if (((bitField2_ & 0x08000000) != 0)) { + if (((bitField2_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(370, generalInvalidClickRate_); } - if (((bitField2_ & 0x10000000) != 0)) { + if (((bitField2_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(371, generalInvalidClicks_); } - if (((bitField2_ & 0x00000001) != 0)) { + if (((bitField2_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(372, crossDeviceConversionsByConversionDate_); } - if (((bitField2_ & 0x00000008) != 0)) { + if (((bitField2_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(373, crossDeviceConversionsValueByConversionDate_); } @@ -9876,103 +11037,103 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(378, biddableCohortAppPostInstallConversions_); } - if (((bitField5_ & 0x00800000) != 0)) { + if (((bitField5_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(380, coviewedImpressions_); } - if (((bitField5_ & 0x01000000) != 0)) { + if (((bitField5_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(381, primaryImpressions_); } - if (((bitField5_ & 0x02000000) != 0)) { + if (((bitField5_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(382, platformComparableConversionsFromInteractionsRate_); } - if (((bitField5_ & 0x04000000) != 0)) { + if (((bitField5_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(383, platformComparableConversions_); } - if (((bitField5_ & 0x08000000) != 0)) { + if (((bitField5_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(384, platformComparableConversionsValue_); } - if (((bitField5_ & 0x10000000) != 0)) { + if (((bitField5_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(385, platformComparableConversionsValuePerCost_); } - if (((bitField5_ & 0x20000000) != 0)) { + if (((bitField5_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(386, platformComparableConversionsByConversionDate_); } - if (((bitField5_ & 0x40000000) != 0)) { + if (((bitField5_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(387, platformComparableConversionsValueByConversionDate_); } - if (((bitField5_ & 0x80000000) != 0)) { + if (((bitField6_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(388, platformComparableConversionsFromInteractionsValuePerInteraction_); } - if (((bitField6_ & 0x00000001) != 0)) { + if (((bitField6_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(389, costPerPlatformComparableConversion_); } - if (((bitField6_ & 0x00000002) != 0)) { + if (((bitField6_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(390, valuePerPlatformComparableConversion_); } - if (((bitField6_ & 0x00000004) != 0)) { + if (((bitField6_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(391, valuePerPlatformComparableConversionsByConversionDate_); } - if (((bitField6_ & 0x00000008) != 0)) { + if (((bitField6_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(392, costConvertedCurrencyPerPlatformComparableConversion_); } - if (((bitField6_ & 0x00000010) != 0)) { + if (((bitField6_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(393, uniqueUsersTwoPlus_); } - if (((bitField6_ & 0x00000020) != 0)) { + if (((bitField6_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(394, uniqueUsersThreePlus_); } - if (((bitField6_ & 0x00000040) != 0)) { + if (((bitField6_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(395, uniqueUsersFourPlus_); } - if (((bitField6_ & 0x00000080) != 0)) { + if (((bitField6_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(396, uniqueUsersFivePlus_); } - if (((bitField6_ & 0x00000100) != 0)) { + if (((bitField6_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(397, uniqueUsersTenPlus_); } - if (((bitField6_ & 0x00000200) != 0)) { + if (((bitField6_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(398, valueAdjustment_); } - if (((bitField6_ & 0x00000400) != 0)) { + if (((bitField6_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(399, allValueAdjustment_); } - if (((bitField6_ & 0x00000800) != 0)) { + if (((bitField6_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(400, clicksUniqueQueryClusters_); } - if (((bitField6_ & 0x00001000) != 0)) { + if (((bitField6_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(401, conversionsUniqueQueryClusters_); } - if (((bitField6_ & 0x00002000) != 0)) { + if (((bitField6_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(402, impressionsUniqueQueryClusters_); } - if (((bitField6_ & 0x00004000) != 0)) { + if (((bitField6_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(403, videoWatchTimeDurationMillis_); } - if (((bitField6_ & 0x00008000) != 0)) { + if (((bitField6_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(404, averageVideoWatchTimeDurationMillis_); } @@ -9980,154 +11141,266 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(405, trueviewAverageCpv_); } - if (((bitField4_ & 0x00000080) != 0)) { + if (((bitField4_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(406, videoTrueviewViewRate_); } - if (((bitField4_ & 0x00000100) != 0)) { + if (((bitField4_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(407, videoTrueviewViews_); } - if (((bitField5_ & 0x00100000) != 0)) { + if (((bitField5_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(408, videoTrueviewViewRateInFeed_); } - if (((bitField5_ & 0x00200000) != 0)) { + if (((bitField5_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(409, videoTrueviewViewRateInStream_); } - if (((bitField5_ & 0x00400000) != 0)) { + if (((bitField5_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(410, videoTrueviewViewRateShorts_); } - if (((bitField6_ & 0x00010000) != 0)) { + if (((bitField6_ & 0x00020000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(411, svr_); } - if (((bitField6_ & 0x00020000) != 0)) { + if (((bitField6_ & 0x00040000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(412, activeViewAudibilityMeasurableImpressions_); } - if (((bitField6_ & 0x00040000) != 0)) { + if (((bitField6_ & 0x00080000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(413, activeViewAudibilityMeasurableImpressionsRate_); } - if (((bitField6_ & 0x00080000) != 0)) { + if (((bitField6_ & 0x00100000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(414, activeViewAudibilityInvalidMeasurableImpressionsRate_); } - if (((bitField6_ & 0x00100000) != 0)) { + if (((bitField6_ & 0x00200000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(415, activeViewAudibilityInvalidGivtMeasurableImpressionsRate_); } - if (((bitField6_ & 0x00200000) != 0)) { + if (((bitField6_ & 0x00400000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(416, activeViewAudibleImpressions_); } - if (((bitField6_ & 0x00400000) != 0)) { + if (((bitField6_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(417, activeViewAudibleImpressionsRate_); } - if (((bitField6_ & 0x00800000) != 0)) { + if (((bitField6_ & 0x01000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(418, activeViewAudibleTwoSecondsImpressions_); } - if (((bitField6_ & 0x01000000) != 0)) { + if (((bitField6_ & 0x02000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(419, activeViewAudibleTwoSecondsImpressionsRate_); } - if (((bitField6_ & 0x02000000) != 0)) { + if (((bitField6_ & 0x04000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(420, activeViewAudibleThirtySecondsImpressions_); } - if (((bitField6_ & 0x04000000) != 0)) { + if (((bitField6_ & 0x08000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(421, activeViewAudibleThirtySecondsImpressionsRate_); } - if (((bitField6_ & 0x08000000) != 0)) { + if (((bitField6_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(422, activeViewAudibleQuartileP25Rate_); } - if (((bitField6_ & 0x10000000) != 0)) { + if (((bitField6_ & 0x20000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(423, activeViewAudibleQuartileP50Rate_); } - if (((bitField6_ & 0x20000000) != 0)) { + if (((bitField6_ & 0x40000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(424, activeViewAudibleQuartileP75Rate_); } - if (((bitField6_ & 0x40000000) != 0)) { + if (((bitField6_ & 0x80000000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(425, activeViewAudibleQuartileP100Rate_); } - if (((bitField6_ & 0x80000000) != 0)) { + if (((bitField7_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(426, biddableIndirectInstallFirstInAppConversionMicros_); } - if (((bitField7_ & 0x00000001) != 0)) { + if (((bitField7_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(427, allAverageCartSize_); } - if (((bitField7_ & 0x00000002) != 0)) { + if (((bitField7_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(428, allAverageOrderValueMicros_); } - if (((bitField7_ & 0x00000004) != 0)) { + if (((bitField7_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(429, allCostOfGoodsSoldMicros_); } - if (((bitField7_ & 0x00000008) != 0)) { + if (((bitField7_ & 0x00000010) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(430, allCrossSellCostOfGoodsSoldMicros_); } - if (((bitField7_ & 0x00000010) != 0)) { + if (((bitField7_ & 0x00000020) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(431, allCrossSellGrossProfitMicros_); } - if (((bitField7_ & 0x00000020) != 0)) { + if (((bitField7_ & 0x00000040) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(432, allCrossSellRevenueMicros_); } - if (((bitField7_ & 0x00000040) != 0)) { + if (((bitField7_ & 0x00000080) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(433, allCrossSellUnitsSold_); } - if (((bitField7_ & 0x00000080) != 0)) { + if (((bitField7_ & 0x00000100) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(434, allGrossProfitMargin_); } - if (((bitField7_ & 0x00000100) != 0)) { + if (((bitField7_ & 0x00000200) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(435, allGrossProfitMicros_); } - if (((bitField7_ & 0x00000200) != 0)) { + if (((bitField7_ & 0x00000400) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(436, allLeadCostOfGoodsSoldMicros_); } - if (((bitField7_ & 0x00000400) != 0)) { + if (((bitField7_ & 0x00000800) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(437, allLeadGrossProfitMicros_); } - if (((bitField7_ & 0x00000800) != 0)) { + if (((bitField7_ & 0x00001000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(438, allLeadRevenueMicros_); } - if (((bitField7_ & 0x00001000) != 0)) { + if (((bitField7_ & 0x00002000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(439, allLeadUnitsSold_); } - if (((bitField7_ & 0x00002000) != 0)) { + if (((bitField7_ & 0x00004000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(440, allOrders_); } - if (((bitField7_ & 0x00004000) != 0)) { + if (((bitField7_ & 0x00008000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(441, allRevenueMicros_); } - if (((bitField7_ & 0x00008000) != 0)) { + if (((bitField7_ & 0x00010000) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(442, allUnitsSold_); } + if (((bitField1_ & 0x00000800) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(443, controlClicks_); + } + if (((bitField7_ & 0x00020000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(446, controlCostPerConversion_); + } + if (((bitField7_ & 0x00040000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(447, costPerConversionMarginOfError_); + } + if (((bitField7_ & 0x00080000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(448, costPerConversionPValue_); + } + if (((bitField7_ & 0x00100000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(449, costPerConversionChangePointEstimate_); + } + if (((bitField7_ & 0x00200000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(450, controlConversions_); + } + if (((bitField7_ & 0x00400000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(451, conversionsAbsoluteChangeMarginOfError_); + } + if (((bitField7_ & 0x00800000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(452, conversionsAbsoluteChangePValue_); + } + if (((bitField7_ & 0x01000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(453, conversionsAbsoluteChangePointEstimate_); + } + if (((bitField7_ & 0x02000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(454, controlConversionValuePerCost_); + } + if (((bitField7_ & 0x04000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(455, conversionValuePerCostMarginOfError_); + } + if (((bitField7_ & 0x08000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(456, conversionValuePerCostPValue_); + } + if (((bitField7_ & 0x10000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(457, conversionValuePerCostChangePointEstimate_); + } + if (((bitField7_ & 0x20000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(458, controlCostMicros_); + } + if (((bitField7_ & 0x40000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(459, costMicrosMarginOfError_); + } + if (((bitField7_ & 0x80000000) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(460, costMicrosPValue_); + } + if (((bitField8_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(461, costMicrosChangePointEstimate_); + } + if (((bitField8_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(462, controlImpressions_); + } + if (((bitField8_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(463, impressionsMarginOfError_); + } + if (((bitField8_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(464, impressionsPValue_); + } + if (((bitField8_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(465, impressionsPointEstimate_); + } + if (((bitField8_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(466, clicksMarginOfError_); + } + if (((bitField8_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(467, clicksPValue_); + } + if (((bitField8_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(468, clicksPointEstimate_); + } + if (((bitField8_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(469, controlConversionValue_); + } + if (((bitField8_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(470, conversionValueMarginOfError_); + } + if (((bitField8_ & 0x00000400) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(471, conversionValuePValue_); + } + if (((bitField8_ & 0x00000800) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(472, conversionValueChangePointEstimate_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -10397,6 +11670,11 @@ public boolean equals(final java.lang.Object obj) { if (getClicks() != other.getClicks()) return false; } + if (hasControlClicks() != other.hasControlClicks()) return false; + if (hasControlClicks()) { + if (getControlClicks() + != other.getControlClicks()) return false; + } if (hasCombinedClicks() != other.hasCombinedClicks()) return false; if (hasCombinedClicks()) { if (getCombinedClicks() @@ -11517,6 +12795,166 @@ public boolean equals(final java.lang.Object obj) { != java.lang.Double.doubleToLongBits( other.getAllUnitsSold())) return false; } + if (hasControlCostPerConversion() != other.hasControlCostPerConversion()) return false; + if (hasControlCostPerConversion()) { + if (java.lang.Double.doubleToLongBits(getControlCostPerConversion()) + != java.lang.Double.doubleToLongBits( + other.getControlCostPerConversion())) return false; + } + if (hasCostPerConversionMarginOfError() != other.hasCostPerConversionMarginOfError()) return false; + if (hasCostPerConversionMarginOfError()) { + if (java.lang.Double.doubleToLongBits(getCostPerConversionMarginOfError()) + != java.lang.Double.doubleToLongBits( + other.getCostPerConversionMarginOfError())) return false; + } + if (hasCostPerConversionPValue() != other.hasCostPerConversionPValue()) return false; + if (hasCostPerConversionPValue()) { + if (java.lang.Double.doubleToLongBits(getCostPerConversionPValue()) + != java.lang.Double.doubleToLongBits( + other.getCostPerConversionPValue())) return false; + } + if (hasCostPerConversionChangePointEstimate() != other.hasCostPerConversionChangePointEstimate()) return false; + if (hasCostPerConversionChangePointEstimate()) { + if (java.lang.Double.doubleToLongBits(getCostPerConversionChangePointEstimate()) + != java.lang.Double.doubleToLongBits( + other.getCostPerConversionChangePointEstimate())) return false; + } + if (hasControlConversions() != other.hasControlConversions()) return false; + if (hasControlConversions()) { + if (java.lang.Double.doubleToLongBits(getControlConversions()) + != java.lang.Double.doubleToLongBits( + other.getControlConversions())) return false; + } + if (hasConversionsAbsoluteChangeMarginOfError() != other.hasConversionsAbsoluteChangeMarginOfError()) return false; + if (hasConversionsAbsoluteChangeMarginOfError()) { + if (java.lang.Double.doubleToLongBits(getConversionsAbsoluteChangeMarginOfError()) + != java.lang.Double.doubleToLongBits( + other.getConversionsAbsoluteChangeMarginOfError())) return false; + } + if (hasConversionsAbsoluteChangePValue() != other.hasConversionsAbsoluteChangePValue()) return false; + if (hasConversionsAbsoluteChangePValue()) { + if (java.lang.Double.doubleToLongBits(getConversionsAbsoluteChangePValue()) + != java.lang.Double.doubleToLongBits( + other.getConversionsAbsoluteChangePValue())) return false; + } + if (hasConversionsAbsoluteChangePointEstimate() != other.hasConversionsAbsoluteChangePointEstimate()) return false; + if (hasConversionsAbsoluteChangePointEstimate()) { + if (java.lang.Double.doubleToLongBits(getConversionsAbsoluteChangePointEstimate()) + != java.lang.Double.doubleToLongBits( + other.getConversionsAbsoluteChangePointEstimate())) return false; + } + if (hasControlConversionValuePerCost() != other.hasControlConversionValuePerCost()) return false; + if (hasControlConversionValuePerCost()) { + if (java.lang.Double.doubleToLongBits(getControlConversionValuePerCost()) + != java.lang.Double.doubleToLongBits( + other.getControlConversionValuePerCost())) return false; + } + if (hasConversionValuePerCostMarginOfError() != other.hasConversionValuePerCostMarginOfError()) return false; + if (hasConversionValuePerCostMarginOfError()) { + if (java.lang.Double.doubleToLongBits(getConversionValuePerCostMarginOfError()) + != java.lang.Double.doubleToLongBits( + other.getConversionValuePerCostMarginOfError())) return false; + } + if (hasConversionValuePerCostPValue() != other.hasConversionValuePerCostPValue()) return false; + if (hasConversionValuePerCostPValue()) { + if (java.lang.Double.doubleToLongBits(getConversionValuePerCostPValue()) + != java.lang.Double.doubleToLongBits( + other.getConversionValuePerCostPValue())) return false; + } + if (hasConversionValuePerCostChangePointEstimate() != other.hasConversionValuePerCostChangePointEstimate()) return false; + if (hasConversionValuePerCostChangePointEstimate()) { + if (java.lang.Double.doubleToLongBits(getConversionValuePerCostChangePointEstimate()) + != java.lang.Double.doubleToLongBits( + other.getConversionValuePerCostChangePointEstimate())) return false; + } + if (hasControlCostMicros() != other.hasControlCostMicros()) return false; + if (hasControlCostMicros()) { + if (getControlCostMicros() + != other.getControlCostMicros()) return false; + } + if (hasCostMicrosMarginOfError() != other.hasCostMicrosMarginOfError()) return false; + if (hasCostMicrosMarginOfError()) { + if (java.lang.Double.doubleToLongBits(getCostMicrosMarginOfError()) + != java.lang.Double.doubleToLongBits( + other.getCostMicrosMarginOfError())) return false; + } + if (hasCostMicrosPValue() != other.hasCostMicrosPValue()) return false; + if (hasCostMicrosPValue()) { + if (java.lang.Double.doubleToLongBits(getCostMicrosPValue()) + != java.lang.Double.doubleToLongBits( + other.getCostMicrosPValue())) return false; + } + if (hasCostMicrosChangePointEstimate() != other.hasCostMicrosChangePointEstimate()) return false; + if (hasCostMicrosChangePointEstimate()) { + if (java.lang.Double.doubleToLongBits(getCostMicrosChangePointEstimate()) + != java.lang.Double.doubleToLongBits( + other.getCostMicrosChangePointEstimate())) return false; + } + if (hasControlImpressions() != other.hasControlImpressions()) return false; + if (hasControlImpressions()) { + if (getControlImpressions() + != other.getControlImpressions()) return false; + } + if (hasImpressionsMarginOfError() != other.hasImpressionsMarginOfError()) return false; + if (hasImpressionsMarginOfError()) { + if (java.lang.Double.doubleToLongBits(getImpressionsMarginOfError()) + != java.lang.Double.doubleToLongBits( + other.getImpressionsMarginOfError())) return false; + } + if (hasImpressionsPValue() != other.hasImpressionsPValue()) return false; + if (hasImpressionsPValue()) { + if (java.lang.Double.doubleToLongBits(getImpressionsPValue()) + != java.lang.Double.doubleToLongBits( + other.getImpressionsPValue())) return false; + } + if (hasImpressionsPointEstimate() != other.hasImpressionsPointEstimate()) return false; + if (hasImpressionsPointEstimate()) { + if (java.lang.Double.doubleToLongBits(getImpressionsPointEstimate()) + != java.lang.Double.doubleToLongBits( + other.getImpressionsPointEstimate())) return false; + } + if (hasClicksMarginOfError() != other.hasClicksMarginOfError()) return false; + if (hasClicksMarginOfError()) { + if (java.lang.Double.doubleToLongBits(getClicksMarginOfError()) + != java.lang.Double.doubleToLongBits( + other.getClicksMarginOfError())) return false; + } + if (hasClicksPValue() != other.hasClicksPValue()) return false; + if (hasClicksPValue()) { + if (java.lang.Double.doubleToLongBits(getClicksPValue()) + != java.lang.Double.doubleToLongBits( + other.getClicksPValue())) return false; + } + if (hasClicksPointEstimate() != other.hasClicksPointEstimate()) return false; + if (hasClicksPointEstimate()) { + if (java.lang.Double.doubleToLongBits(getClicksPointEstimate()) + != java.lang.Double.doubleToLongBits( + other.getClicksPointEstimate())) return false; + } + if (hasControlConversionValue() != other.hasControlConversionValue()) return false; + if (hasControlConversionValue()) { + if (java.lang.Double.doubleToLongBits(getControlConversionValue()) + != java.lang.Double.doubleToLongBits( + other.getControlConversionValue())) return false; + } + if (hasConversionValueMarginOfError() != other.hasConversionValueMarginOfError()) return false; + if (hasConversionValueMarginOfError()) { + if (java.lang.Double.doubleToLongBits(getConversionValueMarginOfError()) + != java.lang.Double.doubleToLongBits( + other.getConversionValueMarginOfError())) return false; + } + if (hasConversionValuePValue() != other.hasConversionValuePValue()) return false; + if (hasConversionValuePValue()) { + if (java.lang.Double.doubleToLongBits(getConversionValuePValue()) + != java.lang.Double.doubleToLongBits( + other.getConversionValuePValue())) return false; + } + if (hasConversionValueChangePointEstimate() != other.hasConversionValueChangePointEstimate()) return false; + if (hasConversionValueChangePointEstimate()) { + if (java.lang.Double.doubleToLongBits(getConversionValueChangePointEstimate()) + != java.lang.Double.doubleToLongBits( + other.getConversionValueChangePointEstimate())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -11743,6 +13181,11 @@ public int hashCode() { hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getClicks()); } + if (hasControlClicks()) { + hash = (37 * hash) + CONTROL_CLICKS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getControlClicks()); + } if (hasCombinedClicks()) { hash = (37 * hash) + COMBINED_CLICKS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( @@ -12753,6 +14196,141 @@ public int hashCode() { hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAllUnitsSold())); } + if (hasControlCostPerConversion()) { + hash = (37 * hash) + CONTROL_COST_PER_CONVERSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getControlCostPerConversion())); + } + if (hasCostPerConversionMarginOfError()) { + hash = (37 * hash) + COST_PER_CONVERSION_MARGIN_OF_ERROR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCostPerConversionMarginOfError())); + } + if (hasCostPerConversionPValue()) { + hash = (37 * hash) + COST_PER_CONVERSION_P_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCostPerConversionPValue())); + } + if (hasCostPerConversionChangePointEstimate()) { + hash = (37 * hash) + COST_PER_CONVERSION_CHANGE_POINT_ESTIMATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCostPerConversionChangePointEstimate())); + } + if (hasControlConversions()) { + hash = (37 * hash) + CONTROL_CONVERSIONS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getControlConversions())); + } + if (hasConversionsAbsoluteChangeMarginOfError()) { + hash = (37 * hash) + CONVERSIONS_ABSOLUTE_CHANGE_MARGIN_OF_ERROR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionsAbsoluteChangeMarginOfError())); + } + if (hasConversionsAbsoluteChangePValue()) { + hash = (37 * hash) + CONVERSIONS_ABSOLUTE_CHANGE_P_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionsAbsoluteChangePValue())); + } + if (hasConversionsAbsoluteChangePointEstimate()) { + hash = (37 * hash) + CONVERSIONS_ABSOLUTE_CHANGE_POINT_ESTIMATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionsAbsoluteChangePointEstimate())); + } + if (hasControlConversionValuePerCost()) { + hash = (37 * hash) + CONTROL_CONVERSION_VALUE_PER_COST_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getControlConversionValuePerCost())); + } + if (hasConversionValuePerCostMarginOfError()) { + hash = (37 * hash) + CONVERSION_VALUE_PER_COST_MARGIN_OF_ERROR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionValuePerCostMarginOfError())); + } + if (hasConversionValuePerCostPValue()) { + hash = (37 * hash) + CONVERSION_VALUE_PER_COST_P_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionValuePerCostPValue())); + } + if (hasConversionValuePerCostChangePointEstimate()) { + hash = (37 * hash) + CONVERSION_VALUE_PER_COST_CHANGE_POINT_ESTIMATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionValuePerCostChangePointEstimate())); + } + if (hasControlCostMicros()) { + hash = (37 * hash) + CONTROL_COST_MICROS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getControlCostMicros()); + } + if (hasCostMicrosMarginOfError()) { + hash = (37 * hash) + COST_MICROS_MARGIN_OF_ERROR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCostMicrosMarginOfError())); + } + if (hasCostMicrosPValue()) { + hash = (37 * hash) + COST_MICROS_P_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCostMicrosPValue())); + } + if (hasCostMicrosChangePointEstimate()) { + hash = (37 * hash) + COST_MICROS_CHANGE_POINT_ESTIMATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCostMicrosChangePointEstimate())); + } + if (hasControlImpressions()) { + hash = (37 * hash) + CONTROL_IMPRESSIONS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getControlImpressions()); + } + if (hasImpressionsMarginOfError()) { + hash = (37 * hash) + IMPRESSIONS_MARGIN_OF_ERROR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getImpressionsMarginOfError())); + } + if (hasImpressionsPValue()) { + hash = (37 * hash) + IMPRESSIONS_P_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getImpressionsPValue())); + } + if (hasImpressionsPointEstimate()) { + hash = (37 * hash) + IMPRESSIONS_POINT_ESTIMATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getImpressionsPointEstimate())); + } + if (hasClicksMarginOfError()) { + hash = (37 * hash) + CLICKS_MARGIN_OF_ERROR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getClicksMarginOfError())); + } + if (hasClicksPValue()) { + hash = (37 * hash) + CLICKS_P_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getClicksPValue())); + } + if (hasClicksPointEstimate()) { + hash = (37 * hash) + CLICKS_POINT_ESTIMATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getClicksPointEstimate())); + } + if (hasControlConversionValue()) { + hash = (37 * hash) + CONTROL_CONVERSION_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getControlConversionValue())); + } + if (hasConversionValueMarginOfError()) { + hash = (37 * hash) + CONVERSION_VALUE_MARGIN_OF_ERROR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionValueMarginOfError())); + } + if (hasConversionValuePValue()) { + hash = (37 * hash) + CONVERSION_VALUE_P_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionValuePValue())); + } + if (hasConversionValueChangePointEstimate()) { + hash = (37 * hash) + CONVERSION_VALUE_CHANGE_POINT_ESTIMATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConversionValueChangePointEstimate())); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -12901,6 +14479,7 @@ public Builder clear() { bitField5_ = 0; bitField6_ = 0; bitField7_ = 0; + bitField8_ = 0; absoluteTopImpressionPercentage_ = 0D; activeViewCpm_ = 0D; activeViewCtr_ = 0D; @@ -12944,6 +14523,7 @@ public Builder clear() { benchmarkCtr_ = 0D; bounceRate_ = 0D; clicks_ = 0L; + controlClicks_ = 0L; combinedClicks_ = 0L; combinedClicksPerQuery_ = 0D; combinedQueries_ = 0L; @@ -13156,6 +14736,33 @@ public Builder clear() { allOrders_ = 0D; allRevenueMicros_ = 0L; allUnitsSold_ = 0D; + controlCostPerConversion_ = 0D; + costPerConversionMarginOfError_ = 0D; + costPerConversionPValue_ = 0D; + costPerConversionChangePointEstimate_ = 0D; + controlConversions_ = 0D; + conversionsAbsoluteChangeMarginOfError_ = 0D; + conversionsAbsoluteChangePValue_ = 0D; + conversionsAbsoluteChangePointEstimate_ = 0D; + controlConversionValuePerCost_ = 0D; + conversionValuePerCostMarginOfError_ = 0D; + conversionValuePerCostPValue_ = 0D; + conversionValuePerCostChangePointEstimate_ = 0D; + controlCostMicros_ = 0L; + costMicrosMarginOfError_ = 0D; + costMicrosPValue_ = 0D; + costMicrosChangePointEstimate_ = 0D; + controlImpressions_ = 0L; + impressionsMarginOfError_ = 0D; + impressionsPValue_ = 0D; + impressionsPointEstimate_ = 0D; + clicksMarginOfError_ = 0D; + clicksPValue_ = 0D; + clicksPointEstimate_ = 0D; + controlConversionValue_ = 0D; + conversionValueMarginOfError_ = 0D; + conversionValuePValue_ = 0D; + conversionValueChangePointEstimate_ = 0D; return this; } @@ -13190,6 +14797,7 @@ public com.google.ads.googleads.v24.common.Metrics buildPartial() { if (bitField5_ != 0) { buildPartial5(result); } if (bitField6_ != 0) { buildPartial6(result); } if (bitField7_ != 0) { buildPartial7(result); } + if (bitField8_ != 0) { buildPartial8(result); } onBuilt(); return result; } @@ -13376,87 +14984,87 @@ private void buildPartial1(com.google.ads.googleads.v24.common.Metrics result) { to_bitField1_ |= 0x00000400; } if (((from_bitField1_ & 0x00000800) != 0)) { - result.combinedClicks_ = combinedClicks_; + result.controlClicks_ = controlClicks_; to_bitField1_ |= 0x00000800; } if (((from_bitField1_ & 0x00001000) != 0)) { - result.combinedClicksPerQuery_ = combinedClicksPerQuery_; + result.combinedClicks_ = combinedClicks_; to_bitField1_ |= 0x00001000; } if (((from_bitField1_ & 0x00002000) != 0)) { - result.combinedQueries_ = combinedQueries_; + result.combinedClicksPerQuery_ = combinedClicksPerQuery_; to_bitField1_ |= 0x00002000; } if (((from_bitField1_ & 0x00004000) != 0)) { - result.contentBudgetLostImpressionShare_ = contentBudgetLostImpressionShare_; + result.combinedQueries_ = combinedQueries_; to_bitField1_ |= 0x00004000; } if (((from_bitField1_ & 0x00008000) != 0)) { - result.contentImpressionShare_ = contentImpressionShare_; + result.contentBudgetLostImpressionShare_ = contentBudgetLostImpressionShare_; to_bitField1_ |= 0x00008000; } if (((from_bitField1_ & 0x00010000) != 0)) { - result.conversionLastReceivedRequestDateTime_ = conversionLastReceivedRequestDateTime_; + result.contentImpressionShare_ = contentImpressionShare_; to_bitField1_ |= 0x00010000; } if (((from_bitField1_ & 0x00020000) != 0)) { - result.conversionLastConversionDate_ = conversionLastConversionDate_; + result.conversionLastReceivedRequestDateTime_ = conversionLastReceivedRequestDateTime_; to_bitField1_ |= 0x00020000; } if (((from_bitField1_ & 0x00040000) != 0)) { - result.contentRankLostImpressionShare_ = contentRankLostImpressionShare_; + result.conversionLastConversionDate_ = conversionLastConversionDate_; to_bitField1_ |= 0x00040000; } if (((from_bitField1_ & 0x00080000) != 0)) { - result.conversionsFromInteractionsRate_ = conversionsFromInteractionsRate_; + result.contentRankLostImpressionShare_ = contentRankLostImpressionShare_; to_bitField1_ |= 0x00080000; } if (((from_bitField1_ & 0x00100000) != 0)) { - result.conversionsValue_ = conversionsValue_; + result.conversionsFromInteractionsRate_ = conversionsFromInteractionsRate_; to_bitField1_ |= 0x00100000; } if (((from_bitField1_ & 0x00200000) != 0)) { - result.conversionsValueByConversionDate_ = conversionsValueByConversionDate_; + result.conversionsValue_ = conversionsValue_; to_bitField1_ |= 0x00200000; } if (((from_bitField1_ & 0x00400000) != 0)) { - result.newCustomerLifetimeValue_ = newCustomerLifetimeValue_; + result.conversionsValueByConversionDate_ = conversionsValueByConversionDate_; to_bitField1_ |= 0x00400000; } if (((from_bitField1_ & 0x00800000) != 0)) { - result.conversionsValuePerCost_ = conversionsValuePerCost_; + result.newCustomerLifetimeValue_ = newCustomerLifetimeValue_; to_bitField1_ |= 0x00800000; } if (((from_bitField1_ & 0x01000000) != 0)) { - result.conversionsFromInteractionsValuePerInteraction_ = conversionsFromInteractionsValuePerInteraction_; + result.conversionsValuePerCost_ = conversionsValuePerCost_; to_bitField1_ |= 0x01000000; } if (((from_bitField1_ & 0x02000000) != 0)) { - result.conversions_ = conversions_; + result.conversionsFromInteractionsValuePerInteraction_ = conversionsFromInteractionsValuePerInteraction_; to_bitField1_ |= 0x02000000; } if (((from_bitField1_ & 0x04000000) != 0)) { - result.conversionsByConversionDate_ = conversionsByConversionDate_; + result.conversions_ = conversions_; to_bitField1_ |= 0x04000000; } if (((from_bitField1_ & 0x08000000) != 0)) { - result.costMicros_ = costMicros_; + result.conversionsByConversionDate_ = conversionsByConversionDate_; to_bitField1_ |= 0x08000000; } if (((from_bitField1_ & 0x10000000) != 0)) { - result.costPerAllConversions_ = costPerAllConversions_; + result.costMicros_ = costMicros_; to_bitField1_ |= 0x10000000; } if (((from_bitField1_ & 0x20000000) != 0)) { - result.costPerConversion_ = costPerConversion_; + result.costPerAllConversions_ = costPerAllConversions_; to_bitField1_ |= 0x20000000; } if (((from_bitField1_ & 0x40000000) != 0)) { - result.costPerCurrentModelAttributedConversion_ = costPerCurrentModelAttributedConversion_; + result.costPerConversion_ = costPerConversion_; to_bitField1_ |= 0x40000000; } if (((from_bitField1_ & 0x80000000) != 0)) { - result.crossDeviceConversions_ = crossDeviceConversions_; + result.costPerCurrentModelAttributedConversion_ = costPerCurrentModelAttributedConversion_; to_bitField1_ |= 0x80000000; } result.bitField1_ |= to_bitField1_; @@ -13466,128 +15074,128 @@ private void buildPartial2(com.google.ads.googleads.v24.common.Metrics result) { int from_bitField2_ = bitField2_; int to_bitField2_ = 0; if (((from_bitField2_ & 0x00000001) != 0)) { - result.crossDeviceConversionsByConversionDate_ = crossDeviceConversionsByConversionDate_; + result.crossDeviceConversions_ = crossDeviceConversions_; to_bitField2_ |= 0x00000001; } if (((from_bitField2_ & 0x00000002) != 0)) { - result.crossDeviceConversionsValue_ = crossDeviceConversionsValue_; + result.crossDeviceConversionsByConversionDate_ = crossDeviceConversionsByConversionDate_; to_bitField2_ |= 0x00000002; } if (((from_bitField2_ & 0x00000004) != 0)) { - result.crossDeviceConversionsValueMicros_ = crossDeviceConversionsValueMicros_; + result.crossDeviceConversionsValue_ = crossDeviceConversionsValue_; to_bitField2_ |= 0x00000004; } if (((from_bitField2_ & 0x00000008) != 0)) { - result.crossDeviceConversionsValueByConversionDate_ = crossDeviceConversionsValueByConversionDate_; + result.crossDeviceConversionsValueMicros_ = crossDeviceConversionsValueMicros_; to_bitField2_ |= 0x00000008; } if (((from_bitField2_ & 0x00000010) != 0)) { - result.ctr_ = ctr_; + result.crossDeviceConversionsValueByConversionDate_ = crossDeviceConversionsValueByConversionDate_; to_bitField2_ |= 0x00000010; } if (((from_bitField2_ & 0x00000020) != 0)) { - result.currentModelAttributedConversions_ = currentModelAttributedConversions_; + result.ctr_ = ctr_; to_bitField2_ |= 0x00000020; } if (((from_bitField2_ & 0x00000040) != 0)) { - result.currentModelAttributedConversionsFromInteractionsRate_ = currentModelAttributedConversionsFromInteractionsRate_; + result.currentModelAttributedConversions_ = currentModelAttributedConversions_; to_bitField2_ |= 0x00000040; } if (((from_bitField2_ & 0x00000080) != 0)) { - result.currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = currentModelAttributedConversionsFromInteractionsValuePerInteraction_; + result.currentModelAttributedConversionsFromInteractionsRate_ = currentModelAttributedConversionsFromInteractionsRate_; to_bitField2_ |= 0x00000080; } if (((from_bitField2_ & 0x00000100) != 0)) { - result.currentModelAttributedConversionsValue_ = currentModelAttributedConversionsValue_; + result.currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = currentModelAttributedConversionsFromInteractionsValuePerInteraction_; to_bitField2_ |= 0x00000100; } if (((from_bitField2_ & 0x00000200) != 0)) { - result.currentModelAttributedConversionsValuePerCost_ = currentModelAttributedConversionsValuePerCost_; + result.currentModelAttributedConversionsValue_ = currentModelAttributedConversionsValue_; to_bitField2_ |= 0x00000200; } if (((from_bitField2_ & 0x00000400) != 0)) { - result.engagementRate_ = engagementRate_; + result.currentModelAttributedConversionsValuePerCost_ = currentModelAttributedConversionsValuePerCost_; to_bitField2_ |= 0x00000400; } if (((from_bitField2_ & 0x00000800) != 0)) { - result.engagements_ = engagements_; + result.engagementRate_ = engagementRate_; to_bitField2_ |= 0x00000800; } if (((from_bitField2_ & 0x00001000) != 0)) { - result.hotelAverageLeadValueMicros_ = hotelAverageLeadValueMicros_; + result.engagements_ = engagements_; to_bitField2_ |= 0x00001000; } if (((from_bitField2_ & 0x00002000) != 0)) { - result.hotelCommissionRateMicros_ = hotelCommissionRateMicros_; + result.hotelAverageLeadValueMicros_ = hotelAverageLeadValueMicros_; to_bitField2_ |= 0x00002000; } if (((from_bitField2_ & 0x00004000) != 0)) { - result.hotelExpectedCommissionCost_ = hotelExpectedCommissionCost_; + result.hotelCommissionRateMicros_ = hotelCommissionRateMicros_; to_bitField2_ |= 0x00004000; } if (((from_bitField2_ & 0x00008000) != 0)) { - result.hotelPriceDifferencePercentage_ = hotelPriceDifferencePercentage_; + result.hotelExpectedCommissionCost_ = hotelExpectedCommissionCost_; to_bitField2_ |= 0x00008000; } if (((from_bitField2_ & 0x00010000) != 0)) { - result.hotelEligibleImpressions_ = hotelEligibleImpressions_; + result.hotelPriceDifferencePercentage_ = hotelPriceDifferencePercentage_; to_bitField2_ |= 0x00010000; } if (((from_bitField2_ & 0x00020000) != 0)) { - result.historicalCreativeQualityScore_ = historicalCreativeQualityScore_; + result.hotelEligibleImpressions_ = hotelEligibleImpressions_; + to_bitField2_ |= 0x00020000; } if (((from_bitField2_ & 0x00040000) != 0)) { - result.historicalLandingPageQualityScore_ = historicalLandingPageQualityScore_; + result.historicalCreativeQualityScore_ = historicalCreativeQualityScore_; } if (((from_bitField2_ & 0x00080000) != 0)) { - result.historicalQualityScore_ = historicalQualityScore_; - to_bitField2_ |= 0x00020000; + result.historicalLandingPageQualityScore_ = historicalLandingPageQualityScore_; } if (((from_bitField2_ & 0x00100000) != 0)) { - result.historicalSearchPredictedCtr_ = historicalSearchPredictedCtr_; + result.historicalQualityScore_ = historicalQualityScore_; + to_bitField2_ |= 0x00040000; } if (((from_bitField2_ & 0x00200000) != 0)) { - result.gmailForwards_ = gmailForwards_; - to_bitField2_ |= 0x00040000; + result.historicalSearchPredictedCtr_ = historicalSearchPredictedCtr_; } if (((from_bitField2_ & 0x00400000) != 0)) { - result.gmailSaves_ = gmailSaves_; + result.gmailForwards_ = gmailForwards_; to_bitField2_ |= 0x00080000; } if (((from_bitField2_ & 0x00800000) != 0)) { - result.gmailSecondaryClicks_ = gmailSecondaryClicks_; + result.gmailSaves_ = gmailSaves_; to_bitField2_ |= 0x00100000; } if (((from_bitField2_ & 0x01000000) != 0)) { - result.impressionsFromStoreReach_ = impressionsFromStoreReach_; + result.gmailSecondaryClicks_ = gmailSecondaryClicks_; to_bitField2_ |= 0x00200000; } if (((from_bitField2_ & 0x02000000) != 0)) { - result.impressions_ = impressions_; + result.impressionsFromStoreReach_ = impressionsFromStoreReach_; to_bitField2_ |= 0x00400000; } if (((from_bitField2_ & 0x04000000) != 0)) { - result.interactionRate_ = interactionRate_; + result.impressions_ = impressions_; to_bitField2_ |= 0x00800000; } if (((from_bitField2_ & 0x08000000) != 0)) { - result.interactions_ = interactions_; + result.interactionRate_ = interactionRate_; to_bitField2_ |= 0x01000000; } if (((from_bitField2_ & 0x10000000) != 0)) { - interactionEventTypes_.makeImmutable(); - result.interactionEventTypes_ = interactionEventTypes_; + result.interactions_ = interactions_; + to_bitField2_ |= 0x02000000; } if (((from_bitField2_ & 0x20000000) != 0)) { - result.invalidClickRate_ = invalidClickRate_; - to_bitField2_ |= 0x02000000; + interactionEventTypes_.makeImmutable(); + result.interactionEventTypes_ = interactionEventTypes_; } if (((from_bitField2_ & 0x40000000) != 0)) { - result.invalidClicks_ = invalidClicks_; + result.invalidClickRate_ = invalidClickRate_; to_bitField2_ |= 0x04000000; } if (((from_bitField2_ & 0x80000000) != 0)) { - result.generalInvalidClickRate_ = generalInvalidClickRate_; + result.invalidClicks_ = invalidClicks_; to_bitField2_ |= 0x08000000; } result.bitField2_ |= to_bitField2_; @@ -13597,134 +15205,134 @@ private void buildPartial3(com.google.ads.googleads.v24.common.Metrics result) { int from_bitField3_ = bitField3_; int to_bitField2_ = 0; if (((from_bitField3_ & 0x00000001) != 0)) { - result.generalInvalidClicks_ = generalInvalidClicks_; + result.generalInvalidClickRate_ = generalInvalidClickRate_; to_bitField2_ |= 0x10000000; } if (((from_bitField3_ & 0x00000002) != 0)) { - result.messageChats_ = messageChats_; + result.generalInvalidClicks_ = generalInvalidClicks_; to_bitField2_ |= 0x20000000; } if (((from_bitField3_ & 0x00000004) != 0)) { - result.messageImpressions_ = messageImpressions_; + result.messageChats_ = messageChats_; to_bitField2_ |= 0x40000000; } if (((from_bitField3_ & 0x00000008) != 0)) { - result.messageChatRate_ = messageChatRate_; + result.messageImpressions_ = messageImpressions_; to_bitField2_ |= 0x80000000; } int to_bitField3_ = 0; if (((from_bitField3_ & 0x00000010) != 0)) { - result.mobileFriendlyClicksPercentage_ = mobileFriendlyClicksPercentage_; + result.messageChatRate_ = messageChatRate_; to_bitField3_ |= 0x00000001; } if (((from_bitField3_ & 0x00000020) != 0)) { - result.optimizationScoreUplift_ = optimizationScoreUplift_; + result.mobileFriendlyClicksPercentage_ = mobileFriendlyClicksPercentage_; to_bitField3_ |= 0x00000002; } if (((from_bitField3_ & 0x00000040) != 0)) { - result.optimizationScoreUrl_ = optimizationScoreUrl_; + result.optimizationScoreUplift_ = optimizationScoreUplift_; to_bitField3_ |= 0x00000004; } if (((from_bitField3_ & 0x00000080) != 0)) { - result.organicClicks_ = organicClicks_; + result.optimizationScoreUrl_ = optimizationScoreUrl_; to_bitField3_ |= 0x00000008; } if (((from_bitField3_ & 0x00000100) != 0)) { - result.organicClicksPerQuery_ = organicClicksPerQuery_; + result.organicClicks_ = organicClicks_; to_bitField3_ |= 0x00000010; } if (((from_bitField3_ & 0x00000200) != 0)) { - result.organicImpressions_ = organicImpressions_; + result.organicClicksPerQuery_ = organicClicksPerQuery_; to_bitField3_ |= 0x00000020; } if (((from_bitField3_ & 0x00000400) != 0)) { - result.organicImpressionsPerQuery_ = organicImpressionsPerQuery_; + result.organicImpressions_ = organicImpressions_; to_bitField3_ |= 0x00000040; } if (((from_bitField3_ & 0x00000800) != 0)) { - result.organicQueries_ = organicQueries_; + result.organicImpressionsPerQuery_ = organicImpressionsPerQuery_; to_bitField3_ |= 0x00000080; } if (((from_bitField3_ & 0x00001000) != 0)) { - result.percentNewVisitors_ = percentNewVisitors_; + result.organicQueries_ = organicQueries_; to_bitField3_ |= 0x00000100; } if (((from_bitField3_ & 0x00002000) != 0)) { - result.phoneCalls_ = phoneCalls_; + result.percentNewVisitors_ = percentNewVisitors_; to_bitField3_ |= 0x00000200; } if (((from_bitField3_ & 0x00004000) != 0)) { - result.phoneImpressions_ = phoneImpressions_; + result.phoneCalls_ = phoneCalls_; to_bitField3_ |= 0x00000400; } if (((from_bitField3_ & 0x00008000) != 0)) { - result.phoneThroughRate_ = phoneThroughRate_; + result.phoneImpressions_ = phoneImpressions_; to_bitField3_ |= 0x00000800; } if (((from_bitField3_ & 0x00010000) != 0)) { - result.relativeCtr_ = relativeCtr_; + result.phoneThroughRate_ = phoneThroughRate_; to_bitField3_ |= 0x00001000; } if (((from_bitField3_ & 0x00020000) != 0)) { - result.searchAbsoluteTopImpressionShare_ = searchAbsoluteTopImpressionShare_; + result.relativeCtr_ = relativeCtr_; to_bitField3_ |= 0x00002000; } if (((from_bitField3_ & 0x00040000) != 0)) { - result.searchBudgetLostAbsoluteTopImpressionShare_ = searchBudgetLostAbsoluteTopImpressionShare_; + result.searchAbsoluteTopImpressionShare_ = searchAbsoluteTopImpressionShare_; to_bitField3_ |= 0x00004000; } if (((from_bitField3_ & 0x00080000) != 0)) { - result.searchBudgetLostImpressionShare_ = searchBudgetLostImpressionShare_; + result.searchBudgetLostAbsoluteTopImpressionShare_ = searchBudgetLostAbsoluteTopImpressionShare_; to_bitField3_ |= 0x00008000; } if (((from_bitField3_ & 0x00100000) != 0)) { - result.searchBudgetLostTopImpressionShare_ = searchBudgetLostTopImpressionShare_; + result.searchBudgetLostImpressionShare_ = searchBudgetLostImpressionShare_; to_bitField3_ |= 0x00010000; } if (((from_bitField3_ & 0x00200000) != 0)) { - result.searchClickShare_ = searchClickShare_; + result.searchBudgetLostTopImpressionShare_ = searchBudgetLostTopImpressionShare_; to_bitField3_ |= 0x00020000; } if (((from_bitField3_ & 0x00400000) != 0)) { - result.searchExactMatchImpressionShare_ = searchExactMatchImpressionShare_; + result.searchClickShare_ = searchClickShare_; to_bitField3_ |= 0x00040000; } if (((from_bitField3_ & 0x00800000) != 0)) { - result.searchImpressionShare_ = searchImpressionShare_; + result.searchExactMatchImpressionShare_ = searchExactMatchImpressionShare_; to_bitField3_ |= 0x00080000; } if (((from_bitField3_ & 0x01000000) != 0)) { - result.searchRankLostAbsoluteTopImpressionShare_ = searchRankLostAbsoluteTopImpressionShare_; + result.searchImpressionShare_ = searchImpressionShare_; to_bitField3_ |= 0x00100000; } if (((from_bitField3_ & 0x02000000) != 0)) { - result.searchRankLostImpressionShare_ = searchRankLostImpressionShare_; + result.searchRankLostAbsoluteTopImpressionShare_ = searchRankLostAbsoluteTopImpressionShare_; to_bitField3_ |= 0x00200000; } if (((from_bitField3_ & 0x04000000) != 0)) { - result.searchRankLostTopImpressionShare_ = searchRankLostTopImpressionShare_; + result.searchRankLostImpressionShare_ = searchRankLostImpressionShare_; to_bitField3_ |= 0x00400000; } if (((from_bitField3_ & 0x08000000) != 0)) { - result.searchTopImpressionShare_ = searchTopImpressionShare_; + result.searchRankLostTopImpressionShare_ = searchRankLostTopImpressionShare_; to_bitField3_ |= 0x00800000; } if (((from_bitField3_ & 0x10000000) != 0)) { - result.searchVolume_ = searchVolumeBuilder_ == null - ? searchVolume_ - : searchVolumeBuilder_.build(); + result.searchTopImpressionShare_ = searchTopImpressionShare_; to_bitField3_ |= 0x01000000; } if (((from_bitField3_ & 0x20000000) != 0)) { - result.speedScore_ = speedScore_; + result.searchVolume_ = searchVolumeBuilder_ == null + ? searchVolume_ + : searchVolumeBuilder_.build(); to_bitField3_ |= 0x02000000; } if (((from_bitField3_ & 0x40000000) != 0)) { - result.averageTargetCpaMicros_ = averageTargetCpaMicros_; + result.speedScore_ = speedScore_; to_bitField3_ |= 0x04000000; } if (((from_bitField3_ & 0x80000000) != 0)) { - result.averageTargetRoas_ = averageTargetRoas_; + result.averageTargetCpaMicros_ = averageTargetCpaMicros_; to_bitField3_ |= 0x08000000; } result.bitField2_ |= to_bitField2_; @@ -13735,127 +15343,127 @@ private void buildPartial4(com.google.ads.googleads.v24.common.Metrics result) { int from_bitField4_ = bitField4_; int to_bitField3_ = 0; if (((from_bitField4_ & 0x00000001) != 0)) { - result.topImpressionPercentage_ = topImpressionPercentage_; + result.averageTargetRoas_ = averageTargetRoas_; to_bitField3_ |= 0x10000000; } if (((from_bitField4_ & 0x00000002) != 0)) { - result.validAcceleratedMobilePagesClicksPercentage_ = validAcceleratedMobilePagesClicksPercentage_; + result.topImpressionPercentage_ = topImpressionPercentage_; to_bitField3_ |= 0x20000000; } if (((from_bitField4_ & 0x00000004) != 0)) { - result.valuePerAllConversions_ = valuePerAllConversions_; + result.validAcceleratedMobilePagesClicksPercentage_ = validAcceleratedMobilePagesClicksPercentage_; to_bitField3_ |= 0x40000000; } if (((from_bitField4_ & 0x00000008) != 0)) { - result.valuePerAllConversionsByConversionDate_ = valuePerAllConversionsByConversionDate_; + result.valuePerAllConversions_ = valuePerAllConversions_; to_bitField3_ |= 0x80000000; } int to_bitField4_ = 0; if (((from_bitField4_ & 0x00000010) != 0)) { - result.valuePerConversion_ = valuePerConversion_; + result.valuePerAllConversionsByConversionDate_ = valuePerAllConversionsByConversionDate_; to_bitField4_ |= 0x00000001; } if (((from_bitField4_ & 0x00000020) != 0)) { - result.valuePerConversionsByConversionDate_ = valuePerConversionsByConversionDate_; + result.valuePerConversion_ = valuePerConversion_; to_bitField4_ |= 0x00000002; } if (((from_bitField4_ & 0x00000040) != 0)) { - result.valuePerCurrentModelAttributedConversion_ = valuePerCurrentModelAttributedConversion_; + result.valuePerConversionsByConversionDate_ = valuePerConversionsByConversionDate_; to_bitField4_ |= 0x00000004; } if (((from_bitField4_ & 0x00000080) != 0)) { - result.videoQuartileP100Rate_ = videoQuartileP100Rate_; + result.valuePerCurrentModelAttributedConversion_ = valuePerCurrentModelAttributedConversion_; to_bitField4_ |= 0x00000008; } if (((from_bitField4_ & 0x00000100) != 0)) { - result.videoQuartileP25Rate_ = videoQuartileP25Rate_; + result.videoQuartileP100Rate_ = videoQuartileP100Rate_; to_bitField4_ |= 0x00000010; } if (((from_bitField4_ & 0x00000200) != 0)) { - result.videoQuartileP50Rate_ = videoQuartileP50Rate_; + result.videoQuartileP25Rate_ = videoQuartileP25Rate_; to_bitField4_ |= 0x00000020; } if (((from_bitField4_ & 0x00000400) != 0)) { - result.videoQuartileP75Rate_ = videoQuartileP75Rate_; + result.videoQuartileP50Rate_ = videoQuartileP50Rate_; to_bitField4_ |= 0x00000040; } if (((from_bitField4_ & 0x00000800) != 0)) { - result.videoTrueviewViewRate_ = videoTrueviewViewRate_; + result.videoQuartileP75Rate_ = videoQuartileP75Rate_; to_bitField4_ |= 0x00000080; } if (((from_bitField4_ & 0x00001000) != 0)) { - result.videoTrueviewViews_ = videoTrueviewViews_; + result.videoTrueviewViewRate_ = videoTrueviewViewRate_; to_bitField4_ |= 0x00000100; } if (((from_bitField4_ & 0x00002000) != 0)) { - result.viewThroughConversions_ = viewThroughConversions_; + result.videoTrueviewViews_ = videoTrueviewViews_; to_bitField4_ |= 0x00000200; } if (((from_bitField4_ & 0x00004000) != 0)) { - result.skAdNetworkInstalls_ = skAdNetworkInstalls_; + result.viewThroughConversions_ = viewThroughConversions_; + to_bitField4_ |= 0x00000400; } if (((from_bitField4_ & 0x00008000) != 0)) { - result.skAdNetworkTotalConversions_ = skAdNetworkTotalConversions_; + result.skAdNetworkInstalls_ = skAdNetworkInstalls_; } if (((from_bitField4_ & 0x00010000) != 0)) { - result.publisherPurchasedClicks_ = publisherPurchasedClicks_; + result.skAdNetworkTotalConversions_ = skAdNetworkTotalConversions_; } if (((from_bitField4_ & 0x00020000) != 0)) { - result.publisherOrganicClicks_ = publisherOrganicClicks_; + result.publisherPurchasedClicks_ = publisherPurchasedClicks_; } if (((from_bitField4_ & 0x00040000) != 0)) { - result.publisherUnknownClicks_ = publisherUnknownClicks_; + result.publisherOrganicClicks_ = publisherOrganicClicks_; } if (((from_bitField4_ & 0x00080000) != 0)) { - result.allConversionsFromLocationAssetClickToCall_ = allConversionsFromLocationAssetClickToCall_; - to_bitField4_ |= 0x00000400; + result.publisherUnknownClicks_ = publisherUnknownClicks_; } if (((from_bitField4_ & 0x00100000) != 0)) { - result.allConversionsFromLocationAssetDirections_ = allConversionsFromLocationAssetDirections_; + result.allConversionsFromLocationAssetClickToCall_ = allConversionsFromLocationAssetClickToCall_; to_bitField4_ |= 0x00000800; } if (((from_bitField4_ & 0x00200000) != 0)) { - result.allConversionsFromLocationAssetMenu_ = allConversionsFromLocationAssetMenu_; + result.allConversionsFromLocationAssetDirections_ = allConversionsFromLocationAssetDirections_; to_bitField4_ |= 0x00001000; } if (((from_bitField4_ & 0x00400000) != 0)) { - result.allConversionsFromLocationAssetOrder_ = allConversionsFromLocationAssetOrder_; + result.allConversionsFromLocationAssetMenu_ = allConversionsFromLocationAssetMenu_; to_bitField4_ |= 0x00002000; } if (((from_bitField4_ & 0x00800000) != 0)) { - result.allConversionsFromLocationAssetOtherEngagement_ = allConversionsFromLocationAssetOtherEngagement_; + result.allConversionsFromLocationAssetOrder_ = allConversionsFromLocationAssetOrder_; to_bitField4_ |= 0x00004000; } if (((from_bitField4_ & 0x01000000) != 0)) { - result.allConversionsFromLocationAssetStoreVisits_ = allConversionsFromLocationAssetStoreVisits_; + result.allConversionsFromLocationAssetOtherEngagement_ = allConversionsFromLocationAssetOtherEngagement_; to_bitField4_ |= 0x00008000; } if (((from_bitField4_ & 0x02000000) != 0)) { - result.allConversionsFromLocationAssetWebsite_ = allConversionsFromLocationAssetWebsite_; + result.allConversionsFromLocationAssetStoreVisits_ = allConversionsFromLocationAssetStoreVisits_; to_bitField4_ |= 0x00010000; } if (((from_bitField4_ & 0x04000000) != 0)) { - result.eligibleImpressionsFromLocationAssetStoreReach_ = eligibleImpressionsFromLocationAssetStoreReach_; + result.allConversionsFromLocationAssetWebsite_ = allConversionsFromLocationAssetWebsite_; to_bitField4_ |= 0x00020000; } if (((from_bitField4_ & 0x08000000) != 0)) { - result.viewThroughConversionsFromLocationAssetClickToCall_ = viewThroughConversionsFromLocationAssetClickToCall_; + result.eligibleImpressionsFromLocationAssetStoreReach_ = eligibleImpressionsFromLocationAssetStoreReach_; to_bitField4_ |= 0x00040000; } if (((from_bitField4_ & 0x10000000) != 0)) { - result.viewThroughConversionsFromLocationAssetDirections_ = viewThroughConversionsFromLocationAssetDirections_; + result.viewThroughConversionsFromLocationAssetClickToCall_ = viewThroughConversionsFromLocationAssetClickToCall_; to_bitField4_ |= 0x00080000; } if (((from_bitField4_ & 0x20000000) != 0)) { - result.viewThroughConversionsFromLocationAssetMenu_ = viewThroughConversionsFromLocationAssetMenu_; + result.viewThroughConversionsFromLocationAssetDirections_ = viewThroughConversionsFromLocationAssetDirections_; to_bitField4_ |= 0x00100000; } if (((from_bitField4_ & 0x40000000) != 0)) { - result.viewThroughConversionsFromLocationAssetOrder_ = viewThroughConversionsFromLocationAssetOrder_; + result.viewThroughConversionsFromLocationAssetMenu_ = viewThroughConversionsFromLocationAssetMenu_; to_bitField4_ |= 0x00200000; } if (((from_bitField4_ & 0x80000000) != 0)) { - result.viewThroughConversionsFromLocationAssetOtherEngagement_ = viewThroughConversionsFromLocationAssetOtherEngagement_; + result.viewThroughConversionsFromLocationAssetOrder_ = viewThroughConversionsFromLocationAssetOrder_; to_bitField4_ |= 0x00400000; } result.bitField3_ |= to_bitField3_; @@ -13866,132 +15474,132 @@ private void buildPartial5(com.google.ads.googleads.v24.common.Metrics result) { int from_bitField5_ = bitField5_; int to_bitField4_ = 0; if (((from_bitField5_ & 0x00000001) != 0)) { - result.viewThroughConversionsFromLocationAssetStoreVisits_ = viewThroughConversionsFromLocationAssetStoreVisits_; + result.viewThroughConversionsFromLocationAssetOtherEngagement_ = viewThroughConversionsFromLocationAssetOtherEngagement_; to_bitField4_ |= 0x00800000; } if (((from_bitField5_ & 0x00000002) != 0)) { - result.viewThroughConversionsFromLocationAssetWebsite_ = viewThroughConversionsFromLocationAssetWebsite_; + result.viewThroughConversionsFromLocationAssetStoreVisits_ = viewThroughConversionsFromLocationAssetStoreVisits_; to_bitField4_ |= 0x01000000; } if (((from_bitField5_ & 0x00000004) != 0)) { - result.orders_ = orders_; + result.viewThroughConversionsFromLocationAssetWebsite_ = viewThroughConversionsFromLocationAssetWebsite_; to_bitField4_ |= 0x02000000; } if (((from_bitField5_ & 0x00000008) != 0)) { - result.averageOrderValueMicros_ = averageOrderValueMicros_; + result.orders_ = orders_; to_bitField4_ |= 0x04000000; } if (((from_bitField5_ & 0x00000010) != 0)) { - result.averageCartSize_ = averageCartSize_; + result.averageOrderValueMicros_ = averageOrderValueMicros_; to_bitField4_ |= 0x08000000; } if (((from_bitField5_ & 0x00000020) != 0)) { - result.costOfGoodsSoldMicros_ = costOfGoodsSoldMicros_; + result.averageCartSize_ = averageCartSize_; to_bitField4_ |= 0x10000000; } if (((from_bitField5_ & 0x00000040) != 0)) { - result.grossProfitMicros_ = grossProfitMicros_; + result.costOfGoodsSoldMicros_ = costOfGoodsSoldMicros_; to_bitField4_ |= 0x20000000; } if (((from_bitField5_ & 0x00000080) != 0)) { - result.grossProfitMargin_ = grossProfitMargin_; + result.grossProfitMicros_ = grossProfitMicros_; to_bitField4_ |= 0x40000000; } if (((from_bitField5_ & 0x00000100) != 0)) { - result.revenueMicros_ = revenueMicros_; + result.grossProfitMargin_ = grossProfitMargin_; to_bitField4_ |= 0x80000000; } int to_bitField5_ = 0; if (((from_bitField5_ & 0x00000200) != 0)) { - result.unitsSold_ = unitsSold_; + result.revenueMicros_ = revenueMicros_; to_bitField5_ |= 0x00000001; } if (((from_bitField5_ & 0x00000400) != 0)) { - result.crossSellCostOfGoodsSoldMicros_ = crossSellCostOfGoodsSoldMicros_; + result.unitsSold_ = unitsSold_; to_bitField5_ |= 0x00000002; } if (((from_bitField5_ & 0x00000800) != 0)) { - result.crossSellGrossProfitMicros_ = crossSellGrossProfitMicros_; + result.crossSellCostOfGoodsSoldMicros_ = crossSellCostOfGoodsSoldMicros_; to_bitField5_ |= 0x00000004; } if (((from_bitField5_ & 0x00001000) != 0)) { - result.crossSellRevenueMicros_ = crossSellRevenueMicros_; + result.crossSellGrossProfitMicros_ = crossSellGrossProfitMicros_; to_bitField5_ |= 0x00000008; } if (((from_bitField5_ & 0x00002000) != 0)) { - result.crossSellUnitsSold_ = crossSellUnitsSold_; + result.crossSellRevenueMicros_ = crossSellRevenueMicros_; to_bitField5_ |= 0x00000010; } if (((from_bitField5_ & 0x00004000) != 0)) { - result.leadCostOfGoodsSoldMicros_ = leadCostOfGoodsSoldMicros_; + result.crossSellUnitsSold_ = crossSellUnitsSold_; to_bitField5_ |= 0x00000020; } if (((from_bitField5_ & 0x00008000) != 0)) { - result.leadGrossProfitMicros_ = leadGrossProfitMicros_; + result.leadCostOfGoodsSoldMicros_ = leadCostOfGoodsSoldMicros_; to_bitField5_ |= 0x00000040; } if (((from_bitField5_ & 0x00010000) != 0)) { - result.leadRevenueMicros_ = leadRevenueMicros_; + result.leadGrossProfitMicros_ = leadGrossProfitMicros_; to_bitField5_ |= 0x00000080; } if (((from_bitField5_ & 0x00020000) != 0)) { - result.leadUnitsSold_ = leadUnitsSold_; + result.leadRevenueMicros_ = leadRevenueMicros_; to_bitField5_ |= 0x00000100; } if (((from_bitField5_ & 0x00040000) != 0)) { - result.uniqueUsers_ = uniqueUsers_; + result.leadUnitsSold_ = leadUnitsSold_; to_bitField5_ |= 0x00000200; } if (((from_bitField5_ & 0x00080000) != 0)) { - result.averageImpressionFrequencyPerUser_ = averageImpressionFrequencyPerUser_; + result.uniqueUsers_ = uniqueUsers_; to_bitField5_ |= 0x00000400; } if (((from_bitField5_ & 0x00100000) != 0)) { - result.linkedEntitiesCount_ = linkedEntitiesCount_; + result.averageImpressionFrequencyPerUser_ = averageImpressionFrequencyPerUser_; to_bitField5_ |= 0x00000800; } if (((from_bitField5_ & 0x00200000) != 0)) { - linkedSampleEntities_.makeImmutable(); - result.linkedSampleEntities_ = linkedSampleEntities_; + result.linkedEntitiesCount_ = linkedEntitiesCount_; + to_bitField5_ |= 0x00001000; } if (((from_bitField5_ & 0x00400000) != 0)) { - result.assetPinnedTotalCount_ = assetPinnedTotalCount_; - to_bitField5_ |= 0x00001000; + linkedSampleEntities_.makeImmutable(); + result.linkedSampleEntities_ = linkedSampleEntities_; } if (((from_bitField5_ & 0x00800000) != 0)) { - result.assetPinnedAsHeadlinePositionOneCount_ = assetPinnedAsHeadlinePositionOneCount_; + result.assetPinnedTotalCount_ = assetPinnedTotalCount_; to_bitField5_ |= 0x00002000; } if (((from_bitField5_ & 0x01000000) != 0)) { - result.assetPinnedAsHeadlinePositionTwoCount_ = assetPinnedAsHeadlinePositionTwoCount_; + result.assetPinnedAsHeadlinePositionOneCount_ = assetPinnedAsHeadlinePositionOneCount_; to_bitField5_ |= 0x00004000; } if (((from_bitField5_ & 0x02000000) != 0)) { - result.assetPinnedAsHeadlinePositionThreeCount_ = assetPinnedAsHeadlinePositionThreeCount_; + result.assetPinnedAsHeadlinePositionTwoCount_ = assetPinnedAsHeadlinePositionTwoCount_; to_bitField5_ |= 0x00008000; } if (((from_bitField5_ & 0x04000000) != 0)) { - result.assetPinnedAsDescriptionPositionOneCount_ = assetPinnedAsDescriptionPositionOneCount_; + result.assetPinnedAsHeadlinePositionThreeCount_ = assetPinnedAsHeadlinePositionThreeCount_; to_bitField5_ |= 0x00010000; } if (((from_bitField5_ & 0x08000000) != 0)) { - result.assetPinnedAsDescriptionPositionTwoCount_ = assetPinnedAsDescriptionPositionTwoCount_; + result.assetPinnedAsDescriptionPositionOneCount_ = assetPinnedAsDescriptionPositionOneCount_; to_bitField5_ |= 0x00020000; } if (((from_bitField5_ & 0x10000000) != 0)) { - result.storeVisitsLastClickModelAttributedConversions_ = storeVisitsLastClickModelAttributedConversions_; + result.assetPinnedAsDescriptionPositionTwoCount_ = assetPinnedAsDescriptionPositionTwoCount_; to_bitField5_ |= 0x00040000; } if (((from_bitField5_ & 0x20000000) != 0)) { - result.resultsConversionsPurchase_ = resultsConversionsPurchase_; + result.storeVisitsLastClickModelAttributedConversions_ = storeVisitsLastClickModelAttributedConversions_; to_bitField5_ |= 0x00080000; } if (((from_bitField5_ & 0x40000000) != 0)) { - result.videoTrueviewViewRateInFeed_ = videoTrueviewViewRateInFeed_; + result.resultsConversionsPurchase_ = resultsConversionsPurchase_; to_bitField5_ |= 0x00100000; } if (((from_bitField5_ & 0x80000000) != 0)) { - result.videoTrueviewViewRateInStream_ = videoTrueviewViewRateInStream_; + result.videoTrueviewViewRateInFeed_ = videoTrueviewViewRateInFeed_; to_bitField5_ |= 0x00200000; } result.bitField4_ |= to_bitField4_; @@ -14002,132 +15610,132 @@ private void buildPartial6(com.google.ads.googleads.v24.common.Metrics result) { int from_bitField6_ = bitField6_; int to_bitField5_ = 0; if (((from_bitField6_ & 0x00000001) != 0)) { - result.videoTrueviewViewRateShorts_ = videoTrueviewViewRateShorts_; + result.videoTrueviewViewRateInStream_ = videoTrueviewViewRateInStream_; to_bitField5_ |= 0x00400000; } if (((from_bitField6_ & 0x00000002) != 0)) { - result.coviewedImpressions_ = coviewedImpressions_; + result.videoTrueviewViewRateShorts_ = videoTrueviewViewRateShorts_; to_bitField5_ |= 0x00800000; } if (((from_bitField6_ & 0x00000004) != 0)) { - result.primaryImpressions_ = primaryImpressions_; + result.coviewedImpressions_ = coviewedImpressions_; to_bitField5_ |= 0x01000000; } if (((from_bitField6_ & 0x00000008) != 0)) { - result.platformComparableConversionsFromInteractionsRate_ = platformComparableConversionsFromInteractionsRate_; + result.primaryImpressions_ = primaryImpressions_; to_bitField5_ |= 0x02000000; } if (((from_bitField6_ & 0x00000010) != 0)) { - result.platformComparableConversions_ = platformComparableConversions_; + result.platformComparableConversionsFromInteractionsRate_ = platformComparableConversionsFromInteractionsRate_; to_bitField5_ |= 0x04000000; } if (((from_bitField6_ & 0x00000020) != 0)) { - result.platformComparableConversionsValue_ = platformComparableConversionsValue_; + result.platformComparableConversions_ = platformComparableConversions_; to_bitField5_ |= 0x08000000; } if (((from_bitField6_ & 0x00000040) != 0)) { - result.platformComparableConversionsValuePerCost_ = platformComparableConversionsValuePerCost_; + result.platformComparableConversionsValue_ = platformComparableConversionsValue_; to_bitField5_ |= 0x10000000; } if (((from_bitField6_ & 0x00000080) != 0)) { - result.platformComparableConversionsByConversionDate_ = platformComparableConversionsByConversionDate_; + result.platformComparableConversionsValuePerCost_ = platformComparableConversionsValuePerCost_; to_bitField5_ |= 0x20000000; } if (((from_bitField6_ & 0x00000100) != 0)) { - result.platformComparableConversionsValueByConversionDate_ = platformComparableConversionsValueByConversionDate_; + result.platformComparableConversionsByConversionDate_ = platformComparableConversionsByConversionDate_; to_bitField5_ |= 0x40000000; } if (((from_bitField6_ & 0x00000200) != 0)) { - result.platformComparableConversionsFromInteractionsValuePerInteraction_ = platformComparableConversionsFromInteractionsValuePerInteraction_; + result.platformComparableConversionsValueByConversionDate_ = platformComparableConversionsValueByConversionDate_; to_bitField5_ |= 0x80000000; } int to_bitField6_ = 0; if (((from_bitField6_ & 0x00000400) != 0)) { - result.costPerPlatformComparableConversion_ = costPerPlatformComparableConversion_; + result.platformComparableConversionsFromInteractionsValuePerInteraction_ = platformComparableConversionsFromInteractionsValuePerInteraction_; to_bitField6_ |= 0x00000001; } if (((from_bitField6_ & 0x00000800) != 0)) { - result.valuePerPlatformComparableConversion_ = valuePerPlatformComparableConversion_; + result.costPerPlatformComparableConversion_ = costPerPlatformComparableConversion_; to_bitField6_ |= 0x00000002; } if (((from_bitField6_ & 0x00001000) != 0)) { - result.valuePerPlatformComparableConversionsByConversionDate_ = valuePerPlatformComparableConversionsByConversionDate_; + result.valuePerPlatformComparableConversion_ = valuePerPlatformComparableConversion_; to_bitField6_ |= 0x00000004; } if (((from_bitField6_ & 0x00002000) != 0)) { - result.costConvertedCurrencyPerPlatformComparableConversion_ = costConvertedCurrencyPerPlatformComparableConversion_; + result.valuePerPlatformComparableConversionsByConversionDate_ = valuePerPlatformComparableConversionsByConversionDate_; to_bitField6_ |= 0x00000008; } if (((from_bitField6_ & 0x00004000) != 0)) { - result.uniqueUsersTwoPlus_ = uniqueUsersTwoPlus_; + result.costConvertedCurrencyPerPlatformComparableConversion_ = costConvertedCurrencyPerPlatformComparableConversion_; to_bitField6_ |= 0x00000010; } if (((from_bitField6_ & 0x00008000) != 0)) { - result.uniqueUsersThreePlus_ = uniqueUsersThreePlus_; + result.uniqueUsersTwoPlus_ = uniqueUsersTwoPlus_; to_bitField6_ |= 0x00000020; } if (((from_bitField6_ & 0x00010000) != 0)) { - result.uniqueUsersFourPlus_ = uniqueUsersFourPlus_; + result.uniqueUsersThreePlus_ = uniqueUsersThreePlus_; to_bitField6_ |= 0x00000040; } if (((from_bitField6_ & 0x00020000) != 0)) { - result.uniqueUsersFivePlus_ = uniqueUsersFivePlus_; + result.uniqueUsersFourPlus_ = uniqueUsersFourPlus_; to_bitField6_ |= 0x00000080; } if (((from_bitField6_ & 0x00040000) != 0)) { - result.uniqueUsersTenPlus_ = uniqueUsersTenPlus_; + result.uniqueUsersFivePlus_ = uniqueUsersFivePlus_; to_bitField6_ |= 0x00000100; } if (((from_bitField6_ & 0x00080000) != 0)) { - result.valueAdjustment_ = valueAdjustment_; + result.uniqueUsersTenPlus_ = uniqueUsersTenPlus_; to_bitField6_ |= 0x00000200; } if (((from_bitField6_ & 0x00100000) != 0)) { - result.allValueAdjustment_ = allValueAdjustment_; + result.valueAdjustment_ = valueAdjustment_; to_bitField6_ |= 0x00000400; } if (((from_bitField6_ & 0x00200000) != 0)) { - result.clicksUniqueQueryClusters_ = clicksUniqueQueryClusters_; + result.allValueAdjustment_ = allValueAdjustment_; to_bitField6_ |= 0x00000800; } if (((from_bitField6_ & 0x00400000) != 0)) { - result.conversionsUniqueQueryClusters_ = conversionsUniqueQueryClusters_; + result.clicksUniqueQueryClusters_ = clicksUniqueQueryClusters_; to_bitField6_ |= 0x00001000; } if (((from_bitField6_ & 0x00800000) != 0)) { - result.impressionsUniqueQueryClusters_ = impressionsUniqueQueryClusters_; + result.conversionsUniqueQueryClusters_ = conversionsUniqueQueryClusters_; to_bitField6_ |= 0x00002000; } if (((from_bitField6_ & 0x01000000) != 0)) { - result.videoWatchTimeDurationMillis_ = videoWatchTimeDurationMillis_; + result.impressionsUniqueQueryClusters_ = impressionsUniqueQueryClusters_; to_bitField6_ |= 0x00004000; } if (((from_bitField6_ & 0x02000000) != 0)) { - result.averageVideoWatchTimeDurationMillis_ = averageVideoWatchTimeDurationMillis_; + result.videoWatchTimeDurationMillis_ = videoWatchTimeDurationMillis_; to_bitField6_ |= 0x00008000; } if (((from_bitField6_ & 0x04000000) != 0)) { - result.svr_ = svr_; + result.averageVideoWatchTimeDurationMillis_ = averageVideoWatchTimeDurationMillis_; to_bitField6_ |= 0x00010000; } if (((from_bitField6_ & 0x08000000) != 0)) { - result.activeViewAudibilityMeasurableImpressions_ = activeViewAudibilityMeasurableImpressions_; + result.svr_ = svr_; to_bitField6_ |= 0x00020000; } if (((from_bitField6_ & 0x10000000) != 0)) { - result.activeViewAudibilityMeasurableImpressionsRate_ = activeViewAudibilityMeasurableImpressionsRate_; + result.activeViewAudibilityMeasurableImpressions_ = activeViewAudibilityMeasurableImpressions_; to_bitField6_ |= 0x00040000; } if (((from_bitField6_ & 0x20000000) != 0)) { - result.activeViewAudibilityInvalidMeasurableImpressionsRate_ = activeViewAudibilityInvalidMeasurableImpressionsRate_; + result.activeViewAudibilityMeasurableImpressionsRate_ = activeViewAudibilityMeasurableImpressionsRate_; to_bitField6_ |= 0x00080000; } if (((from_bitField6_ & 0x40000000) != 0)) { - result.activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ = activeViewAudibilityInvalidGivtMeasurableImpressionsRate_; + result.activeViewAudibilityInvalidMeasurableImpressionsRate_ = activeViewAudibilityInvalidMeasurableImpressionsRate_; to_bitField6_ |= 0x00100000; } if (((from_bitField6_ & 0x80000000) != 0)) { - result.activeViewAudibleImpressions_ = activeViewAudibleImpressions_; + result.activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ = activeViewAudibilityInvalidGivtMeasurableImpressionsRate_; to_bitField6_ |= 0x00200000; } result.bitField5_ |= to_bitField5_; @@ -14138,114 +15746,234 @@ private void buildPartial7(com.google.ads.googleads.v24.common.Metrics result) { int from_bitField7_ = bitField7_; int to_bitField6_ = 0; if (((from_bitField7_ & 0x00000001) != 0)) { - result.activeViewAudibleImpressionsRate_ = activeViewAudibleImpressionsRate_; + result.activeViewAudibleImpressions_ = activeViewAudibleImpressions_; to_bitField6_ |= 0x00400000; } if (((from_bitField7_ & 0x00000002) != 0)) { - result.activeViewAudibleTwoSecondsImpressions_ = activeViewAudibleTwoSecondsImpressions_; + result.activeViewAudibleImpressionsRate_ = activeViewAudibleImpressionsRate_; to_bitField6_ |= 0x00800000; } if (((from_bitField7_ & 0x00000004) != 0)) { - result.activeViewAudibleTwoSecondsImpressionsRate_ = activeViewAudibleTwoSecondsImpressionsRate_; + result.activeViewAudibleTwoSecondsImpressions_ = activeViewAudibleTwoSecondsImpressions_; to_bitField6_ |= 0x01000000; } if (((from_bitField7_ & 0x00000008) != 0)) { - result.activeViewAudibleThirtySecondsImpressions_ = activeViewAudibleThirtySecondsImpressions_; + result.activeViewAudibleTwoSecondsImpressionsRate_ = activeViewAudibleTwoSecondsImpressionsRate_; to_bitField6_ |= 0x02000000; } if (((from_bitField7_ & 0x00000010) != 0)) { - result.activeViewAudibleThirtySecondsImpressionsRate_ = activeViewAudibleThirtySecondsImpressionsRate_; + result.activeViewAudibleThirtySecondsImpressions_ = activeViewAudibleThirtySecondsImpressions_; to_bitField6_ |= 0x04000000; } if (((from_bitField7_ & 0x00000020) != 0)) { - result.activeViewAudibleQuartileP25Rate_ = activeViewAudibleQuartileP25Rate_; + result.activeViewAudibleThirtySecondsImpressionsRate_ = activeViewAudibleThirtySecondsImpressionsRate_; to_bitField6_ |= 0x08000000; } if (((from_bitField7_ & 0x00000040) != 0)) { - result.activeViewAudibleQuartileP50Rate_ = activeViewAudibleQuartileP50Rate_; + result.activeViewAudibleQuartileP25Rate_ = activeViewAudibleQuartileP25Rate_; to_bitField6_ |= 0x10000000; } if (((from_bitField7_ & 0x00000080) != 0)) { - result.activeViewAudibleQuartileP75Rate_ = activeViewAudibleQuartileP75Rate_; + result.activeViewAudibleQuartileP50Rate_ = activeViewAudibleQuartileP50Rate_; to_bitField6_ |= 0x20000000; } if (((from_bitField7_ & 0x00000100) != 0)) { - result.activeViewAudibleQuartileP100Rate_ = activeViewAudibleQuartileP100Rate_; + result.activeViewAudibleQuartileP75Rate_ = activeViewAudibleQuartileP75Rate_; to_bitField6_ |= 0x40000000; } if (((from_bitField7_ & 0x00000200) != 0)) { - result.biddableIndirectInstallFirstInAppConversionMicros_ = biddableIndirectInstallFirstInAppConversionMicros_; + result.activeViewAudibleQuartileP100Rate_ = activeViewAudibleQuartileP100Rate_; to_bitField6_ |= 0x80000000; } int to_bitField7_ = 0; if (((from_bitField7_ & 0x00000400) != 0)) { - result.allAverageCartSize_ = allAverageCartSize_; + result.biddableIndirectInstallFirstInAppConversionMicros_ = biddableIndirectInstallFirstInAppConversionMicros_; to_bitField7_ |= 0x00000001; } if (((from_bitField7_ & 0x00000800) != 0)) { - result.allAverageOrderValueMicros_ = allAverageOrderValueMicros_; + result.allAverageCartSize_ = allAverageCartSize_; to_bitField7_ |= 0x00000002; } if (((from_bitField7_ & 0x00001000) != 0)) { - result.allCostOfGoodsSoldMicros_ = allCostOfGoodsSoldMicros_; + result.allAverageOrderValueMicros_ = allAverageOrderValueMicros_; to_bitField7_ |= 0x00000004; } if (((from_bitField7_ & 0x00002000) != 0)) { - result.allCrossSellCostOfGoodsSoldMicros_ = allCrossSellCostOfGoodsSoldMicros_; + result.allCostOfGoodsSoldMicros_ = allCostOfGoodsSoldMicros_; to_bitField7_ |= 0x00000008; } if (((from_bitField7_ & 0x00004000) != 0)) { - result.allCrossSellGrossProfitMicros_ = allCrossSellGrossProfitMicros_; + result.allCrossSellCostOfGoodsSoldMicros_ = allCrossSellCostOfGoodsSoldMicros_; to_bitField7_ |= 0x00000010; } if (((from_bitField7_ & 0x00008000) != 0)) { - result.allCrossSellRevenueMicros_ = allCrossSellRevenueMicros_; + result.allCrossSellGrossProfitMicros_ = allCrossSellGrossProfitMicros_; to_bitField7_ |= 0x00000020; } if (((from_bitField7_ & 0x00010000) != 0)) { - result.allCrossSellUnitsSold_ = allCrossSellUnitsSold_; + result.allCrossSellRevenueMicros_ = allCrossSellRevenueMicros_; to_bitField7_ |= 0x00000040; } if (((from_bitField7_ & 0x00020000) != 0)) { - result.allGrossProfitMargin_ = allGrossProfitMargin_; + result.allCrossSellUnitsSold_ = allCrossSellUnitsSold_; to_bitField7_ |= 0x00000080; } if (((from_bitField7_ & 0x00040000) != 0)) { - result.allGrossProfitMicros_ = allGrossProfitMicros_; + result.allGrossProfitMargin_ = allGrossProfitMargin_; to_bitField7_ |= 0x00000100; } if (((from_bitField7_ & 0x00080000) != 0)) { - result.allLeadCostOfGoodsSoldMicros_ = allLeadCostOfGoodsSoldMicros_; + result.allGrossProfitMicros_ = allGrossProfitMicros_; to_bitField7_ |= 0x00000200; } if (((from_bitField7_ & 0x00100000) != 0)) { - result.allLeadGrossProfitMicros_ = allLeadGrossProfitMicros_; + result.allLeadCostOfGoodsSoldMicros_ = allLeadCostOfGoodsSoldMicros_; to_bitField7_ |= 0x00000400; } if (((from_bitField7_ & 0x00200000) != 0)) { - result.allLeadRevenueMicros_ = allLeadRevenueMicros_; + result.allLeadGrossProfitMicros_ = allLeadGrossProfitMicros_; to_bitField7_ |= 0x00000800; } if (((from_bitField7_ & 0x00400000) != 0)) { - result.allLeadUnitsSold_ = allLeadUnitsSold_; + result.allLeadRevenueMicros_ = allLeadRevenueMicros_; to_bitField7_ |= 0x00001000; } if (((from_bitField7_ & 0x00800000) != 0)) { - result.allOrders_ = allOrders_; + result.allLeadUnitsSold_ = allLeadUnitsSold_; to_bitField7_ |= 0x00002000; } if (((from_bitField7_ & 0x01000000) != 0)) { - result.allRevenueMicros_ = allRevenueMicros_; + result.allOrders_ = allOrders_; to_bitField7_ |= 0x00004000; } if (((from_bitField7_ & 0x02000000) != 0)) { - result.allUnitsSold_ = allUnitsSold_; + result.allRevenueMicros_ = allRevenueMicros_; to_bitField7_ |= 0x00008000; } + if (((from_bitField7_ & 0x04000000) != 0)) { + result.allUnitsSold_ = allUnitsSold_; + to_bitField7_ |= 0x00010000; + } + if (((from_bitField7_ & 0x08000000) != 0)) { + result.controlCostPerConversion_ = controlCostPerConversion_; + to_bitField7_ |= 0x00020000; + } + if (((from_bitField7_ & 0x10000000) != 0)) { + result.costPerConversionMarginOfError_ = costPerConversionMarginOfError_; + to_bitField7_ |= 0x00040000; + } + if (((from_bitField7_ & 0x20000000) != 0)) { + result.costPerConversionPValue_ = costPerConversionPValue_; + to_bitField7_ |= 0x00080000; + } + if (((from_bitField7_ & 0x40000000) != 0)) { + result.costPerConversionChangePointEstimate_ = costPerConversionChangePointEstimate_; + to_bitField7_ |= 0x00100000; + } + if (((from_bitField7_ & 0x80000000) != 0)) { + result.controlConversions_ = controlConversions_; + to_bitField7_ |= 0x00200000; + } result.bitField6_ |= to_bitField6_; result.bitField7_ |= to_bitField7_; } + private void buildPartial8(com.google.ads.googleads.v24.common.Metrics result) { + int from_bitField8_ = bitField8_; + int to_bitField7_ = 0; + if (((from_bitField8_ & 0x00000001) != 0)) { + result.conversionsAbsoluteChangeMarginOfError_ = conversionsAbsoluteChangeMarginOfError_; + to_bitField7_ |= 0x00400000; + } + if (((from_bitField8_ & 0x00000002) != 0)) { + result.conversionsAbsoluteChangePValue_ = conversionsAbsoluteChangePValue_; + to_bitField7_ |= 0x00800000; + } + if (((from_bitField8_ & 0x00000004) != 0)) { + result.conversionsAbsoluteChangePointEstimate_ = conversionsAbsoluteChangePointEstimate_; + to_bitField7_ |= 0x01000000; + } + if (((from_bitField8_ & 0x00000008) != 0)) { + result.controlConversionValuePerCost_ = controlConversionValuePerCost_; + to_bitField7_ |= 0x02000000; + } + if (((from_bitField8_ & 0x00000010) != 0)) { + result.conversionValuePerCostMarginOfError_ = conversionValuePerCostMarginOfError_; + to_bitField7_ |= 0x04000000; + } + if (((from_bitField8_ & 0x00000020) != 0)) { + result.conversionValuePerCostPValue_ = conversionValuePerCostPValue_; + to_bitField7_ |= 0x08000000; + } + if (((from_bitField8_ & 0x00000040) != 0)) { + result.conversionValuePerCostChangePointEstimate_ = conversionValuePerCostChangePointEstimate_; + to_bitField7_ |= 0x10000000; + } + if (((from_bitField8_ & 0x00000080) != 0)) { + result.controlCostMicros_ = controlCostMicros_; + to_bitField7_ |= 0x20000000; + } + if (((from_bitField8_ & 0x00000100) != 0)) { + result.costMicrosMarginOfError_ = costMicrosMarginOfError_; + to_bitField7_ |= 0x40000000; + } + if (((from_bitField8_ & 0x00000200) != 0)) { + result.costMicrosPValue_ = costMicrosPValue_; + to_bitField7_ |= 0x80000000; + } + int to_bitField8_ = 0; + if (((from_bitField8_ & 0x00000400) != 0)) { + result.costMicrosChangePointEstimate_ = costMicrosChangePointEstimate_; + to_bitField8_ |= 0x00000001; + } + if (((from_bitField8_ & 0x00000800) != 0)) { + result.controlImpressions_ = controlImpressions_; + to_bitField8_ |= 0x00000002; + } + if (((from_bitField8_ & 0x00001000) != 0)) { + result.impressionsMarginOfError_ = impressionsMarginOfError_; + to_bitField8_ |= 0x00000004; + } + if (((from_bitField8_ & 0x00002000) != 0)) { + result.impressionsPValue_ = impressionsPValue_; + to_bitField8_ |= 0x00000008; + } + if (((from_bitField8_ & 0x00004000) != 0)) { + result.impressionsPointEstimate_ = impressionsPointEstimate_; + to_bitField8_ |= 0x00000010; + } + if (((from_bitField8_ & 0x00008000) != 0)) { + result.clicksMarginOfError_ = clicksMarginOfError_; + to_bitField8_ |= 0x00000020; + } + if (((from_bitField8_ & 0x00010000) != 0)) { + result.clicksPValue_ = clicksPValue_; + to_bitField8_ |= 0x00000040; + } + if (((from_bitField8_ & 0x00020000) != 0)) { + result.clicksPointEstimate_ = clicksPointEstimate_; + to_bitField8_ |= 0x00000080; + } + if (((from_bitField8_ & 0x00040000) != 0)) { + result.controlConversionValue_ = controlConversionValue_; + to_bitField8_ |= 0x00000100; + } + if (((from_bitField8_ & 0x00080000) != 0)) { + result.conversionValueMarginOfError_ = conversionValueMarginOfError_; + to_bitField8_ |= 0x00000200; + } + if (((from_bitField8_ & 0x00100000) != 0)) { + result.conversionValuePValue_ = conversionValuePValue_; + to_bitField8_ |= 0x00000400; + } + if (((from_bitField8_ & 0x00200000) != 0)) { + result.conversionValueChangePointEstimate_ = conversionValueChangePointEstimate_; + to_bitField8_ |= 0x00000800; + } + result.bitField7_ |= to_bitField7_; + result.bitField8_ |= to_bitField8_; + } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.google.ads.googleads.v24.common.Metrics) { @@ -14387,6 +16115,9 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Metrics other) { if (other.hasClicks()) { setClicks(other.getClicks()); } + if (other.hasControlClicks()) { + setControlClicks(other.getControlClicks()); + } if (other.hasCombinedClicks()) { setCombinedClicks(other.getCombinedClicks()); } @@ -14404,12 +16135,12 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Metrics other) { } if (other.hasConversionLastReceivedRequestDateTime()) { conversionLastReceivedRequestDateTime_ = other.conversionLastReceivedRequestDateTime_; - bitField1_ |= 0x00010000; + bitField1_ |= 0x00020000; onChanged(); } if (other.hasConversionLastConversionDate()) { conversionLastConversionDate_ = other.conversionLastConversionDate_; - bitField1_ |= 0x00020000; + bitField1_ |= 0x00040000; onChanged(); } if (other.hasContentRankLostImpressionShare()) { @@ -14542,7 +16273,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Metrics other) { if (interactionEventTypes_.isEmpty()) { interactionEventTypes_ = other.interactionEventTypes_; interactionEventTypes_.makeImmutable(); - bitField2_ |= 0x10000000; + bitField2_ |= 0x20000000; } else { ensureInteractionEventTypesIsMutable(); interactionEventTypes_.addAll(other.interactionEventTypes_); @@ -14578,7 +16309,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Metrics other) { } if (other.hasOptimizationScoreUrl()) { optimizationScoreUrl_ = other.optimizationScoreUrl_; - bitField3_ |= 0x00000040; + bitField3_ |= 0x00000080; onChanged(); } if (other.hasOrganicClicks()) { @@ -14818,7 +16549,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Metrics other) { if (!other.linkedSampleEntities_.isEmpty()) { if (linkedSampleEntities_.isEmpty()) { linkedSampleEntities_ = other.linkedSampleEntities_; - bitField5_ |= 0x00200000; + bitField5_ |= 0x00400000; } else { ensureLinkedSampleEntitiesIsMutable(); linkedSampleEntities_.addAll(other.linkedSampleEntities_); @@ -15029,6 +16760,87 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Metrics other) { if (other.hasAllUnitsSold()) { setAllUnitsSold(other.getAllUnitsSold()); } + if (other.hasControlCostPerConversion()) { + setControlCostPerConversion(other.getControlCostPerConversion()); + } + if (other.hasCostPerConversionMarginOfError()) { + setCostPerConversionMarginOfError(other.getCostPerConversionMarginOfError()); + } + if (other.hasCostPerConversionPValue()) { + setCostPerConversionPValue(other.getCostPerConversionPValue()); + } + if (other.hasCostPerConversionChangePointEstimate()) { + setCostPerConversionChangePointEstimate(other.getCostPerConversionChangePointEstimate()); + } + if (other.hasControlConversions()) { + setControlConversions(other.getControlConversions()); + } + if (other.hasConversionsAbsoluteChangeMarginOfError()) { + setConversionsAbsoluteChangeMarginOfError(other.getConversionsAbsoluteChangeMarginOfError()); + } + if (other.hasConversionsAbsoluteChangePValue()) { + setConversionsAbsoluteChangePValue(other.getConversionsAbsoluteChangePValue()); + } + if (other.hasConversionsAbsoluteChangePointEstimate()) { + setConversionsAbsoluteChangePointEstimate(other.getConversionsAbsoluteChangePointEstimate()); + } + if (other.hasControlConversionValuePerCost()) { + setControlConversionValuePerCost(other.getControlConversionValuePerCost()); + } + if (other.hasConversionValuePerCostMarginOfError()) { + setConversionValuePerCostMarginOfError(other.getConversionValuePerCostMarginOfError()); + } + if (other.hasConversionValuePerCostPValue()) { + setConversionValuePerCostPValue(other.getConversionValuePerCostPValue()); + } + if (other.hasConversionValuePerCostChangePointEstimate()) { + setConversionValuePerCostChangePointEstimate(other.getConversionValuePerCostChangePointEstimate()); + } + if (other.hasControlCostMicros()) { + setControlCostMicros(other.getControlCostMicros()); + } + if (other.hasCostMicrosMarginOfError()) { + setCostMicrosMarginOfError(other.getCostMicrosMarginOfError()); + } + if (other.hasCostMicrosPValue()) { + setCostMicrosPValue(other.getCostMicrosPValue()); + } + if (other.hasCostMicrosChangePointEstimate()) { + setCostMicrosChangePointEstimate(other.getCostMicrosChangePointEstimate()); + } + if (other.hasControlImpressions()) { + setControlImpressions(other.getControlImpressions()); + } + if (other.hasImpressionsMarginOfError()) { + setImpressionsMarginOfError(other.getImpressionsMarginOfError()); + } + if (other.hasImpressionsPValue()) { + setImpressionsPValue(other.getImpressionsPValue()); + } + if (other.hasImpressionsPointEstimate()) { + setImpressionsPointEstimate(other.getImpressionsPointEstimate()); + } + if (other.hasClicksMarginOfError()) { + setClicksMarginOfError(other.getClicksMarginOfError()); + } + if (other.hasClicksPValue()) { + setClicksPValue(other.getClicksPValue()); + } + if (other.hasClicksPointEstimate()) { + setClicksPointEstimate(other.getClicksPointEstimate()); + } + if (other.hasControlConversionValue()) { + setControlConversionValue(other.getControlConversionValue()); + } + if (other.hasConversionValueMarginOfError()) { + setConversionValueMarginOfError(other.getConversionValueMarginOfError()); + } + if (other.hasConversionValuePValue()) { + setConversionValuePValue(other.getConversionValuePValue()); + } + if (other.hasConversionValueChangePointEstimate()) { + setConversionValueChangePointEstimate(other.getConversionValueChangePointEstimate()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -15057,17 +16869,17 @@ public Builder mergeFrom( break; case 640: { historicalCreativeQualityScore_ = input.readEnum(); - bitField2_ |= 0x00020000; + bitField2_ |= 0x00040000; break; } // case 640 case 648: { historicalLandingPageQualityScore_ = input.readEnum(); - bitField2_ |= 0x00040000; + bitField2_ |= 0x00080000; break; } // case 648 case 664: { historicalSearchPredictedCtr_ = input.readEnum(); - bitField2_ |= 0x00100000; + bitField2_ |= 0x00200000; break; } // case 664 case 800: { @@ -15093,242 +16905,242 @@ public Builder mergeFrom( } // case 1048 case 1057: { videoQuartileP100Rate_ = input.readDouble(); - bitField4_ |= 0x00000080; + bitField4_ |= 0x00000100; break; } // case 1057 case 1065: { videoQuartileP25Rate_ = input.readDouble(); - bitField4_ |= 0x00000100; + bitField4_ |= 0x00000200; break; } // case 1065 case 1073: { videoQuartileP50Rate_ = input.readDouble(); - bitField4_ |= 0x00000200; + bitField4_ |= 0x00000400; break; } // case 1073 case 1081: { videoQuartileP75Rate_ = input.readDouble(); - bitField4_ |= 0x00000400; + bitField4_ |= 0x00000800; break; } // case 1081 case 1089: { searchAbsoluteTopImpressionShare_ = input.readDouble(); - bitField3_ |= 0x00020000; + bitField3_ |= 0x00040000; break; } // case 1089 case 1097: { searchBudgetLostAbsoluteTopImpressionShare_ = input.readDouble(); - bitField3_ |= 0x00040000; + bitField3_ |= 0x00080000; break; } // case 1097 case 1105: { searchBudgetLostImpressionShare_ = input.readDouble(); - bitField3_ |= 0x00080000; + bitField3_ |= 0x00100000; break; } // case 1105 case 1113: { searchBudgetLostTopImpressionShare_ = input.readDouble(); - bitField3_ |= 0x00100000; + bitField3_ |= 0x00200000; break; } // case 1113 case 1121: { searchClickShare_ = input.readDouble(); - bitField3_ |= 0x00200000; + bitField3_ |= 0x00400000; break; } // case 1121 case 1129: { searchExactMatchImpressionShare_ = input.readDouble(); - bitField3_ |= 0x00400000; + bitField3_ |= 0x00800000; break; } // case 1129 case 1137: { searchImpressionShare_ = input.readDouble(); - bitField3_ |= 0x00800000; + bitField3_ |= 0x01000000; break; } // case 1137 case 1145: { searchRankLostAbsoluteTopImpressionShare_ = input.readDouble(); - bitField3_ |= 0x01000000; + bitField3_ |= 0x02000000; break; } // case 1145 case 1153: { searchRankLostImpressionShare_ = input.readDouble(); - bitField3_ |= 0x02000000; + bitField3_ |= 0x04000000; break; } // case 1153 case 1161: { searchRankLostTopImpressionShare_ = input.readDouble(); - bitField3_ |= 0x04000000; + bitField3_ |= 0x08000000; break; } // case 1161 case 1169: { searchTopImpressionShare_ = input.readDouble(); - bitField3_ |= 0x08000000; + bitField3_ |= 0x10000000; break; } // case 1169 case 1176: { speedScore_ = input.readInt64(); - bitField3_ |= 0x20000000; + bitField3_ |= 0x40000000; break; } // case 1176 case 1185: { topImpressionPercentage_ = input.readDouble(); - bitField4_ |= 0x00000001; + bitField4_ |= 0x00000002; break; } // case 1185 case 1193: { validAcceleratedMobilePagesClicksPercentage_ = input.readDouble(); - bitField4_ |= 0x00000002; + bitField4_ |= 0x00000004; break; } // case 1193 case 1201: { valuePerAllConversions_ = input.readDouble(); - bitField4_ |= 0x00000004; + bitField4_ |= 0x00000008; break; } // case 1201 case 1209: { valuePerConversion_ = input.readDouble(); - bitField4_ |= 0x00000010; + bitField4_ |= 0x00000020; break; } // case 1209 case 1217: { valuePerCurrentModelAttributedConversion_ = input.readDouble(); - bitField4_ |= 0x00000040; + bitField4_ |= 0x00000080; break; } // case 1217 case 1240: { viewThroughConversions_ = input.readInt64(); - bitField4_ |= 0x00002000; + bitField4_ |= 0x00004000; break; } // case 1240 case 1248: { combinedClicks_ = input.readInt64(); - bitField1_ |= 0x00000800; + bitField1_ |= 0x00001000; break; } // case 1248 case 1257: { combinedClicksPerQuery_ = input.readDouble(); - bitField1_ |= 0x00001000; + bitField1_ |= 0x00002000; break; } // case 1257 case 1264: { combinedQueries_ = input.readInt64(); - bitField1_ |= 0x00002000; + bitField1_ |= 0x00004000; break; } // case 1264 case 1273: { contentBudgetLostImpressionShare_ = input.readDouble(); - bitField1_ |= 0x00004000; + bitField1_ |= 0x00008000; break; } // case 1273 case 1281: { contentImpressionShare_ = input.readDouble(); - bitField1_ |= 0x00008000; + bitField1_ |= 0x00010000; break; } // case 1281 case 1290: { conversionLastReceivedRequestDateTime_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00010000; + bitField1_ |= 0x00020000; break; } // case 1290 case 1298: { conversionLastConversionDate_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00020000; + bitField1_ |= 0x00040000; break; } // case 1298 case 1305: { contentRankLostImpressionShare_ = input.readDouble(); - bitField1_ |= 0x00040000; + bitField1_ |= 0x00080000; break; } // case 1305 case 1313: { conversionsFromInteractionsRate_ = input.readDouble(); - bitField1_ |= 0x00080000; + bitField1_ |= 0x00100000; break; } // case 1313 case 1321: { conversionsValue_ = input.readDouble(); - bitField1_ |= 0x00100000; + bitField1_ |= 0x00200000; break; } // case 1321 case 1329: { conversionsValuePerCost_ = input.readDouble(); - bitField1_ |= 0x00800000; + bitField1_ |= 0x01000000; break; } // case 1329 case 1337: { conversionsFromInteractionsValuePerInteraction_ = input.readDouble(); - bitField1_ |= 0x01000000; + bitField1_ |= 0x02000000; break; } // case 1337 case 1345: { conversions_ = input.readDouble(); - bitField1_ |= 0x02000000; + bitField1_ |= 0x04000000; break; } // case 1345 case 1352: { costMicros_ = input.readInt64(); - bitField1_ |= 0x08000000; + bitField1_ |= 0x10000000; break; } // case 1352 case 1361: { costPerAllConversions_ = input.readDouble(); - bitField1_ |= 0x10000000; + bitField1_ |= 0x20000000; break; } // case 1361 case 1369: { costPerConversion_ = input.readDouble(); - bitField1_ |= 0x20000000; + bitField1_ |= 0x40000000; break; } // case 1369 case 1377: { costPerCurrentModelAttributedConversion_ = input.readDouble(); - bitField1_ |= 0x40000000; + bitField1_ |= 0x80000000; break; } // case 1377 case 1385: { crossDeviceConversions_ = input.readDouble(); - bitField1_ |= 0x80000000; + bitField2_ |= 0x00000001; break; } // case 1385 case 1393: { ctr_ = input.readDouble(); - bitField2_ |= 0x00000010; + bitField2_ |= 0x00000020; break; } // case 1393 case 1401: { currentModelAttributedConversions_ = input.readDouble(); - bitField2_ |= 0x00000020; + bitField2_ |= 0x00000040; break; } // case 1401 case 1409: { currentModelAttributedConversionsFromInteractionsRate_ = input.readDouble(); - bitField2_ |= 0x00000040; + bitField2_ |= 0x00000080; break; } // case 1409 case 1417: { currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = input.readDouble(); - bitField2_ |= 0x00000080; + bitField2_ |= 0x00000100; break; } // case 1417 case 1425: { currentModelAttributedConversionsValue_ = input.readDouble(); - bitField2_ |= 0x00000100; + bitField2_ |= 0x00000200; break; } // case 1425 case 1433: { currentModelAttributedConversionsValuePerCost_ = input.readDouble(); - bitField2_ |= 0x00000200; + bitField2_ |= 0x00000400; break; } // case 1433 case 1441: { engagementRate_ = input.readDouble(); - bitField2_ |= 0x00000400; + bitField2_ |= 0x00000800; break; } // case 1441 case 1448: { engagements_ = input.readInt64(); - bitField2_ |= 0x00000800; + bitField2_ |= 0x00001000; break; } // case 1448 case 1465: { @@ -15478,137 +17290,137 @@ public Builder mergeFrom( } // case 1697 case 1705: { hotelAverageLeadValueMicros_ = input.readDouble(); - bitField2_ |= 0x00001000; + bitField2_ |= 0x00002000; break; } // case 1705 case 1713: { hotelPriceDifferencePercentage_ = input.readDouble(); - bitField2_ |= 0x00008000; + bitField2_ |= 0x00010000; break; } // case 1713 case 1720: { hotelEligibleImpressions_ = input.readInt64(); - bitField2_ |= 0x00010000; + bitField2_ |= 0x00020000; break; } // case 1720 case 1728: { historicalQualityScore_ = input.readInt64(); - bitField2_ |= 0x00080000; + bitField2_ |= 0x00100000; break; } // case 1728 case 1736: { gmailForwards_ = input.readInt64(); - bitField2_ |= 0x00200000; + bitField2_ |= 0x00400000; break; } // case 1736 case 1744: { gmailSaves_ = input.readInt64(); - bitField2_ |= 0x00400000; + bitField2_ |= 0x00800000; break; } // case 1744 case 1752: { gmailSecondaryClicks_ = input.readInt64(); - bitField2_ |= 0x00800000; + bitField2_ |= 0x01000000; break; } // case 1752 case 1760: { impressionsFromStoreReach_ = input.readInt64(); - bitField2_ |= 0x01000000; + bitField2_ |= 0x02000000; break; } // case 1760 case 1768: { impressions_ = input.readInt64(); - bitField2_ |= 0x02000000; + bitField2_ |= 0x04000000; break; } // case 1768 case 1777: { interactionRate_ = input.readDouble(); - bitField2_ |= 0x04000000; + bitField2_ |= 0x08000000; break; } // case 1777 case 1784: { interactions_ = input.readInt64(); - bitField2_ |= 0x08000000; + bitField2_ |= 0x10000000; break; } // case 1784 case 1793: { invalidClickRate_ = input.readDouble(); - bitField2_ |= 0x20000000; + bitField2_ |= 0x40000000; break; } // case 1793 case 1800: { invalidClicks_ = input.readInt64(); - bitField2_ |= 0x40000000; + bitField2_ |= 0x80000000; break; } // case 1800 case 1808: { messageChats_ = input.readInt64(); - bitField3_ |= 0x00000002; + bitField3_ |= 0x00000004; break; } // case 1808 case 1816: { messageImpressions_ = input.readInt64(); - bitField3_ |= 0x00000004; + bitField3_ |= 0x00000008; break; } // case 1816 case 1825: { messageChatRate_ = input.readDouble(); - bitField3_ |= 0x00000008; + bitField3_ |= 0x00000010; break; } // case 1825 case 1833: { mobileFriendlyClicksPercentage_ = input.readDouble(); - bitField3_ |= 0x00000010; + bitField3_ |= 0x00000020; break; } // case 1833 case 1840: { organicClicks_ = input.readInt64(); - bitField3_ |= 0x00000080; + bitField3_ |= 0x00000100; break; } // case 1840 case 1849: { organicClicksPerQuery_ = input.readDouble(); - bitField3_ |= 0x00000100; + bitField3_ |= 0x00000200; break; } // case 1849 case 1856: { organicImpressions_ = input.readInt64(); - bitField3_ |= 0x00000200; + bitField3_ |= 0x00000400; break; } // case 1856 case 1865: { organicImpressionsPerQuery_ = input.readDouble(); - bitField3_ |= 0x00000400; + bitField3_ |= 0x00000800; break; } // case 1865 case 1872: { organicQueries_ = input.readInt64(); - bitField3_ |= 0x00000800; + bitField3_ |= 0x00001000; break; } // case 1872 case 1881: { percentNewVisitors_ = input.readDouble(); - bitField3_ |= 0x00001000; + bitField3_ |= 0x00002000; break; } // case 1881 case 1888: { phoneCalls_ = input.readInt64(); - bitField3_ |= 0x00002000; + bitField3_ |= 0x00004000; break; } // case 1888 case 1896: { phoneImpressions_ = input.readInt64(); - bitField3_ |= 0x00004000; + bitField3_ |= 0x00008000; break; } // case 1896 case 1905: { phoneThroughRate_ = input.readDouble(); - bitField3_ |= 0x00008000; + bitField3_ |= 0x00010000; break; } // case 1905 case 1913: { relativeCtr_ = input.readDouble(); - bitField3_ |= 0x00010000; + bitField3_ |= 0x00020000; break; } // case 1913 case 1921: { @@ -15623,47 +17435,47 @@ public Builder mergeFrom( } // case 1929 case 1937: { conversionsValueByConversionDate_ = input.readDouble(); - bitField1_ |= 0x00200000; + bitField1_ |= 0x00400000; break; } // case 1937 case 1945: { conversionsByConversionDate_ = input.readDouble(); - bitField1_ |= 0x04000000; + bitField1_ |= 0x08000000; break; } // case 1945 case 1953: { valuePerAllConversionsByConversionDate_ = input.readDouble(); - bitField4_ |= 0x00000008; + bitField4_ |= 0x00000010; break; } // case 1953 case 1961: { valuePerConversionsByConversionDate_ = input.readDouble(); - bitField4_ |= 0x00000020; + bitField4_ |= 0x00000040; break; } // case 1961 case 1968: { skAdNetworkInstalls_ = input.readInt64(); - bitField4_ |= 0x00004000; + bitField4_ |= 0x00008000; break; } // case 1968 case 1977: { optimizationScoreUplift_ = input.readDouble(); - bitField3_ |= 0x00000020; + bitField3_ |= 0x00000040; break; } // case 1977 case 1986: { optimizationScoreUrl_ = input.readStringRequireUtf8(); - bitField3_ |= 0x00000040; + bitField3_ |= 0x00000080; break; } // case 1986 case 2001: { averageTargetRoas_ = input.readDouble(); - bitField3_ |= 0x80000000; + bitField4_ |= 0x00000001; break; } // case 2001 case 2025: { crossDeviceConversionsValue_ = input.readDouble(); - bitField2_ |= 0x00000002; + bitField2_ |= 0x00000004; break; } // case 2025 case 2033: { @@ -15678,12 +17490,12 @@ public Builder mergeFrom( } // case 2041 case 2048: { hotelCommissionRateMicros_ = input.readInt64(); - bitField2_ |= 0x00002000; + bitField2_ |= 0x00004000; break; } // case 2048 case 2057: { hotelExpectedCommissionCost_ = input.readDouble(); - bitField2_ |= 0x00004000; + bitField2_ |= 0x00008000; break; } // case 2057 case 2065: { @@ -15718,107 +17530,107 @@ public Builder mergeFrom( } // case 2105 case 2112: { publisherPurchasedClicks_ = input.readInt64(); - bitField4_ |= 0x00010000; + bitField4_ |= 0x00020000; break; } // case 2112 case 2120: { publisherOrganicClicks_ = input.readInt64(); - bitField4_ |= 0x00020000; + bitField4_ |= 0x00040000; break; } // case 2120 case 2128: { publisherUnknownClicks_ = input.readInt64(); - bitField4_ |= 0x00040000; + bitField4_ |= 0x00080000; break; } // case 2128 case 2137: { allConversionsFromLocationAssetClickToCall_ = input.readDouble(); - bitField4_ |= 0x00080000; + bitField4_ |= 0x00100000; break; } // case 2137 case 2145: { allConversionsFromLocationAssetDirections_ = input.readDouble(); - bitField4_ |= 0x00100000; + bitField4_ |= 0x00200000; break; } // case 2145 case 2153: { allConversionsFromLocationAssetMenu_ = input.readDouble(); - bitField4_ |= 0x00200000; + bitField4_ |= 0x00400000; break; } // case 2153 case 2161: { allConversionsFromLocationAssetOrder_ = input.readDouble(); - bitField4_ |= 0x00400000; + bitField4_ |= 0x00800000; break; } // case 2161 case 2169: { allConversionsFromLocationAssetOtherEngagement_ = input.readDouble(); - bitField4_ |= 0x00800000; + bitField4_ |= 0x01000000; break; } // case 2169 case 2177: { allConversionsFromLocationAssetStoreVisits_ = input.readDouble(); - bitField4_ |= 0x01000000; + bitField4_ |= 0x02000000; break; } // case 2177 case 2185: { allConversionsFromLocationAssetWebsite_ = input.readDouble(); - bitField4_ |= 0x02000000; + bitField4_ |= 0x04000000; break; } // case 2185 case 2192: { eligibleImpressionsFromLocationAssetStoreReach_ = input.readInt64(); - bitField4_ |= 0x04000000; + bitField4_ |= 0x08000000; break; } // case 2192 case 2201: { viewThroughConversionsFromLocationAssetClickToCall_ = input.readDouble(); - bitField4_ |= 0x08000000; + bitField4_ |= 0x10000000; break; } // case 2201 case 2209: { viewThroughConversionsFromLocationAssetDirections_ = input.readDouble(); - bitField4_ |= 0x10000000; + bitField4_ |= 0x20000000; break; } // case 2209 case 2217: { viewThroughConversionsFromLocationAssetMenu_ = input.readDouble(); - bitField4_ |= 0x20000000; + bitField4_ |= 0x40000000; break; } // case 2217 case 2225: { viewThroughConversionsFromLocationAssetOrder_ = input.readDouble(); - bitField4_ |= 0x40000000; + bitField4_ |= 0x80000000; break; } // case 2225 case 2233: { viewThroughConversionsFromLocationAssetOtherEngagement_ = input.readDouble(); - bitField4_ |= 0x80000000; + bitField5_ |= 0x00000001; break; } // case 2233 case 2241: { viewThroughConversionsFromLocationAssetStoreVisits_ = input.readDouble(); - bitField5_ |= 0x00000001; + bitField5_ |= 0x00000002; break; } // case 2241 case 2249: { viewThroughConversionsFromLocationAssetWebsite_ = input.readDouble(); - bitField5_ |= 0x00000002; + bitField5_ |= 0x00000004; break; } // case 2249 case 2320: { averageTargetCpaMicros_ = input.readInt64(); - bitField3_ |= 0x40000000; + bitField3_ |= 0x80000000; break; } // case 2320 case 2336: { skAdNetworkTotalConversions_ = input.readInt64(); - bitField4_ |= 0x00008000; + bitField4_ |= 0x00010000; break; } // case 2336 case 2345: { newCustomerLifetimeValue_ = input.readDouble(); - bitField1_ |= 0x00400000; + bitField1_ |= 0x00800000; break; } // case 2345 case 2353: { @@ -15830,107 +17642,107 @@ public Builder mergeFrom( input.readMessage( internalGetSearchVolumeFieldBuilder().getBuilder(), extensionRegistry); - bitField3_ |= 0x10000000; + bitField3_ |= 0x20000000; break; } // case 2362 case 2369: { orders_ = input.readDouble(); - bitField5_ |= 0x00000004; + bitField5_ |= 0x00000008; break; } // case 2369 case 2376: { averageOrderValueMicros_ = input.readInt64(); - bitField5_ |= 0x00000008; + bitField5_ |= 0x00000010; break; } // case 2376 case 2385: { averageCartSize_ = input.readDouble(); - bitField5_ |= 0x00000010; + bitField5_ |= 0x00000020; break; } // case 2385 case 2392: { costOfGoodsSoldMicros_ = input.readInt64(); - bitField5_ |= 0x00000020; + bitField5_ |= 0x00000040; break; } // case 2392 case 2400: { grossProfitMicros_ = input.readInt64(); - bitField5_ |= 0x00000040; + bitField5_ |= 0x00000080; break; } // case 2400 case 2409: { grossProfitMargin_ = input.readDouble(); - bitField5_ |= 0x00000080; + bitField5_ |= 0x00000100; break; } // case 2409 case 2416: { revenueMicros_ = input.readInt64(); - bitField5_ |= 0x00000100; + bitField5_ |= 0x00000200; break; } // case 2416 case 2425: { unitsSold_ = input.readDouble(); - bitField5_ |= 0x00000200; + bitField5_ |= 0x00000400; break; } // case 2425 case 2432: { crossSellCostOfGoodsSoldMicros_ = input.readInt64(); - bitField5_ |= 0x00000400; + bitField5_ |= 0x00000800; break; } // case 2432 case 2440: { crossSellGrossProfitMicros_ = input.readInt64(); - bitField5_ |= 0x00000800; + bitField5_ |= 0x00001000; break; } // case 2440 case 2448: { crossSellRevenueMicros_ = input.readInt64(); - bitField5_ |= 0x00001000; + bitField5_ |= 0x00002000; break; } // case 2448 case 2457: { crossSellUnitsSold_ = input.readDouble(); - bitField5_ |= 0x00002000; + bitField5_ |= 0x00004000; break; } // case 2457 case 2464: { leadCostOfGoodsSoldMicros_ = input.readInt64(); - bitField5_ |= 0x00004000; + bitField5_ |= 0x00008000; break; } // case 2464 case 2472: { leadGrossProfitMicros_ = input.readInt64(); - bitField5_ |= 0x00008000; + bitField5_ |= 0x00010000; break; } // case 2472 case 2480: { leadRevenueMicros_ = input.readInt64(); - bitField5_ |= 0x00010000; + bitField5_ |= 0x00020000; break; } // case 2480 case 2489: { leadUnitsSold_ = input.readDouble(); - bitField5_ |= 0x00020000; + bitField5_ |= 0x00040000; break; } // case 2489 case 2496: { crossDeviceConversionsValueMicros_ = input.readInt64(); - bitField2_ |= 0x00000004; + bitField2_ |= 0x00000008; break; } // case 2496 case 2552: { uniqueUsers_ = input.readInt64(); - bitField5_ |= 0x00040000; + bitField5_ |= 0x00080000; break; } // case 2552 case 2561: { averageImpressionFrequencyPerUser_ = input.readDouble(); - bitField5_ |= 0x00080000; + bitField5_ |= 0x00100000; break; } // case 2561 case 2728: { linkedEntitiesCount_ = input.readInt64(); - bitField5_ |= 0x00100000; + bitField5_ |= 0x00200000; break; } // case 2728 case 2738: { @@ -15941,62 +17753,62 @@ public Builder mergeFrom( } // case 2738 case 2784: { assetPinnedTotalCount_ = input.readInt64(); - bitField5_ |= 0x00400000; + bitField5_ |= 0x00800000; break; } // case 2784 case 2792: { assetPinnedAsHeadlinePositionOneCount_ = input.readInt64(); - bitField5_ |= 0x00800000; + bitField5_ |= 0x01000000; break; } // case 2792 case 2800: { assetPinnedAsHeadlinePositionTwoCount_ = input.readInt64(); - bitField5_ |= 0x01000000; + bitField5_ |= 0x02000000; break; } // case 2800 case 2808: { assetPinnedAsHeadlinePositionThreeCount_ = input.readInt64(); - bitField5_ |= 0x02000000; + bitField5_ |= 0x04000000; break; } // case 2808 case 2816: { assetPinnedAsDescriptionPositionOneCount_ = input.readInt64(); - bitField5_ |= 0x04000000; + bitField5_ |= 0x08000000; break; } // case 2816 case 2824: { assetPinnedAsDescriptionPositionTwoCount_ = input.readInt64(); - bitField5_ |= 0x08000000; + bitField5_ |= 0x10000000; break; } // case 2824 case 2921: { storeVisitsLastClickModelAttributedConversions_ = input.readDouble(); - bitField5_ |= 0x10000000; + bitField5_ |= 0x20000000; break; } // case 2921 case 2929: { resultsConversionsPurchase_ = input.readDouble(); - bitField5_ |= 0x20000000; + bitField5_ |= 0x40000000; break; } // case 2929 case 2961: { generalInvalidClickRate_ = input.readDouble(); - bitField2_ |= 0x80000000; + bitField3_ |= 0x00000001; break; } // case 2961 case 2968: { generalInvalidClicks_ = input.readInt64(); - bitField3_ |= 0x00000001; + bitField3_ |= 0x00000002; break; } // case 2968 case 2977: { crossDeviceConversionsByConversionDate_ = input.readDouble(); - bitField2_ |= 0x00000001; + bitField2_ |= 0x00000002; break; } // case 2977 case 2985: { crossDeviceConversionsValueByConversionDate_ = input.readDouble(); - bitField2_ |= 0x00000008; + bitField2_ |= 0x00000010; break; } // case 2985 case 3025: { @@ -16006,127 +17818,127 @@ public Builder mergeFrom( } // case 3025 case 3040: { coviewedImpressions_ = input.readInt64(); - bitField6_ |= 0x00000002; + bitField6_ |= 0x00000004; break; } // case 3040 case 3048: { primaryImpressions_ = input.readInt64(); - bitField6_ |= 0x00000004; + bitField6_ |= 0x00000008; break; } // case 3048 case 3057: { platformComparableConversionsFromInteractionsRate_ = input.readDouble(); - bitField6_ |= 0x00000008; + bitField6_ |= 0x00000010; break; } // case 3057 case 3065: { platformComparableConversions_ = input.readDouble(); - bitField6_ |= 0x00000010; + bitField6_ |= 0x00000020; break; } // case 3065 case 3073: { platformComparableConversionsValue_ = input.readDouble(); - bitField6_ |= 0x00000020; + bitField6_ |= 0x00000040; break; } // case 3073 case 3081: { platformComparableConversionsValuePerCost_ = input.readDouble(); - bitField6_ |= 0x00000040; + bitField6_ |= 0x00000080; break; } // case 3081 case 3089: { platformComparableConversionsByConversionDate_ = input.readDouble(); - bitField6_ |= 0x00000080; + bitField6_ |= 0x00000100; break; } // case 3089 case 3097: { platformComparableConversionsValueByConversionDate_ = input.readDouble(); - bitField6_ |= 0x00000100; + bitField6_ |= 0x00000200; break; } // case 3097 case 3105: { platformComparableConversionsFromInteractionsValuePerInteraction_ = input.readDouble(); - bitField6_ |= 0x00000200; + bitField6_ |= 0x00000400; break; } // case 3105 case 3113: { costPerPlatformComparableConversion_ = input.readDouble(); - bitField6_ |= 0x00000400; + bitField6_ |= 0x00000800; break; } // case 3113 case 3121: { valuePerPlatformComparableConversion_ = input.readDouble(); - bitField6_ |= 0x00000800; + bitField6_ |= 0x00001000; break; } // case 3121 case 3129: { valuePerPlatformComparableConversionsByConversionDate_ = input.readDouble(); - bitField6_ |= 0x00001000; + bitField6_ |= 0x00002000; break; } // case 3129 case 3137: { costConvertedCurrencyPerPlatformComparableConversion_ = input.readDouble(); - bitField6_ |= 0x00002000; + bitField6_ |= 0x00004000; break; } // case 3137 case 3144: { uniqueUsersTwoPlus_ = input.readInt64(); - bitField6_ |= 0x00004000; + bitField6_ |= 0x00008000; break; } // case 3144 case 3152: { uniqueUsersThreePlus_ = input.readInt64(); - bitField6_ |= 0x00008000; + bitField6_ |= 0x00010000; break; } // case 3152 case 3160: { uniqueUsersFourPlus_ = input.readInt64(); - bitField6_ |= 0x00010000; + bitField6_ |= 0x00020000; break; } // case 3160 case 3168: { uniqueUsersFivePlus_ = input.readInt64(); - bitField6_ |= 0x00020000; + bitField6_ |= 0x00040000; break; } // case 3168 case 3176: { uniqueUsersTenPlus_ = input.readInt64(); - bitField6_ |= 0x00040000; + bitField6_ |= 0x00080000; break; } // case 3176 case 3185: { valueAdjustment_ = input.readDouble(); - bitField6_ |= 0x00080000; + bitField6_ |= 0x00100000; break; } // case 3185 case 3193: { allValueAdjustment_ = input.readDouble(); - bitField6_ |= 0x00100000; + bitField6_ |= 0x00200000; break; } // case 3193 case 3200: { clicksUniqueQueryClusters_ = input.readInt64(); - bitField6_ |= 0x00200000; + bitField6_ |= 0x00400000; break; } // case 3200 case 3208: { conversionsUniqueQueryClusters_ = input.readInt64(); - bitField6_ |= 0x00400000; + bitField6_ |= 0x00800000; break; } // case 3208 case 3216: { impressionsUniqueQueryClusters_ = input.readInt64(); - bitField6_ |= 0x00800000; + bitField6_ |= 0x01000000; break; } // case 3216 case 3224: { videoWatchTimeDurationMillis_ = input.readInt64(); - bitField6_ |= 0x01000000; + bitField6_ |= 0x02000000; break; } // case 3224 case 3232: { averageVideoWatchTimeDurationMillis_ = input.readInt64(); - bitField6_ |= 0x02000000; + bitField6_ |= 0x04000000; break; } // case 3232 case 3241: { @@ -16136,189 +17948,329 @@ public Builder mergeFrom( } // case 3241 case 3249: { videoTrueviewViewRate_ = input.readDouble(); - bitField4_ |= 0x00000800; + bitField4_ |= 0x00001000; break; } // case 3249 case 3256: { videoTrueviewViews_ = input.readInt64(); - bitField4_ |= 0x00001000; + bitField4_ |= 0x00002000; break; } // case 3256 case 3265: { videoTrueviewViewRateInFeed_ = input.readDouble(); - bitField5_ |= 0x40000000; + bitField5_ |= 0x80000000; break; } // case 3265 case 3273: { videoTrueviewViewRateInStream_ = input.readDouble(); - bitField5_ |= 0x80000000; + bitField6_ |= 0x00000001; break; } // case 3273 case 3281: { videoTrueviewViewRateShorts_ = input.readDouble(); - bitField6_ |= 0x00000001; + bitField6_ |= 0x00000002; break; } // case 3281 case 3288: { svr_ = input.readInt64(); - bitField6_ |= 0x04000000; + bitField6_ |= 0x08000000; break; } // case 3288 case 3296: { activeViewAudibilityMeasurableImpressions_ = input.readInt64(); - bitField6_ |= 0x08000000; + bitField6_ |= 0x10000000; break; } // case 3296 case 3305: { activeViewAudibilityMeasurableImpressionsRate_ = input.readDouble(); - bitField6_ |= 0x10000000; + bitField6_ |= 0x20000000; break; } // case 3305 case 3313: { activeViewAudibilityInvalidMeasurableImpressionsRate_ = input.readDouble(); - bitField6_ |= 0x20000000; + bitField6_ |= 0x40000000; break; } // case 3313 case 3321: { activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ = input.readDouble(); - bitField6_ |= 0x40000000; + bitField6_ |= 0x80000000; break; } // case 3321 case 3328: { activeViewAudibleImpressions_ = input.readInt64(); - bitField6_ |= 0x80000000; + bitField7_ |= 0x00000001; break; } // case 3328 case 3337: { activeViewAudibleImpressionsRate_ = input.readDouble(); - bitField7_ |= 0x00000001; + bitField7_ |= 0x00000002; break; } // case 3337 case 3344: { activeViewAudibleTwoSecondsImpressions_ = input.readInt64(); - bitField7_ |= 0x00000002; + bitField7_ |= 0x00000004; break; } // case 3344 case 3353: { activeViewAudibleTwoSecondsImpressionsRate_ = input.readDouble(); - bitField7_ |= 0x00000004; + bitField7_ |= 0x00000008; break; } // case 3353 case 3360: { activeViewAudibleThirtySecondsImpressions_ = input.readInt64(); - bitField7_ |= 0x00000008; + bitField7_ |= 0x00000010; break; } // case 3360 case 3369: { activeViewAudibleThirtySecondsImpressionsRate_ = input.readDouble(); - bitField7_ |= 0x00000010; + bitField7_ |= 0x00000020; break; } // case 3369 case 3377: { activeViewAudibleQuartileP25Rate_ = input.readDouble(); - bitField7_ |= 0x00000020; + bitField7_ |= 0x00000040; break; } // case 3377 case 3385: { activeViewAudibleQuartileP50Rate_ = input.readDouble(); - bitField7_ |= 0x00000040; + bitField7_ |= 0x00000080; break; } // case 3385 case 3393: { activeViewAudibleQuartileP75Rate_ = input.readDouble(); - bitField7_ |= 0x00000080; + bitField7_ |= 0x00000100; break; } // case 3393 case 3401: { activeViewAudibleQuartileP100Rate_ = input.readDouble(); - bitField7_ |= 0x00000100; + bitField7_ |= 0x00000200; break; } // case 3401 case 3408: { biddableIndirectInstallFirstInAppConversionMicros_ = input.readInt64(); - bitField7_ |= 0x00000200; + bitField7_ |= 0x00000400; break; } // case 3408 case 3417: { allAverageCartSize_ = input.readDouble(); - bitField7_ |= 0x00000400; + bitField7_ |= 0x00000800; break; } // case 3417 case 3424: { allAverageOrderValueMicros_ = input.readInt64(); - bitField7_ |= 0x00000800; + bitField7_ |= 0x00001000; break; } // case 3424 case 3432: { allCostOfGoodsSoldMicros_ = input.readInt64(); - bitField7_ |= 0x00001000; + bitField7_ |= 0x00002000; break; } // case 3432 case 3440: { allCrossSellCostOfGoodsSoldMicros_ = input.readInt64(); - bitField7_ |= 0x00002000; + bitField7_ |= 0x00004000; break; } // case 3440 case 3448: { allCrossSellGrossProfitMicros_ = input.readInt64(); - bitField7_ |= 0x00004000; + bitField7_ |= 0x00008000; break; } // case 3448 case 3456: { allCrossSellRevenueMicros_ = input.readInt64(); - bitField7_ |= 0x00008000; + bitField7_ |= 0x00010000; break; } // case 3456 case 3465: { allCrossSellUnitsSold_ = input.readDouble(); - bitField7_ |= 0x00010000; + bitField7_ |= 0x00020000; break; } // case 3465 case 3473: { allGrossProfitMargin_ = input.readDouble(); - bitField7_ |= 0x00020000; + bitField7_ |= 0x00040000; break; } // case 3473 case 3480: { allGrossProfitMicros_ = input.readInt64(); - bitField7_ |= 0x00040000; + bitField7_ |= 0x00080000; break; } // case 3480 case 3488: { allLeadCostOfGoodsSoldMicros_ = input.readInt64(); - bitField7_ |= 0x00080000; + bitField7_ |= 0x00100000; break; } // case 3488 case 3496: { allLeadGrossProfitMicros_ = input.readInt64(); - bitField7_ |= 0x00100000; + bitField7_ |= 0x00200000; break; } // case 3496 case 3504: { allLeadRevenueMicros_ = input.readInt64(); - bitField7_ |= 0x00200000; + bitField7_ |= 0x00400000; break; } // case 3504 case 3513: { allLeadUnitsSold_ = input.readDouble(); - bitField7_ |= 0x00400000; + bitField7_ |= 0x00800000; break; } // case 3513 case 3521: { allOrders_ = input.readDouble(); - bitField7_ |= 0x00800000; + bitField7_ |= 0x01000000; break; } // case 3521 case 3528: { allRevenueMicros_ = input.readInt64(); - bitField7_ |= 0x01000000; + bitField7_ |= 0x02000000; break; } // case 3528 case 3537: { allUnitsSold_ = input.readDouble(); - bitField7_ |= 0x02000000; + bitField7_ |= 0x04000000; break; } // case 3537 + case 3544: { + controlClicks_ = input.readInt64(); + bitField1_ |= 0x00000800; + break; + } // case 3544 + case 3569: { + controlCostPerConversion_ = input.readDouble(); + bitField7_ |= 0x08000000; + break; + } // case 3569 + case 3577: { + costPerConversionMarginOfError_ = input.readDouble(); + bitField7_ |= 0x10000000; + break; + } // case 3577 + case 3585: { + costPerConversionPValue_ = input.readDouble(); + bitField7_ |= 0x20000000; + break; + } // case 3585 + case 3593: { + costPerConversionChangePointEstimate_ = input.readDouble(); + bitField7_ |= 0x40000000; + break; + } // case 3593 + case 3601: { + controlConversions_ = input.readDouble(); + bitField7_ |= 0x80000000; + break; + } // case 3601 + case 3609: { + conversionsAbsoluteChangeMarginOfError_ = input.readDouble(); + bitField8_ |= 0x00000001; + break; + } // case 3609 + case 3617: { + conversionsAbsoluteChangePValue_ = input.readDouble(); + bitField8_ |= 0x00000002; + break; + } // case 3617 + case 3625: { + conversionsAbsoluteChangePointEstimate_ = input.readDouble(); + bitField8_ |= 0x00000004; + break; + } // case 3625 + case 3633: { + controlConversionValuePerCost_ = input.readDouble(); + bitField8_ |= 0x00000008; + break; + } // case 3633 + case 3641: { + conversionValuePerCostMarginOfError_ = input.readDouble(); + bitField8_ |= 0x00000010; + break; + } // case 3641 + case 3649: { + conversionValuePerCostPValue_ = input.readDouble(); + bitField8_ |= 0x00000020; + break; + } // case 3649 + case 3657: { + conversionValuePerCostChangePointEstimate_ = input.readDouble(); + bitField8_ |= 0x00000040; + break; + } // case 3657 + case 3664: { + controlCostMicros_ = input.readInt64(); + bitField8_ |= 0x00000080; + break; + } // case 3664 + case 3673: { + costMicrosMarginOfError_ = input.readDouble(); + bitField8_ |= 0x00000100; + break; + } // case 3673 + case 3681: { + costMicrosPValue_ = input.readDouble(); + bitField8_ |= 0x00000200; + break; + } // case 3681 + case 3689: { + costMicrosChangePointEstimate_ = input.readDouble(); + bitField8_ |= 0x00000400; + break; + } // case 3689 + case 3696: { + controlImpressions_ = input.readInt64(); + bitField8_ |= 0x00000800; + break; + } // case 3696 + case 3705: { + impressionsMarginOfError_ = input.readDouble(); + bitField8_ |= 0x00001000; + break; + } // case 3705 + case 3713: { + impressionsPValue_ = input.readDouble(); + bitField8_ |= 0x00002000; + break; + } // case 3713 + case 3721: { + impressionsPointEstimate_ = input.readDouble(); + bitField8_ |= 0x00004000; + break; + } // case 3721 + case 3729: { + clicksMarginOfError_ = input.readDouble(); + bitField8_ |= 0x00008000; + break; + } // case 3729 + case 3737: { + clicksPValue_ = input.readDouble(); + bitField8_ |= 0x00010000; + break; + } // case 3737 + case 3745: { + clicksPointEstimate_ = input.readDouble(); + bitField8_ |= 0x00020000; + break; + } // case 3745 + case 3753: { + controlConversionValue_ = input.readDouble(); + bitField8_ |= 0x00040000; + break; + } // case 3753 + case 3761: { + conversionValueMarginOfError_ = input.readDouble(); + bitField8_ |= 0x00080000; + break; + } // case 3761 + case 3769: { + conversionValuePValue_ = input.readDouble(); + bitField8_ |= 0x00100000; + break; + } // case 3769 + case 3777: { + conversionValueChangePointEstimate_ = input.readDouble(); + bitField8_ |= 0x00200000; + break; + } // case 3777 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -16334,17272 +18286,19481 @@ public Builder mergeFrom( } // finally return this; } - private int bitField0_; - private int bitField1_; - private int bitField2_; - private int bitField3_; - private int bitField4_; - private int bitField5_; - private int bitField6_; - private int bitField7_; + private int bitField0_; + private int bitField1_; + private int bitField2_; + private int bitField3_; + private int bitField4_; + private int bitField5_; + private int bitField6_; + private int bitField7_; + private int bitField8_; + + private double absoluteTopImpressionPercentage_ ; + /** + *
+     * Search absolute top impression share is the percentage of your Search ad
+     * impressions that are shown in the most prominent Search position.
+     * 
+ * + * optional double absolute_top_impression_percentage = 183; + * @return Whether the absoluteTopImpressionPercentage field is set. + */ + @java.lang.Override + public boolean hasAbsoluteTopImpressionPercentage() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * Search absolute top impression share is the percentage of your Search ad
+     * impressions that are shown in the most prominent Search position.
+     * 
+ * + * optional double absolute_top_impression_percentage = 183; + * @return The absoluteTopImpressionPercentage. + */ + @java.lang.Override + public double getAbsoluteTopImpressionPercentage() { + return absoluteTopImpressionPercentage_; + } + /** + *
+     * Search absolute top impression share is the percentage of your Search ad
+     * impressions that are shown in the most prominent Search position.
+     * 
+ * + * optional double absolute_top_impression_percentage = 183; + * @param value The absoluteTopImpressionPercentage to set. + * @return This builder for chaining. + */ + public Builder setAbsoluteTopImpressionPercentage(double value) { + + absoluteTopImpressionPercentage_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+     * Search absolute top impression share is the percentage of your Search ad
+     * impressions that are shown in the most prominent Search position.
+     * 
+ * + * 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) { + + activeViewCpm_ = value; + bitField0_ |= 0x00000002; + 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 the 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 the 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 the Display Network.
+     * 
+ * + * optional double active_view_ctr = 185; + * @param value The activeViewCtr to set. + * @return This builder for chaining. + */ + public Builder setActiveViewCtr(double value) { + + activeViewCtr_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+     * Active view measurable clicks divided by active view viewable impressions.
+     *
+     * This metric is reported only for the 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) { + + activeViewImpressions_ = value; + bitField0_ |= 0x00000008; + 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) { + + activeViewMeasurability_ = value; + bitField0_ |= 0x00000010; + 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) { + + activeViewMeasurableCostMicros_ = value; + bitField0_ |= 0x00000020; + 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) { + + activeViewMeasurableImpressions_ = value; + bitField0_ |= 0x00000040; + 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) { + + activeViewViewability_ = value; + bitField0_ |= 0x00000080; + 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) { + + allConversionsFromInteractionsRate_ = value; + bitField0_ |= 0x00000100; + 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) { + + allConversionsValue_ = value; + bitField0_ |= 0x00000200; + 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.
+     * 
+ * + * optional double all_conversions_value_by_conversion_date = 240; + * @return Whether the allConversionsValueByConversionDate field is set. + */ + @java.lang.Override + public boolean hasAllConversionsValueByConversionDate() { + return ((bitField0_ & 0x00000400) != 0); + } + /** + *
+     * 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.
+     * 
+ * + * optional 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.
+     * 
+ * + * optional 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; + bitField0_ |= 0x00000400; + 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.
+     * 
+ * + * optional double all_conversions_value_by_conversion_date = 240; + * @return This builder for chaining. + */ + public Builder clearAllConversionsValueByConversionDate() { + bitField0_ = (bitField0_ & ~0x00000400); + allConversionsValueByConversionDate_ = 0D; + onChanged(); + return this; + } + + private double allNewCustomerLifetimeValue_ ; + /** + *
+     * All of new customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for both
+     * biddable and non-biddable conversions. If your campaign has adopted the
+     * customer acquisition goal and selected "bid higher for new customers",
+     * these values will be included in "all_conversions_value". See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * 
+ * + * optional double all_new_customer_lifetime_value = 294; + * @return Whether the allNewCustomerLifetimeValue field is set. + */ + @java.lang.Override + public boolean hasAllNewCustomerLifetimeValue() { + return ((bitField0_ & 0x00000800) != 0); + } + /** + *
+     * All of new customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for both
+     * biddable and non-biddable conversions. If your campaign has adopted the
+     * customer acquisition goal and selected "bid higher for new customers",
+     * these values will be included in "all_conversions_value". See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * 
+ * + * optional double all_new_customer_lifetime_value = 294; + * @return The allNewCustomerLifetimeValue. + */ + @java.lang.Override + public double getAllNewCustomerLifetimeValue() { + return allNewCustomerLifetimeValue_; + } + /** + *
+     * All of new customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for both
+     * biddable and non-biddable conversions. If your campaign has adopted the
+     * customer acquisition goal and selected "bid higher for new customers",
+     * these values will be included in "all_conversions_value". See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * 
+ * + * optional double all_new_customer_lifetime_value = 294; + * @param value The allNewCustomerLifetimeValue to set. + * @return This builder for chaining. + */ + public Builder setAllNewCustomerLifetimeValue(double value) { + + allNewCustomerLifetimeValue_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + *
+     * All of new customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for both
+     * biddable and non-biddable conversions. If your campaign has adopted the
+     * customer acquisition goal and selected "bid higher for new customers",
+     * these values will be included in "all_conversions_value". See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * 
+ * + * optional double all_new_customer_lifetime_value = 294; + * @return This builder for chaining. + */ + public Builder clearAllNewCustomerLifetimeValue() { + bitField0_ = (bitField0_ & ~0x00000800); + allNewCustomerLifetimeValue_ = 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_ & 0x00001000) != 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) { + + allConversions_ = value; + bitField0_ |= 0x00001000; + 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_ & ~0x00001000); + 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.
+     * 
+ * + * optional double all_conversions_by_conversion_date = 241; + * @return Whether the allConversionsByConversionDate field is set. + */ + @java.lang.Override + public boolean hasAllConversionsByConversionDate() { + return ((bitField0_ & 0x00002000) != 0); + } + /** + *
+     * 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.
+     * 
+ * + * optional 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.
+     * 
+ * + * optional 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; + bitField0_ |= 0x00002000; + 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.
+     * 
+ * + * optional double all_conversions_by_conversion_date = 241; + * @return This builder for chaining. + */ + public Builder clearAllConversionsByConversionDate() { + bitField0_ = (bitField0_ & ~0x00002000); + 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_ & 0x00004000) != 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) { + + allConversionsValuePerCost_ = value; + bitField0_ |= 0x00004000; + 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_ & ~0x00004000); + allConversionsValuePerCost_ = 0D; + onChanged(); + return this; + } + + private double allConversionsFromClickToCall_ ; + /** + *
+     * The number of times people clicked the "Call" button to call a business
+     * 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_ & 0x00008000) != 0); + } + /** + *
+     * The number of times people clicked the "Call" button to call a business
+     * 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 business
+     * 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) { + + allConversionsFromClickToCall_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + *
+     * The number of times people clicked the "Call" button to call a business
+     * 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_ & ~0x00008000); + allConversionsFromClickToCall_ = 0D; + onChanged(); + return this; + } + + private double allConversionsFromDirections_ ; + /** + *
+     * The number of times people clicked a "Get directions" button to navigate to
+     * a business 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_ & 0x00010000) != 0); + } + /** + *
+     * The number of times people clicked a "Get directions" button to navigate to
+     * a business 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 business 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) { + + allConversionsFromDirections_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + *
+     * The number of times people clicked a "Get directions" button to navigate to
+     * a business 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_ & ~0x00010000); + 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_ & 0x00020000) != 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) { + + allConversionsFromInteractionsValuePerInteraction_ = value; + bitField0_ |= 0x00020000; + 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_ & ~0x00020000); + allConversionsFromInteractionsValuePerInteraction_ = 0D; + onChanged(); + return this; + } + + private double allConversionsFromMenu_ ; + /** + *
+     * The number of times people clicked a link to view a business'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_ & 0x00040000) != 0); + } + /** + *
+     * The number of times people clicked a link to view a business'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 business'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) { + + allConversionsFromMenu_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + *
+     * The number of times people clicked a link to view a business'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_ & ~0x00040000); + allConversionsFromMenu_ = 0D; + onChanged(); + return this; + } + + private double allConversionsFromOrder_ ; + /** + *
+     * The number of times people placed an order at a business 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_ & 0x00080000) != 0); + } + /** + *
+     * The number of times people placed an order at a business 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 business 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) { + + allConversionsFromOrder_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + *
+     * The number of times people placed an order at a business 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_ & ~0x00080000); + allConversionsFromOrder_ = 0D; + onChanged(); + return this; + } + + private double allConversionsFromOtherEngagement_ ; + /** + *
+     * The number of other conversions (for example, posting a review or saving a
+     * location for a business) 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_ & 0x00100000) != 0); + } + /** + *
+     * The number of other conversions (for example, posting a review or saving a
+     * location for a business) 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 business) 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) { + + allConversionsFromOtherEngagement_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + *
+     * The number of other conversions (for example, posting a review or saving a
+     * location for a business) 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_ & ~0x00100000); + allConversionsFromOtherEngagement_ = 0D; + onChanged(); + return this; + } + + private double allConversionsFromStoreVisit_ ; + /** + *
+     * Estimated number of times people visited a business 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_ & 0x00200000) != 0); + } + /** + *
+     * Estimated number of times people visited a business 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 business 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) { + + allConversionsFromStoreVisit_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + *
+     * Estimated number of times people visited a business 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_ & ~0x00200000); + allConversionsFromStoreVisit_ = 0D; + onChanged(); + return this; + } + + private double allConversionsFromStoreWebsite_ ; + /** + *
+     * The number of times that people were taken to a business'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_ & 0x00400000) != 0); + } + /** + *
+     * The number of times that people were taken to a business'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 business'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) { + + allConversionsFromStoreWebsite_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + *
+     * The number of times that people were taken to a business'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_ & ~0x00400000); + allConversionsFromStoreWebsite_ = 0D; + onChanged(); + return this; + } + + private double auctionInsightSearchAbsoluteTopImpressionPercentage_ ; + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed in the most prominent position on the
+     * search results page.
+     * This percentage is computed only over the auctions that you appeared in
+     * the page.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_absolute_top_impression_percentage = 258; + * @return Whether the auctionInsightSearchAbsoluteTopImpressionPercentage field is set. + */ + @java.lang.Override + public boolean hasAuctionInsightSearchAbsoluteTopImpressionPercentage() { + return ((bitField0_ & 0x00800000) != 0); + } + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed in the most prominent position on the
+     * search results page.
+     * This percentage is computed only over the auctions that you appeared in
+     * the page.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_absolute_top_impression_percentage = 258; + * @return The auctionInsightSearchAbsoluteTopImpressionPercentage. + */ + @java.lang.Override + public double getAuctionInsightSearchAbsoluteTopImpressionPercentage() { + return auctionInsightSearchAbsoluteTopImpressionPercentage_; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed in the most prominent position on the
+     * search results page.
+     * This percentage is computed only over the auctions that you appeared in
+     * the page.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_absolute_top_impression_percentage = 258; + * @param value The auctionInsightSearchAbsoluteTopImpressionPercentage to set. + * @return This builder for chaining. + */ + public Builder setAuctionInsightSearchAbsoluteTopImpressionPercentage(double value) { + + auctionInsightSearchAbsoluteTopImpressionPercentage_ = value; + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed in the most prominent position on the
+     * search results page.
+     * This percentage is computed only over the auctions that you appeared in
+     * the page.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_absolute_top_impression_percentage = 258; + * @return This builder for chaining. + */ + public Builder clearAuctionInsightSearchAbsoluteTopImpressionPercentage() { + bitField0_ = (bitField0_ & ~0x00800000); + auctionInsightSearchAbsoluteTopImpressionPercentage_ = 0D; + onChanged(); + return this; + } + + private double auctionInsightSearchImpressionShare_ ; + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that another participant obtained, over the total
+     * number of impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_impression_share = 259; + * @return Whether the auctionInsightSearchImpressionShare field is set. + */ + @java.lang.Override + public boolean hasAuctionInsightSearchImpressionShare() { + return ((bitField0_ & 0x01000000) != 0); + } + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that another participant obtained, over the total
+     * number of impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_impression_share = 259; + * @return The auctionInsightSearchImpressionShare. + */ + @java.lang.Override + public double getAuctionInsightSearchImpressionShare() { + return auctionInsightSearchImpressionShare_; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that another participant obtained, over the total
+     * number of impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_impression_share = 259; + * @param value The auctionInsightSearchImpressionShare to set. + * @return This builder for chaining. + */ + public Builder setAuctionInsightSearchImpressionShare(double value) { + + auctionInsightSearchImpressionShare_ = value; + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that another participant obtained, over the total
+     * number of impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_impression_share = 259; + * @return This builder for chaining. + */ + public Builder clearAuctionInsightSearchImpressionShare() { + bitField0_ = (bitField0_ & ~0x01000000); + auctionInsightSearchImpressionShare_ = 0D; + onChanged(); + return this; + } + + private double auctionInsightSearchOutrankingShare_ ; + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that your ads outranked (showed above)
+     * another participant in the auction, compared to the total number of
+     * impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_outranking_share = 260; + * @return Whether the auctionInsightSearchOutrankingShare field is set. + */ + @java.lang.Override + public boolean hasAuctionInsightSearchOutrankingShare() { + return ((bitField0_ & 0x02000000) != 0); + } + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that your ads outranked (showed above)
+     * another participant in the auction, compared to the total number of
+     * impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_outranking_share = 260; + * @return The auctionInsightSearchOutrankingShare. + */ + @java.lang.Override + public double getAuctionInsightSearchOutrankingShare() { + return auctionInsightSearchOutrankingShare_; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that your ads outranked (showed above)
+     * another participant in the auction, compared to the total number of
+     * impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_outranking_share = 260; + * @param value The auctionInsightSearchOutrankingShare to set. + * @return This builder for chaining. + */ + public Builder setAuctionInsightSearchOutrankingShare(double value) { + + auctionInsightSearchOutrankingShare_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells the
+     * percentage of impressions that your ads outranked (showed above)
+     * another participant in the auction, compared to the total number of
+     * impressions that your ads were eligible for.
+     * Any value below 0.1 is reported as 0.0999.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_outranking_share = 260; + * @return This builder for chaining. + */ + public Builder clearAuctionInsightSearchOutrankingShare() { + bitField0_ = (bitField0_ & ~0x02000000); + auctionInsightSearchOutrankingShare_ = 0D; + onChanged(); + return this; + } + + private double auctionInsightSearchOverlapRate_ ; + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad received an impression when your ad also received
+     * an impression.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_overlap_rate = 261; + * @return Whether the auctionInsightSearchOverlapRate field is set. + */ + @java.lang.Override + public boolean hasAuctionInsightSearchOverlapRate() { + return ((bitField0_ & 0x04000000) != 0); + } + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad received an impression when your ad also received
+     * an impression.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_overlap_rate = 261; + * @return The auctionInsightSearchOverlapRate. + */ + @java.lang.Override + public double getAuctionInsightSearchOverlapRate() { + return auctionInsightSearchOverlapRate_; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad received an impression when your ad also received
+     * an impression.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_overlap_rate = 261; + * @param value The auctionInsightSearchOverlapRate to set. + * @return This builder for chaining. + */ + public Builder setAuctionInsightSearchOverlapRate(double value) { + + auctionInsightSearchOverlapRate_ = value; + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + *
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad received an impression when your ad also received
+     * an impression.
+     *
+     * This metric is not publicly available.
+     * 
+ * + * optional double auction_insight_search_overlap_rate = 261; + * @return This builder for chaining. + */ + public Builder clearAuctionInsightSearchOverlapRate() { + bitField0_ = (bitField0_ & ~0x04000000); + auctionInsightSearchOverlapRate_ = 0D; + onChanged(); + return this; + } - private double absoluteTopImpressionPercentage_ ; + private double auctionInsightSearchPositionAboveRate_ ; /** *
-     * Search absolute top impression share is the percentage of your Search ad
-     * impressions that are shown in the most prominent Search position.
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad was shown in a higher position than yours, when
+     * both of your ads were shown at the same page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double absolute_top_impression_percentage = 183; - * @return Whether the absoluteTopImpressionPercentage field is set. + * optional double auction_insight_search_position_above_rate = 262; + * @return Whether the auctionInsightSearchPositionAboveRate field is set. */ @java.lang.Override - public boolean hasAbsoluteTopImpressionPercentage() { - return ((bitField0_ & 0x00000001) != 0); + public boolean hasAuctionInsightSearchPositionAboveRate() { + return ((bitField0_ & 0x08000000) != 0); } /** *
-     * Search absolute top impression share is the percentage of your Search ad
-     * impressions that are shown in the most prominent Search position.
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad was shown in a higher position than yours, when
+     * both of your ads were shown at the same page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double absolute_top_impression_percentage = 183; - * @return The absoluteTopImpressionPercentage. + * optional double auction_insight_search_position_above_rate = 262; + * @return The auctionInsightSearchPositionAboveRate. */ @java.lang.Override - public double getAbsoluteTopImpressionPercentage() { - return absoluteTopImpressionPercentage_; + public double getAuctionInsightSearchPositionAboveRate() { + return auctionInsightSearchPositionAboveRate_; } /** *
-     * Search absolute top impression share is the percentage of your Search ad
-     * impressions that are shown in the most prominent Search position.
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad was shown in a higher position than yours, when
+     * both of your ads were shown at the same page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double absolute_top_impression_percentage = 183; - * @param value The absoluteTopImpressionPercentage to set. + * optional double auction_insight_search_position_above_rate = 262; + * @param value The auctionInsightSearchPositionAboveRate to set. * @return This builder for chaining. */ - public Builder setAbsoluteTopImpressionPercentage(double value) { + public Builder setAuctionInsightSearchPositionAboveRate(double value) { - absoluteTopImpressionPercentage_ = value; - bitField0_ |= 0x00000001; + auctionInsightSearchPositionAboveRate_ = value; + bitField0_ |= 0x08000000; onChanged(); return this; } /** *
-     * Search absolute top impression share is the percentage of your Search ad
-     * impressions that are shown in the most prominent Search position.
+     * This metric is part of the Auction Insights report, and tells how often
+     * another participant's ad was shown in a higher position than yours, when
+     * both of your ads were shown at the same page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double absolute_top_impression_percentage = 183; + * optional double auction_insight_search_position_above_rate = 262; * @return This builder for chaining. */ - public Builder clearAbsoluteTopImpressionPercentage() { - bitField0_ = (bitField0_ & ~0x00000001); - absoluteTopImpressionPercentage_ = 0D; + public Builder clearAuctionInsightSearchPositionAboveRate() { + bitField0_ = (bitField0_ & ~0x08000000); + auctionInsightSearchPositionAboveRate_ = 0D; onChanged(); return this; } - private double activeViewCpm_ ; + private double auctionInsightSearchTopImpressionPercentage_ ; /** *
-     * Average cost of viewable impressions (`active_view_impressions`).
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed adjacent to the top organic search
+     * results. This percentage is computed only over the auctions that you
+     * appeared in the page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double active_view_cpm = 184; - * @return Whether the activeViewCpm field is set. + * optional double auction_insight_search_top_impression_percentage = 263; + * @return Whether the auctionInsightSearchTopImpressionPercentage field is set. */ @java.lang.Override - public boolean hasActiveViewCpm() { - return ((bitField0_ & 0x00000002) != 0); + public boolean hasAuctionInsightSearchTopImpressionPercentage() { + return ((bitField0_ & 0x10000000) != 0); } /** *
-     * Average cost of viewable impressions (`active_view_impressions`).
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed adjacent to the top organic search
+     * results. This percentage is computed only over the auctions that you
+     * appeared in the page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double active_view_cpm = 184; - * @return The activeViewCpm. + * optional double auction_insight_search_top_impression_percentage = 263; + * @return The auctionInsightSearchTopImpressionPercentage. */ @java.lang.Override - public double getActiveViewCpm() { - return activeViewCpm_; + public double getAuctionInsightSearchTopImpressionPercentage() { + return auctionInsightSearchTopImpressionPercentage_; } /** *
-     * Average cost of viewable impressions (`active_view_impressions`).
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed adjacent to the top organic search
+     * results. This percentage is computed only over the auctions that you
+     * appeared in the page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double active_view_cpm = 184; - * @param value The activeViewCpm to set. + * optional double auction_insight_search_top_impression_percentage = 263; + * @param value The auctionInsightSearchTopImpressionPercentage to set. * @return This builder for chaining. */ - public Builder setActiveViewCpm(double value) { + public Builder setAuctionInsightSearchTopImpressionPercentage(double value) { - activeViewCpm_ = value; - bitField0_ |= 0x00000002; + auctionInsightSearchTopImpressionPercentage_ = value; + bitField0_ |= 0x10000000; onChanged(); return this; } /** *
-     * Average cost of viewable impressions (`active_view_impressions`).
+     * This metric is part of the Auction Insights report, and tells how often
+     * the ads of another participant showed adjacent to the top organic search
+     * results. This percentage is computed only over the auctions that you
+     * appeared in the page.
+     *
+     * This metric is not publicly available.
      * 
* - * optional double active_view_cpm = 184; + * optional double auction_insight_search_top_impression_percentage = 263; * @return This builder for chaining. */ - public Builder clearActiveViewCpm() { - bitField0_ = (bitField0_ & ~0x00000002); - activeViewCpm_ = 0D; + public Builder clearAuctionInsightSearchTopImpressionPercentage() { + bitField0_ = (bitField0_ & ~0x10000000); + auctionInsightSearchTopImpressionPercentage_ = 0D; onChanged(); return this; } - private double activeViewCtr_ ; + private double averageCost_ ; /** *
-     * Active view measurable clicks divided by active view viewable impressions.
-     *
-     * This metric is reported only for the Display Network.
+     * 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 active_view_ctr = 185; - * @return Whether the activeViewCtr field is set. + * optional double average_cost = 203; + * @return Whether the averageCost field is set. */ @java.lang.Override - public boolean hasActiveViewCtr() { - return ((bitField0_ & 0x00000004) != 0); + public boolean hasAverageCost() { + return ((bitField0_ & 0x20000000) != 0); } /** *
-     * Active view measurable clicks divided by active view viewable impressions.
-     *
-     * This metric is reported only for the Display Network.
+     * 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 active_view_ctr = 185; - * @return The activeViewCtr. + * optional double average_cost = 203; + * @return The averageCost. */ @java.lang.Override - public double getActiveViewCtr() { - return activeViewCtr_; + public double getAverageCost() { + return averageCost_; } /** *
-     * Active view measurable clicks divided by active view viewable impressions.
-     *
-     * This metric is reported only for the Display Network.
+     * 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 active_view_ctr = 185; - * @param value The activeViewCtr to set. + * optional double average_cost = 203; + * @param value The averageCost to set. * @return This builder for chaining. */ - public Builder setActiveViewCtr(double value) { + public Builder setAverageCost(double value) { - activeViewCtr_ = value; - bitField0_ |= 0x00000004; + averageCost_ = value; + bitField0_ |= 0x20000000; onChanged(); return this; } /** *
-     * Active view measurable clicks divided by active view viewable impressions.
-     *
-     * This metric is reported only for the Display Network.
+     * 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 active_view_ctr = 185; + * optional double average_cost = 203; * @return This builder for chaining. */ - public Builder clearActiveViewCtr() { - bitField0_ = (bitField0_ & ~0x00000004); - activeViewCtr_ = 0D; + public Builder clearAverageCost() { + bitField0_ = (bitField0_ & ~0x20000000); + averageCost_ = 0D; onChanged(); return this; } - private long activeViewImpressions_ ; + private double averageCpc_ ; /** *
-     * A measurement of how often your ad has become viewable on a Display
-     * Network site.
+     * The total cost of all clicks divided by the total number of clicks
+     * received.
      * 
* - * optional int64 active_view_impressions = 186; - * @return Whether the activeViewImpressions field is set. + * optional double average_cpc = 204; + * @return Whether the averageCpc field is set. */ @java.lang.Override - public boolean hasActiveViewImpressions() { - return ((bitField0_ & 0x00000008) != 0); + public boolean hasAverageCpc() { + return ((bitField0_ & 0x40000000) != 0); } /** *
-     * A measurement of how often your ad has become viewable on a Display
-     * Network site.
+     * The total cost of all clicks divided by the total number of clicks
+     * received.
      * 
* - * optional int64 active_view_impressions = 186; - * @return The activeViewImpressions. + * optional double average_cpc = 204; + * @return The averageCpc. */ @java.lang.Override - public long getActiveViewImpressions() { - return activeViewImpressions_; + public double getAverageCpc() { + return averageCpc_; } /** *
-     * A measurement of how often your ad has become viewable on a Display
-     * Network site.
+     * The total cost of all clicks divided by the total number of clicks
+     * received.
      * 
* - * optional int64 active_view_impressions = 186; - * @param value The activeViewImpressions to set. + * optional double average_cpc = 204; + * @param value The averageCpc to set. * @return This builder for chaining. */ - public Builder setActiveViewImpressions(long value) { + public Builder setAverageCpc(double value) { - activeViewImpressions_ = value; - bitField0_ |= 0x00000008; + averageCpc_ = value; + bitField0_ |= 0x40000000; onChanged(); return this; } /** *
-     * A measurement of how often your ad has become viewable on a Display
-     * Network site.
+     * The total cost of all clicks divided by the total number of clicks
+     * received.
      * 
* - * optional int64 active_view_impressions = 186; + * optional double average_cpc = 204; * @return This builder for chaining. */ - public Builder clearActiveViewImpressions() { - bitField0_ = (bitField0_ & ~0x00000008); - activeViewImpressions_ = 0L; + public Builder clearAverageCpc() { + bitField0_ = (bitField0_ & ~0x40000000); + averageCpc_ = 0D; onChanged(); return this; } - private double activeViewMeasurability_ ; + private double averageCpe_ ; /** *
-     * The ratio of impressions that could be measured by Active View over the
-     * number of served impressions.
+     * 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 active_view_measurability = 187; - * @return Whether the activeViewMeasurability field is set. + * optional double average_cpe = 205; + * @return Whether the averageCpe field is set. */ @java.lang.Override - public boolean hasActiveViewMeasurability() { - return ((bitField0_ & 0x00000010) != 0); + public boolean hasAverageCpe() { + return ((bitField0_ & 0x80000000) != 0); } /** *
-     * The ratio of impressions that could be measured by Active View over the
-     * number of served impressions.
+     * 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 active_view_measurability = 187; - * @return The activeViewMeasurability. + * optional double average_cpe = 205; + * @return The averageCpe. */ @java.lang.Override - public double getActiveViewMeasurability() { - return activeViewMeasurability_; + public double getAverageCpe() { + return averageCpe_; } /** *
-     * The ratio of impressions that could be measured by Active View over the
-     * number of served impressions.
+     * 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 active_view_measurability = 187; - * @param value The activeViewMeasurability to set. + * optional double average_cpe = 205; + * @param value The averageCpe to set. * @return This builder for chaining. */ - public Builder setActiveViewMeasurability(double value) { + public Builder setAverageCpe(double value) { - activeViewMeasurability_ = value; - bitField0_ |= 0x00000010; + averageCpe_ = value; + bitField0_ |= 0x80000000; onChanged(); return this; } /** *
-     * The ratio of impressions that could be measured by Active View over the
-     * number of served impressions.
+     * 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 active_view_measurability = 187; + * optional double average_cpe = 205; * @return This builder for chaining. */ - public Builder clearActiveViewMeasurability() { - bitField0_ = (bitField0_ & ~0x00000010); - activeViewMeasurability_ = 0D; + public Builder clearAverageCpe() { + bitField0_ = (bitField0_ & ~0x80000000); + averageCpe_ = 0D; onChanged(); return this; } - private long activeViewMeasurableCostMicros_ ; + private double averageCpm_ ; /** *
-     * The cost of the impressions you received that were measurable by Active
-     * View.
+     * Average cost-per-thousand impressions (CPM).
      * 
* - * optional int64 active_view_measurable_cost_micros = 188; - * @return Whether the activeViewMeasurableCostMicros field is set. + * optional double average_cpm = 206; + * @return Whether the averageCpm field is set. */ @java.lang.Override - public boolean hasActiveViewMeasurableCostMicros() { - return ((bitField0_ & 0x00000020) != 0); + public boolean hasAverageCpm() { + return ((bitField1_ & 0x00000001) != 0); } /** *
-     * The cost of the impressions you received that were measurable by Active
-     * View.
+     * Average cost-per-thousand impressions (CPM).
      * 
* - * optional int64 active_view_measurable_cost_micros = 188; - * @return The activeViewMeasurableCostMicros. + * optional double average_cpm = 206; + * @return The averageCpm. */ @java.lang.Override - public long getActiveViewMeasurableCostMicros() { - return activeViewMeasurableCostMicros_; + public double getAverageCpm() { + return averageCpm_; } /** *
-     * The cost of the impressions you received that were measurable by Active
-     * View.
+     * Average cost-per-thousand impressions (CPM).
      * 
* - * optional int64 active_view_measurable_cost_micros = 188; - * @param value The activeViewMeasurableCostMicros to set. + * optional double average_cpm = 206; + * @param value The averageCpm to set. * @return This builder for chaining. */ - public Builder setActiveViewMeasurableCostMicros(long value) { + public Builder setAverageCpm(double value) { - activeViewMeasurableCostMicros_ = value; - bitField0_ |= 0x00000020; + averageCpm_ = value; + bitField1_ |= 0x00000001; onChanged(); return this; } /** *
-     * The cost of the impressions you received that were measurable by Active
-     * View.
+     * Average cost-per-thousand impressions (CPM).
      * 
* - * optional int64 active_view_measurable_cost_micros = 188; + * optional double average_cpm = 206; * @return This builder for chaining. */ - public Builder clearActiveViewMeasurableCostMicros() { - bitField0_ = (bitField0_ & ~0x00000020); - activeViewMeasurableCostMicros_ = 0L; + public Builder clearAverageCpm() { + bitField1_ = (bitField1_ & ~0x00000001); + averageCpm_ = 0D; onChanged(); return this; } - private long activeViewMeasurableImpressions_ ; + private double trueviewAverageCpv_ ; /** *
-     * The number of times your ads are appearing on placements in positions
-     * where they can be seen.
+     * 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 TrueView views.
      * 
* - * optional int64 active_view_measurable_impressions = 189; - * @return Whether the activeViewMeasurableImpressions field is set. + * optional double trueview_average_cpv = 405; + * @return Whether the trueviewAverageCpv field is set. */ @java.lang.Override - public boolean hasActiveViewMeasurableImpressions() { - return ((bitField0_ & 0x00000040) != 0); + public boolean hasTrueviewAverageCpv() { + return ((bitField1_ & 0x00000002) != 0); } /** *
-     * The number of times your ads are appearing on placements in positions
-     * where they can be seen.
+     * 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 TrueView views.
      * 
* - * optional int64 active_view_measurable_impressions = 189; - * @return The activeViewMeasurableImpressions. + * optional double trueview_average_cpv = 405; + * @return The trueviewAverageCpv. */ @java.lang.Override - public long getActiveViewMeasurableImpressions() { - return activeViewMeasurableImpressions_; + public double getTrueviewAverageCpv() { + return trueviewAverageCpv_; } /** *
-     * The number of times your ads are appearing on placements in positions
-     * where they can be seen.
+     * 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 TrueView views.
      * 
* - * optional int64 active_view_measurable_impressions = 189; - * @param value The activeViewMeasurableImpressions to set. + * optional double trueview_average_cpv = 405; + * @param value The trueviewAverageCpv to set. * @return This builder for chaining. */ - public Builder setActiveViewMeasurableImpressions(long value) { + public Builder setTrueviewAverageCpv(double value) { - activeViewMeasurableImpressions_ = value; - bitField0_ |= 0x00000040; + trueviewAverageCpv_ = value; + bitField1_ |= 0x00000002; onChanged(); return this; } /** *
-     * The number of times your ads are appearing on placements in positions
-     * where they can be seen.
+     * 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 TrueView views.
      * 
* - * optional int64 active_view_measurable_impressions = 189; + * optional double trueview_average_cpv = 405; * @return This builder for chaining. */ - public Builder clearActiveViewMeasurableImpressions() { - bitField0_ = (bitField0_ & ~0x00000040); - activeViewMeasurableImpressions_ = 0L; + public Builder clearTrueviewAverageCpv() { + bitField1_ = (bitField1_ & ~0x00000002); + trueviewAverageCpv_ = 0D; onChanged(); return this; } - private double activeViewViewability_ ; + private double averagePageViews_ ; /** *
-     * The percentage of time when your ad appeared on an Active View enabled site
-     * (measurable impressions) and was viewable (viewable impressions).
+     * Average number of pages viewed per session.
      * 
* - * optional double active_view_viewability = 190; - * @return Whether the activeViewViewability field is set. + * optional double average_page_views = 208; + * @return Whether the averagePageViews field is set. */ @java.lang.Override - public boolean hasActiveViewViewability() { - return ((bitField0_ & 0x00000080) != 0); + public boolean hasAveragePageViews() { + return ((bitField1_ & 0x00000004) != 0); } /** *
-     * The percentage of time when your ad appeared on an Active View enabled site
-     * (measurable impressions) and was viewable (viewable impressions).
+     * Average number of pages viewed per session.
      * 
* - * optional double active_view_viewability = 190; - * @return The activeViewViewability. + * optional double average_page_views = 208; + * @return The averagePageViews. */ @java.lang.Override - public double getActiveViewViewability() { - return activeViewViewability_; + public double getAveragePageViews() { + return averagePageViews_; } /** *
-     * The percentage of time when your ad appeared on an Active View enabled site
-     * (measurable impressions) and was viewable (viewable impressions).
+     * Average number of pages viewed per session.
      * 
* - * optional double active_view_viewability = 190; - * @param value The activeViewViewability to set. + * optional double average_page_views = 208; + * @param value The averagePageViews to set. * @return This builder for chaining. */ - public Builder setActiveViewViewability(double value) { + public Builder setAveragePageViews(double value) { - activeViewViewability_ = value; - bitField0_ |= 0x00000080; + averagePageViews_ = value; + bitField1_ |= 0x00000004; onChanged(); return this; } /** *
-     * The percentage of time when your ad appeared on an Active View enabled site
-     * (measurable impressions) and was viewable (viewable impressions).
+     * Average number of pages viewed per session.
      * 
* - * optional double active_view_viewability = 190; + * optional double average_page_views = 208; * @return This builder for chaining. */ - public Builder clearActiveViewViewability() { - bitField0_ = (bitField0_ & ~0x00000080); - activeViewViewability_ = 0D; + public Builder clearAveragePageViews() { + bitField1_ = (bitField1_ & ~0x00000004); + averagePageViews_ = 0D; onChanged(); return this; } - private double allConversionsFromInteractionsRate_ ; + private double averageTimeOnSite_ ; /** *
-     * All conversions from interactions (as oppose to view through conversions)
-     * divided by the number of ad interactions.
+     * Total duration of all sessions (in seconds) / number of sessions. Imported
+     * from Google Analytics.
      * 
* - * optional double all_conversions_from_interactions_rate = 191; - * @return Whether the allConversionsFromInteractionsRate field is set. + * optional double average_time_on_site = 209; + * @return Whether the averageTimeOnSite field is set. */ @java.lang.Override - public boolean hasAllConversionsFromInteractionsRate() { - return ((bitField0_ & 0x00000100) != 0); + public boolean hasAverageTimeOnSite() { + return ((bitField1_ & 0x00000008) != 0); } /** *
-     * All conversions from interactions (as oppose to view through conversions)
-     * divided by the number of ad interactions.
+     * Total duration of all sessions (in seconds) / number of sessions. Imported
+     * from Google Analytics.
      * 
* - * optional double all_conversions_from_interactions_rate = 191; - * @return The allConversionsFromInteractionsRate. + * optional double average_time_on_site = 209; + * @return The averageTimeOnSite. */ @java.lang.Override - public double getAllConversionsFromInteractionsRate() { - return allConversionsFromInteractionsRate_; + public double getAverageTimeOnSite() { + return averageTimeOnSite_; } /** *
-     * All conversions from interactions (as oppose to view through conversions)
-     * divided by the number of ad interactions.
+     * Total duration of all sessions (in seconds) / number of sessions. Imported
+     * from Google Analytics.
      * 
* - * optional double all_conversions_from_interactions_rate = 191; - * @param value The allConversionsFromInteractionsRate to set. + * optional double average_time_on_site = 209; + * @param value The averageTimeOnSite to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromInteractionsRate(double value) { + public Builder setAverageTimeOnSite(double value) { - allConversionsFromInteractionsRate_ = value; - bitField0_ |= 0x00000100; + averageTimeOnSite_ = value; + bitField1_ |= 0x00000008; onChanged(); return this; } /** *
-     * All conversions from interactions (as oppose to view through conversions)
-     * divided by the number of ad interactions.
+     * Total duration of all sessions (in seconds) / number of sessions. Imported
+     * from Google Analytics.
      * 
* - * optional double all_conversions_from_interactions_rate = 191; + * optional double average_time_on_site = 209; * @return This builder for chaining. */ - public Builder clearAllConversionsFromInteractionsRate() { - bitField0_ = (bitField0_ & ~0x00000100); - allConversionsFromInteractionsRate_ = 0D; + public Builder clearAverageTimeOnSite() { + bitField1_ = (bitField1_ & ~0x00000008); + averageTimeOnSite_ = 0D; onChanged(); return this; } - private double allConversionsValue_ ; + private double benchmarkAverageMaxCpc_ ; /** *
-     * The value of all conversions.
+     * An indication of how other advertisers are bidding on similar products.
      * 
* - * optional double all_conversions_value = 192; - * @return Whether the allConversionsValue field is set. + * optional double benchmark_average_max_cpc = 210; + * @return Whether the benchmarkAverageMaxCpc field is set. */ @java.lang.Override - public boolean hasAllConversionsValue() { - return ((bitField0_ & 0x00000200) != 0); + public boolean hasBenchmarkAverageMaxCpc() { + return ((bitField1_ & 0x00000010) != 0); } /** *
-     * The value of all conversions.
+     * An indication of how other advertisers are bidding on similar products.
      * 
* - * optional double all_conversions_value = 192; - * @return The allConversionsValue. + * optional double benchmark_average_max_cpc = 210; + * @return The benchmarkAverageMaxCpc. */ @java.lang.Override - public double getAllConversionsValue() { - return allConversionsValue_; + public double getBenchmarkAverageMaxCpc() { + return benchmarkAverageMaxCpc_; } /** *
-     * The value of all conversions.
+     * An indication of how other advertisers are bidding on similar products.
      * 
* - * optional double all_conversions_value = 192; - * @param value The allConversionsValue to set. + * optional double benchmark_average_max_cpc = 210; + * @param value The benchmarkAverageMaxCpc to set. * @return This builder for chaining. */ - public Builder setAllConversionsValue(double value) { + public Builder setBenchmarkAverageMaxCpc(double value) { - allConversionsValue_ = value; - bitField0_ |= 0x00000200; + benchmarkAverageMaxCpc_ = value; + bitField1_ |= 0x00000010; onChanged(); return this; } /** *
-     * The value of all conversions.
+     * An indication of how other advertisers are bidding on similar products.
      * 
* - * optional double all_conversions_value = 192; + * optional double benchmark_average_max_cpc = 210; * @return This builder for chaining. */ - public Builder clearAllConversionsValue() { - bitField0_ = (bitField0_ & ~0x00000200); - allConversionsValue_ = 0D; + public Builder clearBenchmarkAverageMaxCpc() { + bitField1_ = (bitField1_ & ~0x00000010); + benchmarkAverageMaxCpc_ = 0D; onChanged(); return this; } - private double allConversionsValueByConversionDate_ ; + private double biddableAppInstallConversions_ ; /** *
-     * 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.
+     * Number of app installs.
      * 
* - * optional double all_conversions_value_by_conversion_date = 240; - * @return Whether the allConversionsValueByConversionDate field is set. + * optional double biddable_app_install_conversions = 254; + * @return Whether the biddableAppInstallConversions field is set. */ @java.lang.Override - public boolean hasAllConversionsValueByConversionDate() { - return ((bitField0_ & 0x00000400) != 0); + public boolean hasBiddableAppInstallConversions() { + return ((bitField1_ & 0x00000020) != 0); } /** *
-     * 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.
+     * Number of app installs.
      * 
* - * optional double all_conversions_value_by_conversion_date = 240; - * @return The allConversionsValueByConversionDate. + * optional double biddable_app_install_conversions = 254; + * @return The biddableAppInstallConversions. */ @java.lang.Override - public double getAllConversionsValueByConversionDate() { - return allConversionsValueByConversionDate_; + public double getBiddableAppInstallConversions() { + return biddableAppInstallConversions_; } /** *
-     * 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.
+     * Number of app installs.
      * 
* - * optional double all_conversions_value_by_conversion_date = 240; - * @param value The allConversionsValueByConversionDate to set. + * optional double biddable_app_install_conversions = 254; + * @param value The biddableAppInstallConversions to set. * @return This builder for chaining. */ - public Builder setAllConversionsValueByConversionDate(double value) { + public Builder setBiddableAppInstallConversions(double value) { - allConversionsValueByConversionDate_ = value; - bitField0_ |= 0x00000400; + biddableAppInstallConversions_ = value; + bitField1_ |= 0x00000020; 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.
+     * Number of app installs.
      * 
* - * optional double all_conversions_value_by_conversion_date = 240; + * optional double biddable_app_install_conversions = 254; * @return This builder for chaining. */ - public Builder clearAllConversionsValueByConversionDate() { - bitField0_ = (bitField0_ & ~0x00000400); - allConversionsValueByConversionDate_ = 0D; + public Builder clearBiddableAppInstallConversions() { + bitField1_ = (bitField1_ & ~0x00000020); + biddableAppInstallConversions_ = 0D; onChanged(); return this; } - private double allNewCustomerLifetimeValue_ ; + private double biddableAppPostInstallConversions_ ; /** *
-     * All of new customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for both
-     * biddable and non-biddable conversions. If your campaign has adopted the
-     * customer acquisition goal and selected "bid higher for new customers",
-     * these values will be included in "all_conversions_value". See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * Number of in-app actions.
      * 
* - * optional double all_new_customer_lifetime_value = 294; - * @return Whether the allNewCustomerLifetimeValue field is set. + * optional double biddable_app_post_install_conversions = 255; + * @return Whether the biddableAppPostInstallConversions field is set. */ @java.lang.Override - public boolean hasAllNewCustomerLifetimeValue() { - return ((bitField0_ & 0x00000800) != 0); + public boolean hasBiddableAppPostInstallConversions() { + return ((bitField1_ & 0x00000040) != 0); } /** *
-     * All of new customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for both
-     * biddable and non-biddable conversions. If your campaign has adopted the
-     * customer acquisition goal and selected "bid higher for new customers",
-     * these values will be included in "all_conversions_value". See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * Number of in-app actions.
      * 
* - * optional double all_new_customer_lifetime_value = 294; - * @return The allNewCustomerLifetimeValue. + * optional double biddable_app_post_install_conversions = 255; + * @return The biddableAppPostInstallConversions. */ @java.lang.Override - public double getAllNewCustomerLifetimeValue() { - return allNewCustomerLifetimeValue_; + public double getBiddableAppPostInstallConversions() { + return biddableAppPostInstallConversions_; } /** *
-     * All of new customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for both
-     * biddable and non-biddable conversions. If your campaign has adopted the
-     * customer acquisition goal and selected "bid higher for new customers",
-     * these values will be included in "all_conversions_value". See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * Number of in-app actions.
      * 
* - * optional double all_new_customer_lifetime_value = 294; - * @param value The allNewCustomerLifetimeValue to set. + * optional double biddable_app_post_install_conversions = 255; + * @param value The biddableAppPostInstallConversions to set. * @return This builder for chaining. */ - public Builder setAllNewCustomerLifetimeValue(double value) { + public Builder setBiddableAppPostInstallConversions(double value) { - allNewCustomerLifetimeValue_ = value; - bitField0_ |= 0x00000800; + biddableAppPostInstallConversions_ = value; + bitField1_ |= 0x00000040; onChanged(); return this; } /** *
-     * All of new customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for both
-     * biddable and non-biddable conversions. If your campaign has adopted the
-     * customer acquisition goal and selected "bid higher for new customers",
-     * these values will be included in "all_conversions_value". See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * Number of in-app actions.
      * 
* - * optional double all_new_customer_lifetime_value = 294; + * optional double biddable_app_post_install_conversions = 255; * @return This builder for chaining. */ - public Builder clearAllNewCustomerLifetimeValue() { - bitField0_ = (bitField0_ & ~0x00000800); - allNewCustomerLifetimeValue_ = 0D; + public Builder clearBiddableAppPostInstallConversions() { + bitField1_ = (bitField1_ & ~0x00000040); + biddableAppPostInstallConversions_ = 0D; onChanged(); return this; } - private double allConversions_ ; + private double biddableCohortAppPostInstallConversions_ ; /** *
-     * The total number of conversions. This includes all conversions regardless
-     * of the value of include_in_conversions_metric.
+     * Participated in-app actions. The number of in app actions that come
+     * directly or indirectly from the campaign.
      * 
* - * optional double all_conversions = 193; - * @return Whether the allConversions field is set. + * optional double biddable_cohort_app_post_install_conversions = 378; + * @return Whether the biddableCohortAppPostInstallConversions field is set. */ @java.lang.Override - public boolean hasAllConversions() { - return ((bitField0_ & 0x00001000) != 0); + public boolean hasBiddableCohortAppPostInstallConversions() { + return ((bitField1_ & 0x00000080) != 0); } /** *
-     * The total number of conversions. This includes all conversions regardless
-     * of the value of include_in_conversions_metric.
+     * Participated in-app actions. The number of in app actions that come
+     * directly or indirectly from the campaign.
      * 
* - * optional double all_conversions = 193; - * @return The allConversions. + * optional double biddable_cohort_app_post_install_conversions = 378; + * @return The biddableCohortAppPostInstallConversions. */ @java.lang.Override - public double getAllConversions() { - return allConversions_; + public double getBiddableCohortAppPostInstallConversions() { + return biddableCohortAppPostInstallConversions_; } /** *
-     * The total number of conversions. This includes all conversions regardless
-     * of the value of include_in_conversions_metric.
+     * Participated in-app actions. The number of in app actions that come
+     * directly or indirectly from the campaign.
      * 
* - * optional double all_conversions = 193; - * @param value The allConversions to set. + * optional double biddable_cohort_app_post_install_conversions = 378; + * @param value The biddableCohortAppPostInstallConversions to set. * @return This builder for chaining. */ - public Builder setAllConversions(double value) { + public Builder setBiddableCohortAppPostInstallConversions(double value) { - allConversions_ = value; - bitField0_ |= 0x00001000; + biddableCohortAppPostInstallConversions_ = value; + bitField1_ |= 0x00000080; onChanged(); return this; } /** *
-     * The total number of conversions. This includes all conversions regardless
-     * of the value of include_in_conversions_metric.
+     * Participated in-app actions. The number of in app actions that come
+     * directly or indirectly from the campaign.
      * 
* - * optional double all_conversions = 193; + * optional double biddable_cohort_app_post_install_conversions = 378; * @return This builder for chaining. */ - public Builder clearAllConversions() { - bitField0_ = (bitField0_ & ~0x00001000); - allConversions_ = 0D; + public Builder clearBiddableCohortAppPostInstallConversions() { + bitField1_ = (bitField1_ & ~0x00000080); + biddableCohortAppPostInstallConversions_ = 0D; onChanged(); return this; } - private double allConversionsByConversionDate_ ; + private double benchmarkCtr_ ; /** *
-     * 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.
+     * 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 all_conversions_by_conversion_date = 241; - * @return Whether the allConversionsByConversionDate field is set. + * optional double benchmark_ctr = 211; + * @return Whether the benchmarkCtr field is set. */ @java.lang.Override - public boolean hasAllConversionsByConversionDate() { - return ((bitField0_ & 0x00002000) != 0); + public boolean hasBenchmarkCtr() { + return ((bitField1_ & 0x00000100) != 0); } /** *
-     * 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.
+     * 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 all_conversions_by_conversion_date = 241; - * @return The allConversionsByConversionDate. + * optional double benchmark_ctr = 211; + * @return The benchmarkCtr. */ @java.lang.Override - public double getAllConversionsByConversionDate() { - return allConversionsByConversionDate_; + public double getBenchmarkCtr() { + return benchmarkCtr_; } /** *
-     * 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.
+     * 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 all_conversions_by_conversion_date = 241; - * @param value The allConversionsByConversionDate to set. + * optional double benchmark_ctr = 211; + * @param value The benchmarkCtr to set. * @return This builder for chaining. */ - public Builder setAllConversionsByConversionDate(double value) { + public Builder setBenchmarkCtr(double value) { - allConversionsByConversionDate_ = value; - bitField0_ |= 0x00002000; + benchmarkCtr_ = value; + bitField1_ |= 0x00000100; 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.
+     * 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 all_conversions_by_conversion_date = 241; + * optional double benchmark_ctr = 211; * @return This builder for chaining. */ - public Builder clearAllConversionsByConversionDate() { - bitField0_ = (bitField0_ & ~0x00002000); - allConversionsByConversionDate_ = 0D; + public Builder clearBenchmarkCtr() { + bitField1_ = (bitField1_ & ~0x00000100); + benchmarkCtr_ = 0D; onChanged(); return this; } - private double allConversionsValuePerCost_ ; + private double bounceRate_ ; /** *
-     * The value of all conversions divided by the total cost of ad interactions
-     * (such as clicks for text ads or views for video ads).
+     * Percentage of clicks where the user only visited a single page on your
+     * site. Imported from Google Analytics.
      * 
* - * optional double all_conversions_value_per_cost = 194; - * @return Whether the allConversionsValuePerCost field is set. + * optional double bounce_rate = 212; + * @return Whether the bounceRate field is set. */ @java.lang.Override - public boolean hasAllConversionsValuePerCost() { - return ((bitField0_ & 0x00004000) != 0); + public boolean hasBounceRate() { + return ((bitField1_ & 0x00000200) != 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).
+     * Percentage of clicks where the user only visited a single page on your
+     * site. Imported from Google Analytics.
      * 
* - * optional double all_conversions_value_per_cost = 194; - * @return The allConversionsValuePerCost. + * optional double bounce_rate = 212; + * @return The bounceRate. */ @java.lang.Override - public double getAllConversionsValuePerCost() { - return allConversionsValuePerCost_; + public double getBounceRate() { + return bounceRate_; } /** *
-     * The value of all conversions divided by the total cost of ad interactions
-     * (such as clicks for text ads or views for video ads).
+     * Percentage of clicks where the user only visited a single page on your
+     * site. Imported from Google Analytics.
      * 
* - * optional double all_conversions_value_per_cost = 194; - * @param value The allConversionsValuePerCost to set. + * optional double bounce_rate = 212; + * @param value The bounceRate to set. * @return This builder for chaining. */ - public Builder setAllConversionsValuePerCost(double value) { + public Builder setBounceRate(double value) { - allConversionsValuePerCost_ = value; - bitField0_ |= 0x00004000; + bounceRate_ = value; + bitField1_ |= 0x00000200; 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).
+     * Percentage of clicks where the user only visited a single page on your
+     * site. Imported from Google Analytics.
      * 
* - * optional double all_conversions_value_per_cost = 194; + * optional double bounce_rate = 212; * @return This builder for chaining. */ - public Builder clearAllConversionsValuePerCost() { - bitField0_ = (bitField0_ & ~0x00004000); - allConversionsValuePerCost_ = 0D; + public Builder clearBounceRate() { + bitField1_ = (bitField1_ & ~0x00000200); + bounceRate_ = 0D; onChanged(); return this; } - private double allConversionsFromClickToCall_ ; + private long clicks_ ; /** *
-     * The number of times people clicked the "Call" button to call a business
-     * 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.
+     * The number of clicks.
      * 
* - * optional double all_conversions_from_click_to_call = 195; - * @return Whether the allConversionsFromClickToCall field is set. + * optional int64 clicks = 131; + * @return Whether the clicks field is set. */ @java.lang.Override - public boolean hasAllConversionsFromClickToCall() { - return ((bitField0_ & 0x00008000) != 0); + public boolean hasClicks() { + return ((bitField1_ & 0x00000400) != 0); } /** *
-     * The number of times people clicked the "Call" button to call a business
-     * 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.
+     * The number of clicks.
      * 
* - * optional double all_conversions_from_click_to_call = 195; - * @return The allConversionsFromClickToCall. + * optional int64 clicks = 131; + * @return The clicks. */ @java.lang.Override - public double getAllConversionsFromClickToCall() { - return allConversionsFromClickToCall_; + public long getClicks() { + return clicks_; } /** *
-     * The number of times people clicked the "Call" button to call a business
-     * 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.
+     * The number of clicks.
      * 
* - * optional double all_conversions_from_click_to_call = 195; - * @param value The allConversionsFromClickToCall to set. + * optional int64 clicks = 131; + * @param value The clicks to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromClickToCall(double value) { + public Builder setClicks(long value) { - allConversionsFromClickToCall_ = value; - bitField0_ |= 0x00008000; + clicks_ = value; + bitField1_ |= 0x00000400; onChanged(); return this; } /** *
-     * The number of times people clicked the "Call" button to call a business
-     * 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.
+     * The number of clicks.
      * 
* - * optional double all_conversions_from_click_to_call = 195; + * optional int64 clicks = 131; * @return This builder for chaining. */ - public Builder clearAllConversionsFromClickToCall() { - bitField0_ = (bitField0_ & ~0x00008000); - allConversionsFromClickToCall_ = 0D; + public Builder clearClicks() { + bitField1_ = (bitField1_ & ~0x00000400); + clicks_ = 0L; onChanged(); return this; } - private double allConversionsFromDirections_ ; + private long controlClicks_ ; /** *
-     * The number of times people clicked a "Get directions" button to navigate to
-     * a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * The number of clicks on the control arm of an experiment.
+     * The treatment clicks value can be selected by using `clicks`.
      * 
* - * optional double all_conversions_from_directions = 196; - * @return Whether the allConversionsFromDirections field is set. + * optional int64 control_clicks = 443; + * @return Whether the controlClicks field is set. */ @java.lang.Override - public boolean hasAllConversionsFromDirections() { - return ((bitField0_ & 0x00010000) != 0); + public boolean hasControlClicks() { + return ((bitField1_ & 0x00000800) != 0); } /** *
-     * The number of times people clicked a "Get directions" button to navigate to
-     * a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * The number of clicks on the control arm of an experiment.
+     * The treatment clicks value can be selected by using `clicks`.
      * 
* - * optional double all_conversions_from_directions = 196; - * @return The allConversionsFromDirections. + * optional int64 control_clicks = 443; + * @return The controlClicks. */ @java.lang.Override - public double getAllConversionsFromDirections() { - return allConversionsFromDirections_; + public long getControlClicks() { + return controlClicks_; } /** *
-     * The number of times people clicked a "Get directions" button to navigate to
-     * a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * The number of clicks on the control arm of an experiment.
+     * The treatment clicks value can be selected by using `clicks`.
      * 
* - * optional double all_conversions_from_directions = 196; - * @param value The allConversionsFromDirections to set. + * optional int64 control_clicks = 443; + * @param value The controlClicks to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromDirections(double value) { + public Builder setControlClicks(long value) { - allConversionsFromDirections_ = value; - bitField0_ |= 0x00010000; + controlClicks_ = value; + bitField1_ |= 0x00000800; onChanged(); return this; } /** *
-     * The number of times people clicked a "Get directions" button to navigate to
-     * a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * The number of clicks on the control arm of an experiment.
+     * The treatment clicks value can be selected by using `clicks`.
      * 
* - * optional double all_conversions_from_directions = 196; + * optional int64 control_clicks = 443; * @return This builder for chaining. */ - public Builder clearAllConversionsFromDirections() { - bitField0_ = (bitField0_ & ~0x00010000); - allConversionsFromDirections_ = 0D; + public Builder clearControlClicks() { + bitField1_ = (bitField1_ & ~0x00000800); + controlClicks_ = 0L; onChanged(); return this; } - private double allConversionsFromInteractionsValuePerInteraction_ ; + private long combinedClicks_ ; /** *
-     * The value of all conversions from interactions divided by the total number
-     * of interactions.
+     * 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 double all_conversions_from_interactions_value_per_interaction = 197; - * @return Whether the allConversionsFromInteractionsValuePerInteraction field is set. + * optional int64 combined_clicks = 156; + * @return Whether the combinedClicks field is set. */ @java.lang.Override - public boolean hasAllConversionsFromInteractionsValuePerInteraction() { - return ((bitField0_ & 0x00020000) != 0); + public boolean hasCombinedClicks() { + return ((bitField1_ & 0x00001000) != 0); } /** *
-     * The value of all conversions from interactions divided by the total number
-     * of interactions.
+     * 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 double all_conversions_from_interactions_value_per_interaction = 197; - * @return The allConversionsFromInteractionsValuePerInteraction. + * optional int64 combined_clicks = 156; + * @return The combinedClicks. */ @java.lang.Override - public double getAllConversionsFromInteractionsValuePerInteraction() { - return allConversionsFromInteractionsValuePerInteraction_; + public long getCombinedClicks() { + return combinedClicks_; } /** *
-     * The value of all conversions from interactions divided by the total number
-     * of interactions.
+     * 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 double all_conversions_from_interactions_value_per_interaction = 197; - * @param value The allConversionsFromInteractionsValuePerInteraction to set. + * optional int64 combined_clicks = 156; + * @param value The combinedClicks to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromInteractionsValuePerInteraction(double value) { + public Builder setCombinedClicks(long value) { - allConversionsFromInteractionsValuePerInteraction_ = value; - bitField0_ |= 0x00020000; + combinedClicks_ = value; + bitField1_ |= 0x00001000; onChanged(); return this; } /** *
-     * The value of all conversions from interactions divided by the total number
-     * of interactions.
+     * 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 double all_conversions_from_interactions_value_per_interaction = 197; + * optional int64 combined_clicks = 156; * @return This builder for chaining. */ - public Builder clearAllConversionsFromInteractionsValuePerInteraction() { - bitField0_ = (bitField0_ & ~0x00020000); - allConversionsFromInteractionsValuePerInteraction_ = 0D; + public Builder clearCombinedClicks() { + bitField1_ = (bitField1_ & ~0x00001000); + combinedClicks_ = 0L; onChanged(); return this; } - private double allConversionsFromMenu_ ; + private double combinedClicksPerQuery_ ; /** *
-     * The number of times people clicked a link to view a business's menu after
-     * clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_menu = 198; - * @return Whether the allConversionsFromMenu field is set. + * optional double combined_clicks_per_query = 157; + * @return Whether the combinedClicksPerQuery field is set. */ @java.lang.Override - public boolean hasAllConversionsFromMenu() { - return ((bitField0_ & 0x00040000) != 0); + public boolean hasCombinedClicksPerQuery() { + return ((bitField1_ & 0x00002000) != 0); } /** *
-     * The number of times people clicked a link to view a business's menu after
-     * clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_menu = 198; - * @return The allConversionsFromMenu. + * optional double combined_clicks_per_query = 157; + * @return The combinedClicksPerQuery. */ @java.lang.Override - public double getAllConversionsFromMenu() { - return allConversionsFromMenu_; + public double getCombinedClicksPerQuery() { + return combinedClicksPerQuery_; } /** *
-     * The number of times people clicked a link to view a business's menu after
-     * clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_menu = 198; - * @param value The allConversionsFromMenu to set. + * optional double combined_clicks_per_query = 157; + * @param value The combinedClicksPerQuery to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromMenu(double value) { + public Builder setCombinedClicksPerQuery(double value) { - allConversionsFromMenu_ = value; - bitField0_ |= 0x00040000; + combinedClicksPerQuery_ = value; + bitField1_ |= 0x00002000; onChanged(); return this; } /** *
-     * The number of times people clicked a link to view a business's menu after
-     * clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_menu = 198; + * optional double combined_clicks_per_query = 157; * @return This builder for chaining. */ - public Builder clearAllConversionsFromMenu() { - bitField0_ = (bitField0_ & ~0x00040000); - allConversionsFromMenu_ = 0D; + public Builder clearCombinedClicksPerQuery() { + bitField1_ = (bitField1_ & ~0x00002000); + combinedClicksPerQuery_ = 0D; onChanged(); return this; } - private double allConversionsFromOrder_ ; + private long combinedQueries_ ; /** *
-     * The number of times people placed an order at a business after clicking an
-     * ad.
-     *
-     * This metric applies to feed items only.
+     * 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 double all_conversions_from_order = 199; - * @return Whether the allConversionsFromOrder field is set. + * optional int64 combined_queries = 158; + * @return Whether the combinedQueries field is set. */ @java.lang.Override - public boolean hasAllConversionsFromOrder() { - return ((bitField0_ & 0x00080000) != 0); + public boolean hasCombinedQueries() { + return ((bitField1_ & 0x00004000) != 0); } /** *
-     * The number of times people placed an order at a business after clicking an
-     * ad.
-     *
-     * This metric applies to feed items only.
+     * 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 double all_conversions_from_order = 199; - * @return The allConversionsFromOrder. + * optional int64 combined_queries = 158; + * @return The combinedQueries. */ @java.lang.Override - public double getAllConversionsFromOrder() { - return allConversionsFromOrder_; + public long getCombinedQueries() { + return combinedQueries_; } /** *
-     * The number of times people placed an order at a business after clicking an
-     * ad.
-     *
-     * This metric applies to feed items only.
+     * 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 double all_conversions_from_order = 199; - * @param value The allConversionsFromOrder to set. + * optional int64 combined_queries = 158; + * @param value The combinedQueries to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromOrder(double value) { + public Builder setCombinedQueries(long value) { - allConversionsFromOrder_ = value; - bitField0_ |= 0x00080000; + combinedQueries_ = value; + bitField1_ |= 0x00004000; onChanged(); return this; } /** *
-     * The number of times people placed an order at a business after clicking an
-     * ad.
-     *
-     * This metric applies to feed items only.
+     * 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 double all_conversions_from_order = 199; + * optional int64 combined_queries = 158; * @return This builder for chaining. */ - public Builder clearAllConversionsFromOrder() { - bitField0_ = (bitField0_ & ~0x00080000); - allConversionsFromOrder_ = 0D; + public Builder clearCombinedQueries() { + bitField1_ = (bitField1_ & ~0x00004000); + combinedQueries_ = 0L; onChanged(); return this; } - private double allConversionsFromOtherEngagement_ ; + private double contentBudgetLostImpressionShare_ ; /** *
-     * The number of other conversions (for example, posting a review or saving a
-     * location for a business) that occurred after people clicked an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_other_engagement = 200; - * @return Whether the allConversionsFromOtherEngagement field is set. + * optional double content_budget_lost_impression_share = 159; + * @return Whether the contentBudgetLostImpressionShare field is set. */ @java.lang.Override - public boolean hasAllConversionsFromOtherEngagement() { - return ((bitField0_ & 0x00100000) != 0); + public boolean hasContentBudgetLostImpressionShare() { + return ((bitField1_ & 0x00008000) != 0); } /** *
-     * The number of other conversions (for example, posting a review or saving a
-     * location for a business) that occurred after people clicked an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_other_engagement = 200; - * @return The allConversionsFromOtherEngagement. + * optional double content_budget_lost_impression_share = 159; + * @return The contentBudgetLostImpressionShare. */ @java.lang.Override - public double getAllConversionsFromOtherEngagement() { - return allConversionsFromOtherEngagement_; + public double getContentBudgetLostImpressionShare() { + return contentBudgetLostImpressionShare_; } /** *
-     * The number of other conversions (for example, posting a review or saving a
-     * location for a business) that occurred after people clicked an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_other_engagement = 200; - * @param value The allConversionsFromOtherEngagement to set. + * optional double content_budget_lost_impression_share = 159; + * @param value The contentBudgetLostImpressionShare to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromOtherEngagement(double value) { + public Builder setContentBudgetLostImpressionShare(double value) { - allConversionsFromOtherEngagement_ = value; - bitField0_ |= 0x00100000; + contentBudgetLostImpressionShare_ = value; + bitField1_ |= 0x00008000; onChanged(); return this; } /** *
-     * The number of other conversions (for example, posting a review or saving a
-     * location for a business) that occurred after people clicked an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_other_engagement = 200; + * optional double content_budget_lost_impression_share = 159; * @return This builder for chaining. */ - public Builder clearAllConversionsFromOtherEngagement() { - bitField0_ = (bitField0_ & ~0x00100000); - allConversionsFromOtherEngagement_ = 0D; + public Builder clearContentBudgetLostImpressionShare() { + bitField1_ = (bitField1_ & ~0x00008000); + contentBudgetLostImpressionShare_ = 0D; onChanged(); return this; } - private double allConversionsFromStoreVisit_ ; + private double contentImpressionShare_ ; /** *
-     * Estimated number of times people visited a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_store_visit = 201; - * @return Whether the allConversionsFromStoreVisit field is set. + * optional double content_impression_share = 160; + * @return Whether the contentImpressionShare field is set. */ @java.lang.Override - public boolean hasAllConversionsFromStoreVisit() { - return ((bitField0_ & 0x00200000) != 0); + public boolean hasContentImpressionShare() { + return ((bitField1_ & 0x00010000) != 0); } /** *
-     * Estimated number of times people visited a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_store_visit = 201; - * @return The allConversionsFromStoreVisit. + * optional double content_impression_share = 160; + * @return The contentImpressionShare. */ @java.lang.Override - public double getAllConversionsFromStoreVisit() { - return allConversionsFromStoreVisit_; + public double getContentImpressionShare() { + return contentImpressionShare_; } /** *
-     * Estimated number of times people visited a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_store_visit = 201; - * @param value The allConversionsFromStoreVisit to set. + * optional double content_impression_share = 160; + * @param value The contentImpressionShare to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromStoreVisit(double value) { + public Builder setContentImpressionShare(double value) { - allConversionsFromStoreVisit_ = value; - bitField0_ |= 0x00200000; + contentImpressionShare_ = value; + bitField1_ |= 0x00010000; onChanged(); return this; } /** *
-     * Estimated number of times people visited a business after clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 all_conversions_from_store_visit = 201; + * optional double content_impression_share = 160; * @return This builder for chaining. */ - public Builder clearAllConversionsFromStoreVisit() { - bitField0_ = (bitField0_ & ~0x00200000); - allConversionsFromStoreVisit_ = 0D; + public Builder clearContentImpressionShare() { + bitField1_ = (bitField1_ & ~0x00010000); + contentImpressionShare_ = 0D; onChanged(); return this; } - private double allConversionsFromStoreWebsite_ ; + private java.lang.Object conversionLastReceivedRequestDateTime_ = ""; /** *
-     * The number of times that people were taken to a business's URL after
-     * clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 double all_conversions_from_store_website = 202; - * @return Whether the allConversionsFromStoreWebsite field is set. + * optional string conversion_last_received_request_date_time = 161; + * @return Whether the conversionLastReceivedRequestDateTime field is set. */ - @java.lang.Override - public boolean hasAllConversionsFromStoreWebsite() { - return ((bitField0_ & 0x00400000) != 0); + public boolean hasConversionLastReceivedRequestDateTime() { + return ((bitField1_ & 0x00020000) != 0); } /** *
-     * The number of times that people were taken to a business's URL after
-     * clicking an ad.
-     *
-     * This metric applies to feed items only.
+     * 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 double all_conversions_from_store_website = 202; - * @return The allConversionsFromStoreWebsite. + * optional string conversion_last_received_request_date_time = 161; + * @return The conversionLastReceivedRequestDateTime. */ - @java.lang.Override - public double getAllConversionsFromStoreWebsite() { - return allConversionsFromStoreWebsite_; + 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 number of times that people were taken to a business's URL after
-     * clicking an ad.
+     * 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.
+     * 
* - * This metric applies to feed items only. + * 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 double all_conversions_from_store_website = 202; - * @param value The allConversionsFromStoreWebsite to set. + * optional string conversion_last_received_request_date_time = 161; + * @param value The conversionLastReceivedRequestDateTime to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromStoreWebsite(double value) { - - allConversionsFromStoreWebsite_ = value; - bitField0_ |= 0x00400000; + public Builder setConversionLastReceivedRequestDateTime( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + conversionLastReceivedRequestDateTime_ = value; + bitField1_ |= 0x00020000; onChanged(); return this; } /** *
-     * The number of times that people were taken to a business's URL after
-     * clicking an ad.
+     * 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.
+     * 
* - * This metric applies to feed items only. + * optional string conversion_last_received_request_date_time = 161; + * @return This builder for chaining. + */ + public Builder clearConversionLastReceivedRequestDateTime() { + conversionLastReceivedRequestDateTime_ = getDefaultInstance().getConversionLastReceivedRequestDateTime(); + bitField1_ = (bitField1_ & ~0x00020000); + 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 double all_conversions_from_store_website = 202; + * optional string conversion_last_received_request_date_time = 161; + * @param value The bytes for conversionLastReceivedRequestDateTime to set. * @return This builder for chaining. */ - public Builder clearAllConversionsFromStoreWebsite() { - bitField0_ = (bitField0_ & ~0x00400000); - allConversionsFromStoreWebsite_ = 0D; + public Builder setConversionLastReceivedRequestDateTimeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + conversionLastReceivedRequestDateTime_ = value; + bitField1_ |= 0x00020000; onChanged(); return this; } - private double auctionInsightSearchAbsoluteTopImpressionPercentage_ ; + private java.lang.Object conversionLastConversionDate_ = ""; /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed in the most prominent position on the
-     * search results page.
-     * This percentage is computed only over the auctions that you appeared in
-     * the page.
-     *
-     * This metric is not publicly available.
+     * The date of the most recent conversion for this conversion action. The date
+     * is in the customer's time zone.
      * 
* - * optional double auction_insight_search_absolute_top_impression_percentage = 258; - * @return Whether the auctionInsightSearchAbsoluteTopImpressionPercentage field is set. + * optional string conversion_last_conversion_date = 162; + * @return Whether the conversionLastConversionDate field is set. */ - @java.lang.Override - public boolean hasAuctionInsightSearchAbsoluteTopImpressionPercentage() { - return ((bitField0_ & 0x00800000) != 0); + public boolean hasConversionLastConversionDate() { + return ((bitField1_ & 0x00040000) != 0); } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed in the most prominent position on the
-     * search results page.
-     * This percentage is computed only over the auctions that you appeared in
-     * the page.
+     * The date of the most recent conversion for this conversion action. The date
+     * is in the customer's time zone.
+     * 
* - * This metric is not publicly available. + * 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 double auction_insight_search_absolute_top_impression_percentage = 258; - * @return The auctionInsightSearchAbsoluteTopImpressionPercentage. + * optional string conversion_last_conversion_date = 162; + * @return The bytes for conversionLastConversionDate. */ - @java.lang.Override - public double getAuctionInsightSearchAbsoluteTopImpressionPercentage() { - return auctionInsightSearchAbsoluteTopImpressionPercentage_; + 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; + } } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed in the most prominent position on the
-     * search results page.
-     * This percentage is computed only over the auctions that you appeared in
-     * the page.
+     * The date of the most recent conversion for this conversion action. The date
+     * is in the customer's time zone.
+     * 
* - * This metric is not publicly available. + * 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(); } + conversionLastConversionDate_ = value; + bitField1_ |= 0x00040000; + onChanged(); + return this; + } + /** + *
+     * The date of the most recent conversion for this conversion action. The date
+     * is in the customer's time zone.
      * 
* - * optional double auction_insight_search_absolute_top_impression_percentage = 258; - * @param value The auctionInsightSearchAbsoluteTopImpressionPercentage to set. + * optional string conversion_last_conversion_date = 162; * @return This builder for chaining. */ - public Builder setAuctionInsightSearchAbsoluteTopImpressionPercentage(double value) { - - auctionInsightSearchAbsoluteTopImpressionPercentage_ = value; - bitField0_ |= 0x00800000; + public Builder clearConversionLastConversionDate() { + conversionLastConversionDate_ = getDefaultInstance().getConversionLastConversionDate(); + bitField1_ = (bitField1_ & ~0x00040000); onChanged(); return this; } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed in the most prominent position on the
-     * search results page.
-     * This percentage is computed only over the auctions that you appeared in
-     * the page.
-     *
-     * This metric is not publicly available.
+     * The date of the most recent conversion for this conversion action. The date
+     * is in the customer's time zone.
      * 
* - * optional double auction_insight_search_absolute_top_impression_percentage = 258; + * optional string conversion_last_conversion_date = 162; + * @param value The bytes for conversionLastConversionDate to set. * @return This builder for chaining. */ - public Builder clearAuctionInsightSearchAbsoluteTopImpressionPercentage() { - bitField0_ = (bitField0_ & ~0x00800000); - auctionInsightSearchAbsoluteTopImpressionPercentage_ = 0D; + public Builder setConversionLastConversionDateBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + conversionLastConversionDate_ = value; + bitField1_ |= 0x00040000; onChanged(); return this; } - private double auctionInsightSearchImpressionShare_ ; + private double contentRankLostImpressionShare_ ; /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that another participant obtained, over the total
-     * number of impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_impression_share = 259; - * @return Whether the auctionInsightSearchImpressionShare field is set. + * optional double content_rank_lost_impression_share = 163; + * @return Whether the contentRankLostImpressionShare field is set. */ @java.lang.Override - public boolean hasAuctionInsightSearchImpressionShare() { - return ((bitField0_ & 0x01000000) != 0); + public boolean hasContentRankLostImpressionShare() { + return ((bitField1_ & 0x00080000) != 0); } /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that another participant obtained, over the total
-     * number of impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_impression_share = 259; - * @return The auctionInsightSearchImpressionShare. + * optional double content_rank_lost_impression_share = 163; + * @return The contentRankLostImpressionShare. */ @java.lang.Override - public double getAuctionInsightSearchImpressionShare() { - return auctionInsightSearchImpressionShare_; + public double getContentRankLostImpressionShare() { + return contentRankLostImpressionShare_; } /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that another participant obtained, over the total
-     * number of impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_impression_share = 259; - * @param value The auctionInsightSearchImpressionShare to set. + * optional double content_rank_lost_impression_share = 163; + * @param value The contentRankLostImpressionShare to set. * @return This builder for chaining. */ - public Builder setAuctionInsightSearchImpressionShare(double value) { + public Builder setContentRankLostImpressionShare(double value) { - auctionInsightSearchImpressionShare_ = value; - bitField0_ |= 0x01000000; + contentRankLostImpressionShare_ = value; + bitField1_ |= 0x00080000; onChanged(); return this; } /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that another participant obtained, over the total
-     * number of impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_impression_share = 259; + * optional double content_rank_lost_impression_share = 163; * @return This builder for chaining. */ - public Builder clearAuctionInsightSearchImpressionShare() { - bitField0_ = (bitField0_ & ~0x01000000); - auctionInsightSearchImpressionShare_ = 0D; + public Builder clearContentRankLostImpressionShare() { + bitField1_ = (bitField1_ & ~0x00080000); + contentRankLostImpressionShare_ = 0D; onChanged(); return this; } - private double auctionInsightSearchOutrankingShare_ ; + private double conversionsFromInteractionsRate_ ; /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that your ads outranked (showed above)
-     * another participant in the auction, compared to the total number of
-     * impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_outranking_share = 260; - * @return Whether the auctionInsightSearchOutrankingShare field is set. + * optional double conversions_from_interactions_rate = 164; + * @return Whether the conversionsFromInteractionsRate field is set. */ @java.lang.Override - public boolean hasAuctionInsightSearchOutrankingShare() { - return ((bitField0_ & 0x02000000) != 0); + public boolean hasConversionsFromInteractionsRate() { + return ((bitField1_ & 0x00100000) != 0); } /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that your ads outranked (showed above)
-     * another participant in the auction, compared to the total number of
-     * impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_outranking_share = 260; - * @return The auctionInsightSearchOutrankingShare. + * optional double conversions_from_interactions_rate = 164; + * @return The conversionsFromInteractionsRate. */ @java.lang.Override - public double getAuctionInsightSearchOutrankingShare() { - return auctionInsightSearchOutrankingShare_; + public double getConversionsFromInteractionsRate() { + return conversionsFromInteractionsRate_; } /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that your ads outranked (showed above)
-     * another participant in the auction, compared to the total number of
-     * impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_outranking_share = 260; - * @param value The auctionInsightSearchOutrankingShare to set. + * optional double conversions_from_interactions_rate = 164; + * @param value The conversionsFromInteractionsRate to set. * @return This builder for chaining. */ - public Builder setAuctionInsightSearchOutrankingShare(double value) { + public Builder setConversionsFromInteractionsRate(double value) { - auctionInsightSearchOutrankingShare_ = value; - bitField0_ |= 0x02000000; + conversionsFromInteractionsRate_ = value; + bitField1_ |= 0x00100000; onChanged(); return this; } /** *
-     * This metric is part of the Auction Insights report, and tells the
-     * percentage of impressions that your ads outranked (showed above)
-     * another participant in the auction, compared to the total number of
-     * impressions that your ads were eligible for.
-     * Any value below 0.1 is reported as 0.0999.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_outranking_share = 260; + * optional double conversions_from_interactions_rate = 164; * @return This builder for chaining. */ - public Builder clearAuctionInsightSearchOutrankingShare() { - bitField0_ = (bitField0_ & ~0x02000000); - auctionInsightSearchOutrankingShare_ = 0D; + public Builder clearConversionsFromInteractionsRate() { + bitField1_ = (bitField1_ & ~0x00100000); + conversionsFromInteractionsRate_ = 0D; onChanged(); return this; } - private double auctionInsightSearchOverlapRate_ ; + private double conversionsValue_ ; /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad received an impression when your ad also received
-     * an impression.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_overlap_rate = 261; - * @return Whether the auctionInsightSearchOverlapRate field is set. + * optional double conversions_value = 165; + * @return Whether the conversionsValue field is set. */ @java.lang.Override - public boolean hasAuctionInsightSearchOverlapRate() { - return ((bitField0_ & 0x04000000) != 0); + public boolean hasConversionsValue() { + return ((bitField1_ & 0x00200000) != 0); } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad received an impression when your ad also received
-     * an impression.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_overlap_rate = 261; - * @return The auctionInsightSearchOverlapRate. + * optional double conversions_value = 165; + * @return The conversionsValue. */ @java.lang.Override - public double getAuctionInsightSearchOverlapRate() { - return auctionInsightSearchOverlapRate_; + public double getConversionsValue() { + return conversionsValue_; } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad received an impression when your ad also received
-     * an impression.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_overlap_rate = 261; - * @param value The auctionInsightSearchOverlapRate to set. + * optional double conversions_value = 165; + * @param value The conversionsValue to set. * @return This builder for chaining. */ - public Builder setAuctionInsightSearchOverlapRate(double value) { + public Builder setConversionsValue(double value) { - auctionInsightSearchOverlapRate_ = value; - bitField0_ |= 0x04000000; + conversionsValue_ = value; + bitField1_ |= 0x00200000; onChanged(); return this; } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad received an impression when your ad also received
-     * an impression.
-     *
-     * This metric is not publicly available.
+     * 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 auction_insight_search_overlap_rate = 261; + * optional double conversions_value = 165; * @return This builder for chaining. */ - public Builder clearAuctionInsightSearchOverlapRate() { - bitField0_ = (bitField0_ & ~0x04000000); - auctionInsightSearchOverlapRate_ = 0D; + public Builder clearConversionsValue() { + bitField1_ = (bitField1_ & ~0x00200000); + conversionsValue_ = 0D; onChanged(); return this; } - private double auctionInsightSearchPositionAboveRate_ ; + private double conversionsValueByConversionDate_ ; /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad was shown in a higher position than yours, when
-     * both of your ads were shown at the same page.
-     *
-     * This metric is not publicly available.
+     * 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.
      * 
* - * optional double auction_insight_search_position_above_rate = 262; - * @return Whether the auctionInsightSearchPositionAboveRate field is set. + * optional double conversions_value_by_conversion_date = 242; + * @return Whether the conversionsValueByConversionDate field is set. */ @java.lang.Override - public boolean hasAuctionInsightSearchPositionAboveRate() { - return ((bitField0_ & 0x08000000) != 0); + public boolean hasConversionsValueByConversionDate() { + return ((bitField1_ & 0x00400000) != 0); } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad was shown in a higher position than yours, when
-     * both of your ads were shown at the same page.
-     *
-     * This metric is not publicly available.
+     * 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.
      * 
* - * optional double auction_insight_search_position_above_rate = 262; - * @return The auctionInsightSearchPositionAboveRate. + * optional double conversions_value_by_conversion_date = 242; + * @return The conversionsValueByConversionDate. */ @java.lang.Override - public double getAuctionInsightSearchPositionAboveRate() { - return auctionInsightSearchPositionAboveRate_; + public double getConversionsValueByConversionDate() { + return conversionsValueByConversionDate_; } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad was shown in a higher position than yours, when
-     * both of your ads were shown at the same page.
-     *
-     * This metric is not publicly available.
+     * 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.
      * 
* - * optional double auction_insight_search_position_above_rate = 262; - * @param value The auctionInsightSearchPositionAboveRate to set. + * optional double conversions_value_by_conversion_date = 242; + * @param value The conversionsValueByConversionDate to set. * @return This builder for chaining. */ - public Builder setAuctionInsightSearchPositionAboveRate(double value) { + public Builder setConversionsValueByConversionDate(double value) { - auctionInsightSearchPositionAboveRate_ = value; - bitField0_ |= 0x08000000; + conversionsValueByConversionDate_ = value; + bitField1_ |= 0x00400000; onChanged(); return this; } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * another participant's ad was shown in a higher position than yours, when
-     * both of your ads were shown at the same page.
-     *
-     * This metric is not publicly available.
+     * 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.
      * 
* - * optional double auction_insight_search_position_above_rate = 262; + * optional double conversions_value_by_conversion_date = 242; * @return This builder for chaining. */ - public Builder clearAuctionInsightSearchPositionAboveRate() { - bitField0_ = (bitField0_ & ~0x08000000); - auctionInsightSearchPositionAboveRate_ = 0D; + public Builder clearConversionsValueByConversionDate() { + bitField1_ = (bitField1_ & ~0x00400000); + conversionsValueByConversionDate_ = 0D; onChanged(); return this; } - private double auctionInsightSearchTopImpressionPercentage_ ; + private double newCustomerLifetimeValue_ ; /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed adjacent to the top organic search
-     * results. This percentage is computed only over the auctions that you
-     * appeared in the page.
-     *
-     * This metric is not publicly available.
+     * New customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for
+     * biddable conversions. If your campaign has adopted the customer
+     * acquisition goal and selected "bid higher for new customers", these values
+     * will be included in "conversions_value" for optimization. See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
      * 
* - * optional double auction_insight_search_top_impression_percentage = 263; - * @return Whether the auctionInsightSearchTopImpressionPercentage field is set. + * optional double new_customer_lifetime_value = 293; + * @return Whether the newCustomerLifetimeValue field is set. */ @java.lang.Override - public boolean hasAuctionInsightSearchTopImpressionPercentage() { - return ((bitField0_ & 0x10000000) != 0); + public boolean hasNewCustomerLifetimeValue() { + return ((bitField1_ & 0x00800000) != 0); } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed adjacent to the top organic search
-     * results. This percentage is computed only over the auctions that you
-     * appeared in the page.
-     *
-     * This metric is not publicly available.
+     * New customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for
+     * biddable conversions. If your campaign has adopted the customer
+     * acquisition goal and selected "bid higher for new customers", these values
+     * will be included in "conversions_value" for optimization. See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
      * 
* - * optional double auction_insight_search_top_impression_percentage = 263; - * @return The auctionInsightSearchTopImpressionPercentage. + * optional double new_customer_lifetime_value = 293; + * @return The newCustomerLifetimeValue. */ @java.lang.Override - public double getAuctionInsightSearchTopImpressionPercentage() { - return auctionInsightSearchTopImpressionPercentage_; + public double getNewCustomerLifetimeValue() { + return newCustomerLifetimeValue_; } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed adjacent to the top organic search
-     * results. This percentage is computed only over the auctions that you
-     * appeared in the page.
-     *
-     * This metric is not publicly available.
+     * New customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for
+     * biddable conversions. If your campaign has adopted the customer
+     * acquisition goal and selected "bid higher for new customers", these values
+     * will be included in "conversions_value" for optimization. See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
      * 
* - * optional double auction_insight_search_top_impression_percentage = 263; - * @param value The auctionInsightSearchTopImpressionPercentage to set. + * optional double new_customer_lifetime_value = 293; + * @param value The newCustomerLifetimeValue to set. * @return This builder for chaining. */ - public Builder setAuctionInsightSearchTopImpressionPercentage(double value) { + public Builder setNewCustomerLifetimeValue(double value) { - auctionInsightSearchTopImpressionPercentage_ = value; - bitField0_ |= 0x10000000; + newCustomerLifetimeValue_ = value; + bitField1_ |= 0x00800000; onChanged(); return this; } /** *
-     * This metric is part of the Auction Insights report, and tells how often
-     * the ads of another participant showed adjacent to the top organic search
-     * results. This percentage is computed only over the auctions that you
-     * appeared in the page.
-     *
-     * This metric is not publicly available.
+     * New customers' lifetime conversion value. If you have set up
+     * customer acquisition goal at either account level or campaign level, this
+     * will include the additional conversion value from new customers for
+     * biddable conversions. If your campaign has adopted the customer
+     * acquisition goal and selected "bid higher for new customers", these values
+     * will be included in "conversions_value" for optimization. See
+     * https://support.google.com/google-ads/answer/12080169 for more details.
      * 
* - * optional double auction_insight_search_top_impression_percentage = 263; + * optional double new_customer_lifetime_value = 293; * @return This builder for chaining. */ - public Builder clearAuctionInsightSearchTopImpressionPercentage() { - bitField0_ = (bitField0_ & ~0x10000000); - auctionInsightSearchTopImpressionPercentage_ = 0D; + public Builder clearNewCustomerLifetimeValue() { + bitField1_ = (bitField1_ & ~0x00800000); + newCustomerLifetimeValue_ = 0D; onChanged(); return this; } - private double averageCost_ ; + private double conversionsValuePerCost_ ; /** *
-     * The average amount you pay per interaction. This amount is the total cost
-     * of your ads divided by the total number of interactions.
+     * 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 average_cost = 203; - * @return Whether the averageCost field is set. + * optional double conversions_value_per_cost = 166; + * @return Whether the conversionsValuePerCost field is set. */ @java.lang.Override - public boolean hasAverageCost() { - return ((bitField0_ & 0x20000000) != 0); + public boolean hasConversionsValuePerCost() { + return ((bitField1_ & 0x01000000) != 0); } /** *
-     * The average amount you pay per interaction. This amount is the total cost
-     * of your ads divided by the total number of interactions.
+     * 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 average_cost = 203; - * @return The averageCost. + * optional double conversions_value_per_cost = 166; + * @return The conversionsValuePerCost. */ @java.lang.Override - public double getAverageCost() { - return averageCost_; + public double getConversionsValuePerCost() { + return conversionsValuePerCost_; } /** *
-     * The average amount you pay per interaction. This amount is the total cost
-     * of your ads divided by the total number of interactions.
+     * 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 average_cost = 203; - * @param value The averageCost to set. + * optional double conversions_value_per_cost = 166; + * @param value The conversionsValuePerCost to set. * @return This builder for chaining. */ - public Builder setAverageCost(double value) { + public Builder setConversionsValuePerCost(double value) { - averageCost_ = value; - bitField0_ |= 0x20000000; + conversionsValuePerCost_ = value; + bitField1_ |= 0x01000000; 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.
+     * 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 average_cost = 203; + * optional double conversions_value_per_cost = 166; * @return This builder for chaining. */ - public Builder clearAverageCost() { - bitField0_ = (bitField0_ & ~0x20000000); - averageCost_ = 0D; + public Builder clearConversionsValuePerCost() { + bitField1_ = (bitField1_ & ~0x01000000); + conversionsValuePerCost_ = 0D; onChanged(); return this; } - private double averageCpc_ ; + private double conversionsFromInteractionsValuePerInteraction_ ; /** *
-     * The total cost of all clicks divided by the total number of clicks
-     * received.
+     * 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 average_cpc = 204; - * @return Whether the averageCpc field is set. + * optional double conversions_from_interactions_value_per_interaction = 167; + * @return Whether the conversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override - public boolean hasAverageCpc() { - return ((bitField0_ & 0x40000000) != 0); + public boolean hasConversionsFromInteractionsValuePerInteraction() { + return ((bitField1_ & 0x02000000) != 0); } /** *
-     * The total cost of all clicks divided by the total number of clicks
-     * received.
+     * 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 average_cpc = 204; - * @return The averageCpc. + * optional double conversions_from_interactions_value_per_interaction = 167; + * @return The conversionsFromInteractionsValuePerInteraction. */ @java.lang.Override - public double getAverageCpc() { - return averageCpc_; + public double getConversionsFromInteractionsValuePerInteraction() { + return conversionsFromInteractionsValuePerInteraction_; } /** *
-     * The total cost of all clicks divided by the total number of clicks
-     * received.
+     * 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 average_cpc = 204; - * @param value The averageCpc to set. + * optional double conversions_from_interactions_value_per_interaction = 167; + * @param value The conversionsFromInteractionsValuePerInteraction to set. * @return This builder for chaining. */ - public Builder setAverageCpc(double value) { + public Builder setConversionsFromInteractionsValuePerInteraction(double value) { - averageCpc_ = value; - bitField0_ |= 0x40000000; + conversionsFromInteractionsValuePerInteraction_ = value; + bitField1_ |= 0x02000000; onChanged(); return this; } /** *
-     * The total cost of all clicks divided by the total number of clicks
-     * received.
+     * 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 average_cpc = 204; + * optional double conversions_from_interactions_value_per_interaction = 167; * @return This builder for chaining. */ - public Builder clearAverageCpc() { - bitField0_ = (bitField0_ & ~0x40000000); - averageCpc_ = 0D; + public Builder clearConversionsFromInteractionsValuePerInteraction() { + bitField1_ = (bitField1_ & ~0x02000000); + conversionsFromInteractionsValuePerInteraction_ = 0D; onChanged(); return this; } - private double averageCpe_ ; + private double conversions_ ; /** *
-     * 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.
+     * 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 average_cpe = 205; - * @return Whether the averageCpe field is set. + * optional double conversions = 168; + * @return Whether the conversions field is set. */ @java.lang.Override - public boolean hasAverageCpe() { - return ((bitField0_ & 0x80000000) != 0); + public boolean hasConversions() { + return ((bitField1_ & 0x04000000) != 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.
+     * 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 average_cpe = 205; - * @return The averageCpe. + * optional double conversions = 168; + * @return The conversions. */ @java.lang.Override - public double getAverageCpe() { - return averageCpe_; + public double getConversions() { + return conversions_; } /** *
-     * 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.
+     * 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 average_cpe = 205; - * @param value The averageCpe to set. + * optional double conversions = 168; + * @param value The conversions to set. * @return This builder for chaining. */ - public Builder setAverageCpe(double value) { + public Builder setConversions(double value) { - averageCpe_ = value; - bitField0_ |= 0x80000000; + conversions_ = value; + bitField1_ |= 0x04000000; 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.
+     * 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 average_cpe = 205; + * optional double conversions = 168; * @return This builder for chaining. */ - public Builder clearAverageCpe() { - bitField0_ = (bitField0_ & ~0x80000000); - averageCpe_ = 0D; + public Builder clearConversions() { + bitField1_ = (bitField1_ & ~0x04000000); + conversions_ = 0D; onChanged(); return this; } - private double averageCpm_ ; + private double conversionsByConversionDate_ ; /** *
-     * Average cost-per-thousand impressions (CPM).
+     * 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 average_cpm = 206; - * @return Whether the averageCpm field is set. + * optional double conversions_by_conversion_date = 243; + * @return Whether the conversionsByConversionDate field is set. */ @java.lang.Override - public boolean hasAverageCpm() { - return ((bitField1_ & 0x00000001) != 0); + public boolean hasConversionsByConversionDate() { + return ((bitField1_ & 0x08000000) != 0); } /** *
-     * Average cost-per-thousand impressions (CPM).
+     * 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 average_cpm = 206; - * @return The averageCpm. + * optional double conversions_by_conversion_date = 243; + * @return The conversionsByConversionDate. */ @java.lang.Override - public double getAverageCpm() { - return averageCpm_; + public double getConversionsByConversionDate() { + return conversionsByConversionDate_; } /** *
-     * Average cost-per-thousand impressions (CPM).
+     * 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 average_cpm = 206; - * @param value The averageCpm to set. + * optional double conversions_by_conversion_date = 243; + * @param value The conversionsByConversionDate to set. * @return This builder for chaining. */ - public Builder setAverageCpm(double value) { + public Builder setConversionsByConversionDate(double value) { - averageCpm_ = value; - bitField1_ |= 0x00000001; + conversionsByConversionDate_ = value; + bitField1_ |= 0x08000000; onChanged(); return this; } /** *
-     * Average cost-per-thousand impressions (CPM).
+     * 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 average_cpm = 206; + * optional double conversions_by_conversion_date = 243; * @return This builder for chaining. */ - public Builder clearAverageCpm() { - bitField1_ = (bitField1_ & ~0x00000001); - averageCpm_ = 0D; + public Builder clearConversionsByConversionDate() { + bitField1_ = (bitField1_ & ~0x08000000); + conversionsByConversionDate_ = 0D; onChanged(); return this; } - private double trueviewAverageCpv_ ; + private long costMicros_ ; /** *
-     * 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 TrueView views.
+     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
+     * (CPM) costs during this period.
      * 
* - * optional double trueview_average_cpv = 405; - * @return Whether the trueviewAverageCpv field is set. + * optional int64 cost_micros = 169; + * @return Whether the costMicros field is set. */ @java.lang.Override - public boolean hasTrueviewAverageCpv() { - return ((bitField1_ & 0x00000002) != 0); + public boolean hasCostMicros() { + return ((bitField1_ & 0x10000000) != 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 TrueView views.
+     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
+     * (CPM) costs during this period.
      * 
* - * optional double trueview_average_cpv = 405; - * @return The trueviewAverageCpv. + * optional int64 cost_micros = 169; + * @return The costMicros. */ @java.lang.Override - public double getTrueviewAverageCpv() { - return trueviewAverageCpv_; + public long getCostMicros() { + return costMicros_; } /** *
-     * 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 TrueView views.
+     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
+     * (CPM) costs during this period.
      * 
* - * optional double trueview_average_cpv = 405; - * @param value The trueviewAverageCpv to set. + * optional int64 cost_micros = 169; + * @param value The costMicros to set. * @return This builder for chaining. */ - public Builder setTrueviewAverageCpv(double value) { + public Builder setCostMicros(long value) { - trueviewAverageCpv_ = value; - bitField1_ |= 0x00000002; + costMicros_ = value; + bitField1_ |= 0x10000000; 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 TrueView views.
+     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
+     * (CPM) costs during this period.
      * 
* - * optional double trueview_average_cpv = 405; + * optional int64 cost_micros = 169; * @return This builder for chaining. */ - public Builder clearTrueviewAverageCpv() { - bitField1_ = (bitField1_ & ~0x00000002); - trueviewAverageCpv_ = 0D; + public Builder clearCostMicros() { + bitField1_ = (bitField1_ & ~0x10000000); + costMicros_ = 0L; onChanged(); return this; } - private double averagePageViews_ ; + private double costPerAllConversions_ ; /** *
-     * Average number of pages viewed per session.
+     * The cost of ad interactions divided by all conversions.
      * 
* - * optional double average_page_views = 208; - * @return Whether the averagePageViews field is set. + * optional double cost_per_all_conversions = 170; + * @return Whether the costPerAllConversions field is set. */ @java.lang.Override - public boolean hasAveragePageViews() { - return ((bitField1_ & 0x00000004) != 0); + public boolean hasCostPerAllConversions() { + return ((bitField1_ & 0x20000000) != 0); } /** *
-     * Average number of pages viewed per session.
+     * The cost of ad interactions divided by all conversions.
      * 
* - * optional double average_page_views = 208; - * @return The averagePageViews. + * optional double cost_per_all_conversions = 170; + * @return The costPerAllConversions. */ @java.lang.Override - public double getAveragePageViews() { - return averagePageViews_; + public double getCostPerAllConversions() { + return costPerAllConversions_; } /** *
-     * Average number of pages viewed per session.
+     * The cost of ad interactions divided by all conversions.
      * 
* - * optional double average_page_views = 208; - * @param value The averagePageViews to set. + * optional double cost_per_all_conversions = 170; + * @param value The costPerAllConversions to set. * @return This builder for chaining. */ - public Builder setAveragePageViews(double value) { + public Builder setCostPerAllConversions(double value) { - averagePageViews_ = value; - bitField1_ |= 0x00000004; + costPerAllConversions_ = value; + bitField1_ |= 0x20000000; onChanged(); return this; } /** *
-     * Average number of pages viewed per session.
+     * The cost of ad interactions divided by all conversions.
      * 
* - * optional double average_page_views = 208; + * optional double cost_per_all_conversions = 170; * @return This builder for chaining. */ - public Builder clearAveragePageViews() { - bitField1_ = (bitField1_ & ~0x00000004); - averagePageViews_ = 0D; + public Builder clearCostPerAllConversions() { + bitField1_ = (bitField1_ & ~0x20000000); + costPerAllConversions_ = 0D; onChanged(); return this; } - private double averageTimeOnSite_ ; + private double costPerConversion_ ; /** *
-     * Total duration of all sessions (in seconds) / number of sessions. Imported
-     * from Google Analytics.
+     * 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 average_time_on_site = 209; - * @return Whether the averageTimeOnSite field is set. + * optional double cost_per_conversion = 171; + * @return Whether the costPerConversion field is set. */ @java.lang.Override - public boolean hasAverageTimeOnSite() { - return ((bitField1_ & 0x00000008) != 0); + public boolean hasCostPerConversion() { + return ((bitField1_ & 0x40000000) != 0); } /** *
-     * Total duration of all sessions (in seconds) / number of sessions. Imported
-     * from Google Analytics.
+     * 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 average_time_on_site = 209; - * @return The averageTimeOnSite. + * optional double cost_per_conversion = 171; + * @return The costPerConversion. */ @java.lang.Override - public double getAverageTimeOnSite() { - return averageTimeOnSite_; + public double getCostPerConversion() { + return costPerConversion_; } /** *
-     * Total duration of all sessions (in seconds) / number of sessions. Imported
-     * from Google Analytics.
+     * 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 average_time_on_site = 209; - * @param value The averageTimeOnSite to set. + * optional double cost_per_conversion = 171; + * @param value The costPerConversion to set. * @return This builder for chaining. */ - public Builder setAverageTimeOnSite(double value) { + public Builder setCostPerConversion(double value) { - averageTimeOnSite_ = value; - bitField1_ |= 0x00000008; + costPerConversion_ = value; + bitField1_ |= 0x40000000; onChanged(); return this; } /** *
-     * Total duration of all sessions (in seconds) / number of sessions. Imported
-     * from Google Analytics.
+     * 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 average_time_on_site = 209; + * optional double cost_per_conversion = 171; * @return This builder for chaining. */ - public Builder clearAverageTimeOnSite() { - bitField1_ = (bitField1_ & ~0x00000008); - averageTimeOnSite_ = 0D; + public Builder clearCostPerConversion() { + bitField1_ = (bitField1_ & ~0x40000000); + costPerConversion_ = 0D; onChanged(); return this; } - private double benchmarkAverageMaxCpc_ ; + private double costPerCurrentModelAttributedConversion_ ; /** *
-     * An indication of how other advertisers are bidding on similar products.
+     * 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 benchmark_average_max_cpc = 210; - * @return Whether the benchmarkAverageMaxCpc field is set. + * optional double cost_per_current_model_attributed_conversion = 172; + * @return Whether the costPerCurrentModelAttributedConversion field is set. */ @java.lang.Override - public boolean hasBenchmarkAverageMaxCpc() { - return ((bitField1_ & 0x00000010) != 0); + public boolean hasCostPerCurrentModelAttributedConversion() { + return ((bitField1_ & 0x80000000) != 0); } /** *
-     * An indication of how other advertisers are bidding on similar products.
+     * 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 benchmark_average_max_cpc = 210; - * @return The benchmarkAverageMaxCpc. + * optional double cost_per_current_model_attributed_conversion = 172; + * @return The costPerCurrentModelAttributedConversion. */ @java.lang.Override - public double getBenchmarkAverageMaxCpc() { - return benchmarkAverageMaxCpc_; + public double getCostPerCurrentModelAttributedConversion() { + return costPerCurrentModelAttributedConversion_; } /** *
-     * An indication of how other advertisers are bidding on similar products.
+     * 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 benchmark_average_max_cpc = 210; - * @param value The benchmarkAverageMaxCpc to set. + * optional double cost_per_current_model_attributed_conversion = 172; + * @param value The costPerCurrentModelAttributedConversion to set. * @return This builder for chaining. */ - public Builder setBenchmarkAverageMaxCpc(double value) { + public Builder setCostPerCurrentModelAttributedConversion(double value) { - benchmarkAverageMaxCpc_ = value; - bitField1_ |= 0x00000010; + costPerCurrentModelAttributedConversion_ = value; + bitField1_ |= 0x80000000; onChanged(); return this; } /** *
-     * An indication of how other advertisers are bidding on similar products.
+     * 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 benchmark_average_max_cpc = 210; + * optional double cost_per_current_model_attributed_conversion = 172; * @return This builder for chaining. */ - public Builder clearBenchmarkAverageMaxCpc() { - bitField1_ = (bitField1_ & ~0x00000010); - benchmarkAverageMaxCpc_ = 0D; + public Builder clearCostPerCurrentModelAttributedConversion() { + bitField1_ = (bitField1_ & ~0x80000000); + costPerCurrentModelAttributedConversion_ = 0D; onChanged(); return this; } - private double biddableAppInstallConversions_ ; + private double crossDeviceConversions_ ; /** *
-     * Number of app installs.
+     * 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 biddable_app_install_conversions = 254; - * @return Whether the biddableAppInstallConversions field is set. + * optional double cross_device_conversions = 173; + * @return Whether the crossDeviceConversions field is set. */ @java.lang.Override - public boolean hasBiddableAppInstallConversions() { - return ((bitField1_ & 0x00000020) != 0); + public boolean hasCrossDeviceConversions() { + return ((bitField2_ & 0x00000001) != 0); } /** *
-     * Number of app installs.
+     * 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 biddable_app_install_conversions = 254; - * @return The biddableAppInstallConversions. + * optional double cross_device_conversions = 173; + * @return The crossDeviceConversions. */ @java.lang.Override - public double getBiddableAppInstallConversions() { - return biddableAppInstallConversions_; + public double getCrossDeviceConversions() { + return crossDeviceConversions_; } /** *
-     * Number of app installs.
+     * 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 biddable_app_install_conversions = 254; - * @param value The biddableAppInstallConversions to set. + * optional double cross_device_conversions = 173; + * @param value The crossDeviceConversions to set. * @return This builder for chaining. */ - public Builder setBiddableAppInstallConversions(double value) { + public Builder setCrossDeviceConversions(double value) { - biddableAppInstallConversions_ = value; - bitField1_ |= 0x00000020; + crossDeviceConversions_ = value; + bitField2_ |= 0x00000001; onChanged(); return this; } /** *
-     * Number of app installs.
+     * 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 biddable_app_install_conversions = 254; + * optional double cross_device_conversions = 173; * @return This builder for chaining. */ - public Builder clearBiddableAppInstallConversions() { - bitField1_ = (bitField1_ & ~0x00000020); - biddableAppInstallConversions_ = 0D; + public Builder clearCrossDeviceConversions() { + bitField2_ = (bitField2_ & ~0x00000001); + crossDeviceConversions_ = 0D; onChanged(); return this; } - private double biddableAppPostInstallConversions_ ; + private double crossDeviceConversionsByConversionDate_ ; /** *
-     * Number of in-app actions.
+     * The number of cross-device conversions by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double biddable_app_post_install_conversions = 255; - * @return Whether the biddableAppPostInstallConversions field is set. + * optional double cross_device_conversions_by_conversion_date = 372; + * @return Whether the crossDeviceConversionsByConversionDate field is set. */ @java.lang.Override - public boolean hasBiddableAppPostInstallConversions() { - return ((bitField1_ & 0x00000040) != 0); + public boolean hasCrossDeviceConversionsByConversionDate() { + return ((bitField2_ & 0x00000002) != 0); } /** *
-     * Number of in-app actions.
+     * The number of cross-device conversions by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double biddable_app_post_install_conversions = 255; - * @return The biddableAppPostInstallConversions. + * optional double cross_device_conversions_by_conversion_date = 372; + * @return The crossDeviceConversionsByConversionDate. */ @java.lang.Override - public double getBiddableAppPostInstallConversions() { - return biddableAppPostInstallConversions_; + public double getCrossDeviceConversionsByConversionDate() { + return crossDeviceConversionsByConversionDate_; } /** *
-     * Number of in-app actions.
+     * The number of cross-device conversions by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double biddable_app_post_install_conversions = 255; - * @param value The biddableAppPostInstallConversions to set. + * optional double cross_device_conversions_by_conversion_date = 372; + * @param value The crossDeviceConversionsByConversionDate to set. * @return This builder for chaining. */ - public Builder setBiddableAppPostInstallConversions(double value) { + public Builder setCrossDeviceConversionsByConversionDate(double value) { - biddableAppPostInstallConversions_ = value; - bitField1_ |= 0x00000040; + crossDeviceConversionsByConversionDate_ = value; + bitField2_ |= 0x00000002; onChanged(); return this; } /** *
-     * Number of in-app actions.
+     * The number of cross-device conversions by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double biddable_app_post_install_conversions = 255; + * optional double cross_device_conversions_by_conversion_date = 372; * @return This builder for chaining. */ - public Builder clearBiddableAppPostInstallConversions() { - bitField1_ = (bitField1_ & ~0x00000040); - biddableAppPostInstallConversions_ = 0D; + public Builder clearCrossDeviceConversionsByConversionDate() { + bitField2_ = (bitField2_ & ~0x00000002); + crossDeviceConversionsByConversionDate_ = 0D; onChanged(); return this; } - private double biddableCohortAppPostInstallConversions_ ; + private double crossDeviceConversionsValue_ ; /** *
-     * Participated in-app actions. The number of in app actions that come
-     * directly or indirectly from the campaign.
+     * The sum of the value of cross-device conversions.
      * 
* - * optional double biddable_cohort_app_post_install_conversions = 378; - * @return Whether the biddableCohortAppPostInstallConversions field is set. + * optional double cross_device_conversions_value = 253; + * @return Whether the crossDeviceConversionsValue field is set. */ @java.lang.Override - public boolean hasBiddableCohortAppPostInstallConversions() { - return ((bitField1_ & 0x00000080) != 0); + public boolean hasCrossDeviceConversionsValue() { + return ((bitField2_ & 0x00000004) != 0); } /** *
-     * Participated in-app actions. The number of in app actions that come
-     * directly or indirectly from the campaign.
+     * The sum of the value of cross-device conversions.
      * 
- * - * optional double biddable_cohort_app_post_install_conversions = 378; - * @return The biddableCohortAppPostInstallConversions. + * + * optional double cross_device_conversions_value = 253; + * @return The crossDeviceConversionsValue. */ @java.lang.Override - public double getBiddableCohortAppPostInstallConversions() { - return biddableCohortAppPostInstallConversions_; + public double getCrossDeviceConversionsValue() { + return crossDeviceConversionsValue_; } /** *
-     * Participated in-app actions. The number of in app actions that come
-     * directly or indirectly from the campaign.
+     * The sum of the value of cross-device conversions.
      * 
* - * optional double biddable_cohort_app_post_install_conversions = 378; - * @param value The biddableCohortAppPostInstallConversions to set. + * optional double cross_device_conversions_value = 253; + * @param value The crossDeviceConversionsValue to set. * @return This builder for chaining. */ - public Builder setBiddableCohortAppPostInstallConversions(double value) { + public Builder setCrossDeviceConversionsValue(double value) { - biddableCohortAppPostInstallConversions_ = value; - bitField1_ |= 0x00000080; + crossDeviceConversionsValue_ = value; + bitField2_ |= 0x00000004; onChanged(); return this; } /** *
-     * Participated in-app actions. The number of in app actions that come
-     * directly or indirectly from the campaign.
+     * The sum of the value of cross-device conversions.
      * 
* - * optional double biddable_cohort_app_post_install_conversions = 378; + * optional double cross_device_conversions_value = 253; * @return This builder for chaining. */ - public Builder clearBiddableCohortAppPostInstallConversions() { - bitField1_ = (bitField1_ & ~0x00000080); - biddableCohortAppPostInstallConversions_ = 0D; + public Builder clearCrossDeviceConversionsValue() { + bitField2_ = (bitField2_ & ~0x00000004); + crossDeviceConversionsValue_ = 0D; onChanged(); return this; } - private double benchmarkCtr_ ; + private long crossDeviceConversionsValueMicros_ ; /** *
-     * 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.
+     * The sum of the value of cross-device conversions, in micros.
      * 
* - * optional double benchmark_ctr = 211; - * @return Whether the benchmarkCtr field is set. + * optional int64 cross_device_conversions_value_micros = 312; + * @return Whether the crossDeviceConversionsValueMicros field is set. */ @java.lang.Override - public boolean hasBenchmarkCtr() { - return ((bitField1_ & 0x00000100) != 0); + public boolean hasCrossDeviceConversionsValueMicros() { + return ((bitField2_ & 0x00000008) != 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.
+     * The sum of the value of cross-device conversions, in micros.
      * 
* - * optional double benchmark_ctr = 211; - * @return The benchmarkCtr. + * optional int64 cross_device_conversions_value_micros = 312; + * @return The crossDeviceConversionsValueMicros. */ @java.lang.Override - public double getBenchmarkCtr() { - return benchmarkCtr_; + public long getCrossDeviceConversionsValueMicros() { + return crossDeviceConversionsValueMicros_; } /** *
-     * 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.
+     * The sum of the value of cross-device conversions, in micros.
      * 
* - * optional double benchmark_ctr = 211; - * @param value The benchmarkCtr to set. + * optional int64 cross_device_conversions_value_micros = 312; + * @param value The crossDeviceConversionsValueMicros to set. * @return This builder for chaining. */ - public Builder setBenchmarkCtr(double value) { + public Builder setCrossDeviceConversionsValueMicros(long value) { - benchmarkCtr_ = value; - bitField1_ |= 0x00000100; + crossDeviceConversionsValueMicros_ = value; + bitField2_ |= 0x00000008; 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.
+     * The sum of the value of cross-device conversions, in micros.
      * 
* - * optional double benchmark_ctr = 211; + * optional int64 cross_device_conversions_value_micros = 312; * @return This builder for chaining. */ - public Builder clearBenchmarkCtr() { - bitField1_ = (bitField1_ & ~0x00000100); - benchmarkCtr_ = 0D; + public Builder clearCrossDeviceConversionsValueMicros() { + bitField2_ = (bitField2_ & ~0x00000008); + crossDeviceConversionsValueMicros_ = 0L; onChanged(); return this; } - private double bounceRate_ ; + private double crossDeviceConversionsValueByConversionDate_ ; /** *
-     * Percentage of clicks where the user only visited a single page on your
-     * site. Imported from Google Analytics.
+     * The sum of cross-device conversions value by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double bounce_rate = 212; - * @return Whether the bounceRate field is set. + * optional double cross_device_conversions_value_by_conversion_date = 373; + * @return Whether the crossDeviceConversionsValueByConversionDate field is set. */ @java.lang.Override - public boolean hasBounceRate() { - return ((bitField1_ & 0x00000200) != 0); + public boolean hasCrossDeviceConversionsValueByConversionDate() { + return ((bitField2_ & 0x00000010) != 0); } /** *
-     * Percentage of clicks where the user only visited a single page on your
-     * site. Imported from Google Analytics.
+     * The sum of cross-device conversions value by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double bounce_rate = 212; - * @return The bounceRate. + * optional double cross_device_conversions_value_by_conversion_date = 373; + * @return The crossDeviceConversionsValueByConversionDate. */ @java.lang.Override - public double getBounceRate() { - return bounceRate_; + public double getCrossDeviceConversionsValueByConversionDate() { + return crossDeviceConversionsValueByConversionDate_; } /** *
-     * Percentage of clicks where the user only visited a single page on your
-     * site. Imported from Google Analytics.
+     * The sum of cross-device conversions value by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double bounce_rate = 212; - * @param value The bounceRate to set. + * optional double cross_device_conversions_value_by_conversion_date = 373; + * @param value The crossDeviceConversionsValueByConversionDate to set. * @return This builder for chaining. */ - public Builder setBounceRate(double value) { + public Builder setCrossDeviceConversionsValueByConversionDate(double value) { - bounceRate_ = value; - bitField1_ |= 0x00000200; + crossDeviceConversionsValueByConversionDate_ = value; + bitField2_ |= 0x00000010; onChanged(); return this; } /** *
-     * Percentage of clicks where the user only visited a single page on your
-     * site. Imported from Google Analytics.
+     * The sum of cross-device conversions value by conversion date.
+     * Details for the by_conversion_date columns are available at
+     * https://support.google.com/google-ads/answer/9549009.
      * 
* - * optional double bounce_rate = 212; + * optional double cross_device_conversions_value_by_conversion_date = 373; * @return This builder for chaining. */ - public Builder clearBounceRate() { - bitField1_ = (bitField1_ & ~0x00000200); - bounceRate_ = 0D; + public Builder clearCrossDeviceConversionsValueByConversionDate() { + bitField2_ = (bitField2_ & ~0x00000010); + crossDeviceConversionsValueByConversionDate_ = 0D; onChanged(); return this; } - private long clicks_ ; + private double ctr_ ; /** *
-     * The number of clicks.
+     * The number of clicks your ad receives (Clicks) divided by the number
+     * of times your ad is shown (Impressions).
      * 
* - * optional int64 clicks = 131; - * @return Whether the clicks field is set. + * optional double ctr = 174; + * @return Whether the ctr field is set. */ @java.lang.Override - public boolean hasClicks() { - return ((bitField1_ & 0x00000400) != 0); + public boolean hasCtr() { + return ((bitField2_ & 0x00000020) != 0); } /** *
-     * The number of clicks.
+     * The number of clicks your ad receives (Clicks) divided by the number
+     * of times your ad is shown (Impressions).
      * 
* - * optional int64 clicks = 131; - * @return The clicks. + * optional double ctr = 174; + * @return The ctr. */ @java.lang.Override - public long getClicks() { - return clicks_; + public double getCtr() { + return ctr_; } /** *
-     * The number of clicks.
+     * The number of clicks your ad receives (Clicks) divided by the number
+     * of times your ad is shown (Impressions).
      * 
* - * optional int64 clicks = 131; - * @param value The clicks to set. + * optional double ctr = 174; + * @param value The ctr to set. * @return This builder for chaining. */ - public Builder setClicks(long value) { + public Builder setCtr(double value) { - clicks_ = value; - bitField1_ |= 0x00000400; + ctr_ = value; + bitField2_ |= 0x00000020; onChanged(); return this; } /** *
-     * The number of clicks.
+     * The number of clicks your ad receives (Clicks) divided by the number
+     * of times your ad is shown (Impressions).
      * 
* - * optional int64 clicks = 131; + * optional double ctr = 174; * @return This builder for chaining. */ - public Builder clearClicks() { - bitField1_ = (bitField1_ & ~0x00000400); - clicks_ = 0L; + public Builder clearCtr() { + bitField2_ = (bitField2_ & ~0x00000020); + ctr_ = 0D; onChanged(); return this; } - private long combinedClicks_ ; + private double currentModelAttributedConversions_ ; /** *
-     * 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.
+     * 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 int64 combined_clicks = 156; - * @return Whether the combinedClicks field is set. + * optional double current_model_attributed_conversions = 175; + * @return Whether the currentModelAttributedConversions field is set. */ @java.lang.Override - public boolean hasCombinedClicks() { - return ((bitField1_ & 0x00000800) != 0); + public boolean hasCurrentModelAttributedConversions() { + return ((bitField2_ & 0x00000040) != 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.
+     * 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 int64 combined_clicks = 156; - * @return The combinedClicks. + * optional double current_model_attributed_conversions = 175; + * @return The currentModelAttributedConversions. */ @java.lang.Override - public long getCombinedClicks() { - return combinedClicks_; + public double getCurrentModelAttributedConversions() { + return currentModelAttributedConversions_; } /** *
-     * 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.
+     * 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 int64 combined_clicks = 156; - * @param value The combinedClicks to set. + * optional double current_model_attributed_conversions = 175; + * @param value The currentModelAttributedConversions to set. * @return This builder for chaining. */ - public Builder setCombinedClicks(long value) { + public Builder setCurrentModelAttributedConversions(double value) { - combinedClicks_ = value; - bitField1_ |= 0x00000800; + currentModelAttributedConversions_ = value; + bitField2_ |= 0x00000040; 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.
+     * 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 int64 combined_clicks = 156; + * optional double current_model_attributed_conversions = 175; * @return This builder for chaining. */ - public Builder clearCombinedClicks() { - bitField1_ = (bitField1_ & ~0x00000800); - combinedClicks_ = 0L; + public Builder clearCurrentModelAttributedConversions() { + bitField2_ = (bitField2_ & ~0x00000040); + currentModelAttributedConversions_ = 0D; onChanged(); return this; } - private double combinedClicksPerQuery_ ; + private double currentModelAttributedConversionsFromInteractionsRate_ ; /** *
-     * 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.
+     * 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 combined_clicks_per_query = 157; - * @return Whether the combinedClicksPerQuery field is set. + * optional double current_model_attributed_conversions_from_interactions_rate = 176; + * @return Whether the currentModelAttributedConversionsFromInteractionsRate field is set. */ @java.lang.Override - public boolean hasCombinedClicksPerQuery() { - return ((bitField1_ & 0x00001000) != 0); + public boolean hasCurrentModelAttributedConversionsFromInteractionsRate() { + return ((bitField2_ & 0x00000080) != 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.
+     * 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 combined_clicks_per_query = 157; - * @return The combinedClicksPerQuery. + * optional double current_model_attributed_conversions_from_interactions_rate = 176; + * @return The currentModelAttributedConversionsFromInteractionsRate. */ @java.lang.Override - public double getCombinedClicksPerQuery() { - return combinedClicksPerQuery_; + public double getCurrentModelAttributedConversionsFromInteractionsRate() { + return currentModelAttributedConversionsFromInteractionsRate_; } /** *
-     * 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.
+     * 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 combined_clicks_per_query = 157; - * @param value The combinedClicksPerQuery to set. + * optional double current_model_attributed_conversions_from_interactions_rate = 176; + * @param value The currentModelAttributedConversionsFromInteractionsRate to set. * @return This builder for chaining. */ - public Builder setCombinedClicksPerQuery(double value) { + public Builder setCurrentModelAttributedConversionsFromInteractionsRate(double value) { - combinedClicksPerQuery_ = value; - bitField1_ |= 0x00001000; + currentModelAttributedConversionsFromInteractionsRate_ = value; + bitField2_ |= 0x00000080; 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.
+     * 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 combined_clicks_per_query = 157; + * optional double current_model_attributed_conversions_from_interactions_rate = 176; * @return This builder for chaining. */ - public Builder clearCombinedClicksPerQuery() { - bitField1_ = (bitField1_ & ~0x00001000); - combinedClicksPerQuery_ = 0D; + public Builder clearCurrentModelAttributedConversionsFromInteractionsRate() { + bitField2_ = (bitField2_ & ~0x00000080); + currentModelAttributedConversionsFromInteractionsRate_ = 0D; onChanged(); return this; } - private long combinedQueries_ ; + private double currentModelAttributedConversionsFromInteractionsValuePerInteraction_ ; /** *
-     * 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.
+     * 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 int64 combined_queries = 158; - * @return Whether the combinedQueries field is set. + * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; + * @return Whether the currentModelAttributedConversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override - public boolean hasCombinedQueries() { - return ((bitField1_ & 0x00002000) != 0); + public boolean hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { + return ((bitField2_ & 0x00000100) != 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.
+     * 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 int64 combined_queries = 158; - * @return The combinedQueries. + * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; + * @return The currentModelAttributedConversionsFromInteractionsValuePerInteraction. */ @java.lang.Override - public long getCombinedQueries() { - return combinedQueries_; + public double getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { + return currentModelAttributedConversionsFromInteractionsValuePerInteraction_; } /** *
-     * 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.
+     * 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 int64 combined_queries = 158; - * @param value The combinedQueries to set. + * 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 setCombinedQueries(long value) { + public Builder setCurrentModelAttributedConversionsFromInteractionsValuePerInteraction(double value) { - combinedQueries_ = value; - bitField1_ |= 0x00002000; + currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = value; + bitField2_ |= 0x00000100; 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.
+     * 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 int64 combined_queries = 158; + * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; * @return This builder for chaining. */ - public Builder clearCombinedQueries() { - bitField1_ = (bitField1_ & ~0x00002000); - combinedQueries_ = 0L; + public Builder clearCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { + bitField2_ = (bitField2_ & ~0x00000100); + currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = 0D; onChanged(); return this; } - private double contentBudgetLostImpressionShare_ ; + private double currentModelAttributedConversionsValue_ ; /** *
-     * 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.
+     * 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 content_budget_lost_impression_share = 159; - * @return Whether the contentBudgetLostImpressionShare field is set. + * optional double current_model_attributed_conversions_value = 178; + * @return Whether the currentModelAttributedConversionsValue field is set. */ @java.lang.Override - public boolean hasContentBudgetLostImpressionShare() { - return ((bitField1_ & 0x00004000) != 0); + public boolean hasCurrentModelAttributedConversionsValue() { + return ((bitField2_ & 0x00000200) != 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.
+     * 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 content_budget_lost_impression_share = 159; - * @return The contentBudgetLostImpressionShare. + * optional double current_model_attributed_conversions_value = 178; + * @return The currentModelAttributedConversionsValue. */ @java.lang.Override - public double getContentBudgetLostImpressionShare() { - return contentBudgetLostImpressionShare_; + public double getCurrentModelAttributedConversionsValue() { + return currentModelAttributedConversionsValue_; } /** *
-     * 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.
+     * 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 content_budget_lost_impression_share = 159; - * @param value The contentBudgetLostImpressionShare to set. + * optional double current_model_attributed_conversions_value = 178; + * @param value The currentModelAttributedConversionsValue to set. * @return This builder for chaining. */ - public Builder setContentBudgetLostImpressionShare(double value) { + public Builder setCurrentModelAttributedConversionsValue(double value) { - contentBudgetLostImpressionShare_ = value; - bitField1_ |= 0x00004000; + currentModelAttributedConversionsValue_ = value; + bitField2_ |= 0x00000200; 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.
+     * 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 content_budget_lost_impression_share = 159; + * optional double current_model_attributed_conversions_value = 178; * @return This builder for chaining. */ - public Builder clearContentBudgetLostImpressionShare() { - bitField1_ = (bitField1_ & ~0x00004000); - contentBudgetLostImpressionShare_ = 0D; + public Builder clearCurrentModelAttributedConversionsValue() { + bitField2_ = (bitField2_ & ~0x00000200); + currentModelAttributedConversionsValue_ = 0D; onChanged(); return this; } - private double contentImpressionShare_ ; + private double currentModelAttributedConversionsValuePerCost_ ; /** *
-     * 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.
+     * 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 content_impression_share = 160; - * @return Whether the contentImpressionShare field is set. + * optional double current_model_attributed_conversions_value_per_cost = 179; + * @return Whether the currentModelAttributedConversionsValuePerCost field is set. */ @java.lang.Override - public boolean hasContentImpressionShare() { - return ((bitField1_ & 0x00008000) != 0); + public boolean hasCurrentModelAttributedConversionsValuePerCost() { + return ((bitField2_ & 0x00000400) != 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.
+     * 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 content_impression_share = 160; - * @return The contentImpressionShare. + * optional double current_model_attributed_conversions_value_per_cost = 179; + * @return The currentModelAttributedConversionsValuePerCost. */ @java.lang.Override - public double getContentImpressionShare() { - return contentImpressionShare_; + public double getCurrentModelAttributedConversionsValuePerCost() { + return currentModelAttributedConversionsValuePerCost_; } /** *
-     * 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.
+     * 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 content_impression_share = 160; - * @param value The contentImpressionShare to set. + * optional double current_model_attributed_conversions_value_per_cost = 179; + * @param value The currentModelAttributedConversionsValuePerCost to set. * @return This builder for chaining. */ - public Builder setContentImpressionShare(double value) { + public Builder setCurrentModelAttributedConversionsValuePerCost(double value) { - contentImpressionShare_ = value; - bitField1_ |= 0x00008000; + currentModelAttributedConversionsValuePerCost_ = value; + bitField2_ |= 0x00000400; 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.
+     * 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 content_impression_share = 160; + * optional double current_model_attributed_conversions_value_per_cost = 179; * @return This builder for chaining. */ - public Builder clearContentImpressionShare() { - bitField1_ = (bitField1_ & ~0x00008000); - contentImpressionShare_ = 0D; + public Builder clearCurrentModelAttributedConversionsValuePerCost() { + bitField2_ = (bitField2_ & ~0x00000400); + currentModelAttributedConversionsValuePerCost_ = 0D; onChanged(); return this; } - private java.lang.Object conversionLastReceivedRequestDateTime_ = ""; + private double engagementRate_ ; /** *
-     * 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.
+     * 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 string conversion_last_received_request_date_time = 161; - * @return Whether the conversionLastReceivedRequestDateTime field is set. + * optional double engagement_rate = 180; + * @return Whether the engagementRate field is set. */ - public boolean hasConversionLastReceivedRequestDateTime() { - return ((bitField1_ & 0x00010000) != 0); + @java.lang.Override + public boolean hasEngagementRate() { + return ((bitField2_ & 0x00000800) != 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.
+     * 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 string conversion_last_received_request_date_time = 161; - * @return The conversionLastReceivedRequestDateTime. + * optional double engagement_rate = 180; + * @return The engagementRate. */ - 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; - } + @java.lang.Override + public double getEngagementRate() { + return engagementRate_; } /** *
-     * 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.
+     * 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 string conversion_last_received_request_date_time = 161; - * @return The bytes for conversionLastReceivedRequestDateTime. + * optional double engagement_rate = 180; + * @param value The engagementRate to set. + * @return This builder for chaining. */ - 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; - } + public Builder setEngagementRate(double value) { + + engagementRate_ = value; + bitField2_ |= 0x00000800; + 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.
+     * 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 string conversion_last_received_request_date_time = 161; - * @param value The conversionLastReceivedRequestDateTime to set. + * optional double engagement_rate = 180; * @return This builder for chaining. */ - public Builder setConversionLastReceivedRequestDateTime( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - conversionLastReceivedRequestDateTime_ = value; - bitField1_ |= 0x00010000; + public Builder clearEngagementRate() { + bitField2_ = (bitField2_ & ~0x00000800); + engagementRate_ = 0D; onChanged(); return this; } + + private long engagements_ ; /** *
-     * 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.
+     * 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 string conversion_last_received_request_date_time = 161; - * @return This builder for chaining. + * optional int64 engagements = 181; + * @return Whether the engagements field is set. */ - public Builder clearConversionLastReceivedRequestDateTime() { - conversionLastReceivedRequestDateTime_ = getDefaultInstance().getConversionLastReceivedRequestDateTime(); - bitField1_ = (bitField1_ & ~0x00010000); - onChanged(); - return this; + @java.lang.Override + public boolean hasEngagements() { + return ((bitField2_ & 0x00001000) != 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.
+     * 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 string conversion_last_received_request_date_time = 161; - * @param value The bytes for conversionLastReceivedRequestDateTime to set. - * @return This builder for chaining. + * optional int64 engagements = 181; + * @return The engagements. */ - public Builder setConversionLastReceivedRequestDateTimeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - conversionLastReceivedRequestDateTime_ = value; - bitField1_ |= 0x00010000; - onChanged(); - return this; + @java.lang.Override + public long getEngagements() { + return engagements_; } - - 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.
+     * 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 string conversion_last_conversion_date = 162; - * @return Whether the conversionLastConversionDate field is set. + * optional int64 engagements = 181; + * @param value The engagements to set. + * @return This builder for chaining. */ - public boolean hasConversionLastConversionDate() { - return ((bitField1_ & 0x00020000) != 0); + public Builder setEngagements(long value) { + + engagements_ = value; + bitField2_ |= 0x00001000; + onChanged(); + return this; } /** *
-     * The date of the most recent conversion for this conversion action. The date
-     * is in the customer's time zone.
+     * 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 string conversion_last_conversion_date = 162; - * @return The conversionLastConversionDate. + * optional int64 engagements = 181; + * @return This builder for chaining. */ - 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; - } + public Builder clearEngagements() { + bitField2_ = (bitField2_ & ~0x00001000); + engagements_ = 0L; + onChanged(); + return this; } + + private double hotelAverageLeadValueMicros_ ; /** *
-     * The date of the most recent conversion for this conversion action. The date
-     * is in the customer's time zone.
+     * Average lead value based on clicks.
      * 
* - * optional string conversion_last_conversion_date = 162; - * @return The bytes for conversionLastConversionDate. + * optional double hotel_average_lead_value_micros = 213; + * @return Whether the hotelAverageLeadValueMicros field is set. */ - 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; - } + @java.lang.Override + public boolean hasHotelAverageLeadValueMicros() { + return ((bitField2_ & 0x00002000) != 0); } /** *
-     * The date of the most recent conversion for this conversion action. The date
-     * is in the customer's time zone.
+     * Average lead value based on clicks.
      * 
* - * optional string conversion_last_conversion_date = 162; - * @param value The conversionLastConversionDate to set. - * @return This builder for chaining. + * optional double hotel_average_lead_value_micros = 213; + * @return The hotelAverageLeadValueMicros. */ - public Builder setConversionLastConversionDate( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - conversionLastConversionDate_ = value; - bitField1_ |= 0x00020000; - onChanged(); - return this; + @java.lang.Override + public double getHotelAverageLeadValueMicros() { + return hotelAverageLeadValueMicros_; } /** *
-     * The date of the most recent conversion for this conversion action. The date
-     * is in the customer's time zone.
+     * Average lead value based on clicks.
      * 
* - * optional string conversion_last_conversion_date = 162; + * optional double hotel_average_lead_value_micros = 213; + * @param value The hotelAverageLeadValueMicros to set. * @return This builder for chaining. */ - public Builder clearConversionLastConversionDate() { - conversionLastConversionDate_ = getDefaultInstance().getConversionLastConversionDate(); - bitField1_ = (bitField1_ & ~0x00020000); + public Builder setHotelAverageLeadValueMicros(double value) { + + hotelAverageLeadValueMicros_ = value; + bitField2_ |= 0x00002000; onChanged(); return this; } /** *
-     * The date of the most recent conversion for this conversion action. The date
-     * is in the customer's time zone.
+     * Average lead value based on clicks.
      * 
* - * optional string conversion_last_conversion_date = 162; - * @param value The bytes for conversionLastConversionDate to set. + * optional double hotel_average_lead_value_micros = 213; * @return This builder for chaining. */ - public Builder setConversionLastConversionDateBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - conversionLastConversionDate_ = value; - bitField1_ |= 0x00020000; + public Builder clearHotelAverageLeadValueMicros() { + bitField2_ = (bitField2_ & ~0x00002000); + hotelAverageLeadValueMicros_ = 0D; onChanged(); return this; } - private double contentRankLostImpressionShare_ ; + private long hotelCommissionRateMicros_ ; /** *
-     * 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.
+     * Commission bid rate in micros. A 20% commission is represented as
+     * 200,000.
      * 
* - * optional double content_rank_lost_impression_share = 163; - * @return Whether the contentRankLostImpressionShare field is set. + * optional int64 hotel_commission_rate_micros = 256; + * @return Whether the hotelCommissionRateMicros field is set. */ @java.lang.Override - public boolean hasContentRankLostImpressionShare() { - return ((bitField1_ & 0x00040000) != 0); + public boolean hasHotelCommissionRateMicros() { + return ((bitField2_ & 0x00004000) != 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.
+     * Commission bid rate in micros. A 20% commission is represented as
+     * 200,000.
      * 
* - * optional double content_rank_lost_impression_share = 163; - * @return The contentRankLostImpressionShare. + * optional int64 hotel_commission_rate_micros = 256; + * @return The hotelCommissionRateMicros. */ @java.lang.Override - public double getContentRankLostImpressionShare() { - return contentRankLostImpressionShare_; + public long getHotelCommissionRateMicros() { + return hotelCommissionRateMicros_; } /** *
-     * 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.
+     * Commission bid rate in micros. A 20% commission is represented as
+     * 200,000.
      * 
* - * optional double content_rank_lost_impression_share = 163; - * @param value The contentRankLostImpressionShare to set. + * optional int64 hotel_commission_rate_micros = 256; + * @param value The hotelCommissionRateMicros to set. * @return This builder for chaining. */ - public Builder setContentRankLostImpressionShare(double value) { + public Builder setHotelCommissionRateMicros(long value) { - contentRankLostImpressionShare_ = value; - bitField1_ |= 0x00040000; + hotelCommissionRateMicros_ = value; + bitField2_ |= 0x00004000; 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.
+     * Commission bid rate in micros. A 20% commission is represented as
+     * 200,000.
      * 
* - * optional double content_rank_lost_impression_share = 163; + * optional int64 hotel_commission_rate_micros = 256; * @return This builder for chaining. */ - public Builder clearContentRankLostImpressionShare() { - bitField1_ = (bitField1_ & ~0x00040000); - contentRankLostImpressionShare_ = 0D; + public Builder clearHotelCommissionRateMicros() { + bitField2_ = (bitField2_ & ~0x00004000); + hotelCommissionRateMicros_ = 0L; onChanged(); return this; } - private double conversionsFromInteractionsRate_ ; + private double hotelExpectedCommissionCost_ ; /** *
-     * 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.
+     * Expected commission cost. The result of multiplying the commission value
+     * times the hotel_commission_rate in advertiser currency.
      * 
* - * optional double conversions_from_interactions_rate = 164; - * @return Whether the conversionsFromInteractionsRate field is set. + * optional double hotel_expected_commission_cost = 257; + * @return Whether the hotelExpectedCommissionCost field is set. */ @java.lang.Override - public boolean hasConversionsFromInteractionsRate() { - return ((bitField1_ & 0x00080000) != 0); + public boolean hasHotelExpectedCommissionCost() { + return ((bitField2_ & 0x00008000) != 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.
+     * Expected commission cost. The result of multiplying the commission value
+     * times the hotel_commission_rate in advertiser currency.
      * 
* - * optional double conversions_from_interactions_rate = 164; - * @return The conversionsFromInteractionsRate. + * optional double hotel_expected_commission_cost = 257; + * @return The hotelExpectedCommissionCost. */ @java.lang.Override - public double getConversionsFromInteractionsRate() { - return conversionsFromInteractionsRate_; + public double getHotelExpectedCommissionCost() { + return hotelExpectedCommissionCost_; } /** *
-     * 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.
+     * Expected commission cost. The result of multiplying the commission value
+     * times the hotel_commission_rate in advertiser currency.
      * 
* - * optional double conversions_from_interactions_rate = 164; - * @param value The conversionsFromInteractionsRate to set. + * optional double hotel_expected_commission_cost = 257; + * @param value The hotelExpectedCommissionCost to set. * @return This builder for chaining. */ - public Builder setConversionsFromInteractionsRate(double value) { + public Builder setHotelExpectedCommissionCost(double value) { - conversionsFromInteractionsRate_ = value; - bitField1_ |= 0x00080000; + hotelExpectedCommissionCost_ = value; + bitField2_ |= 0x00008000; 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.
+     * Expected commission cost. The result of multiplying the commission value
+     * times the hotel_commission_rate in advertiser currency.
      * 
* - * optional double conversions_from_interactions_rate = 164; + * optional double hotel_expected_commission_cost = 257; * @return This builder for chaining. */ - public Builder clearConversionsFromInteractionsRate() { - bitField1_ = (bitField1_ & ~0x00080000); - conversionsFromInteractionsRate_ = 0D; + public Builder clearHotelExpectedCommissionCost() { + bitField2_ = (bitField2_ & ~0x00008000); + hotelExpectedCommissionCost_ = 0D; onChanged(); return this; } - private double conversionsValue_ ; + private double hotelPriceDifferencePercentage_ ; /** *
-     * 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.
+     * The average price difference between the price offered by reporting hotel
+     * advertiser and the cheapest price offered by the competing advertiser.
      * 
* - * optional double conversions_value = 165; - * @return Whether the conversionsValue field is set. + * optional double hotel_price_difference_percentage = 214; + * @return Whether the hotelPriceDifferencePercentage field is set. */ @java.lang.Override - public boolean hasConversionsValue() { - return ((bitField1_ & 0x00100000) != 0); + public boolean hasHotelPriceDifferencePercentage() { + return ((bitField2_ & 0x00010000) != 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.
+     * The average price difference between the price offered by reporting hotel
+     * advertiser and the cheapest price offered by the competing advertiser.
      * 
* - * optional double conversions_value = 165; - * @return The conversionsValue. + * optional double hotel_price_difference_percentage = 214; + * @return The hotelPriceDifferencePercentage. */ @java.lang.Override - public double getConversionsValue() { - return conversionsValue_; + public double getHotelPriceDifferencePercentage() { + return hotelPriceDifferencePercentage_; } /** *
-     * 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.
+     * The average price difference between the price offered by reporting hotel
+     * advertiser and the cheapest price offered by the competing advertiser.
      * 
* - * optional double conversions_value = 165; - * @param value The conversionsValue to set. + * optional double hotel_price_difference_percentage = 214; + * @param value The hotelPriceDifferencePercentage to set. * @return This builder for chaining. */ - public Builder setConversionsValue(double value) { + public Builder setHotelPriceDifferencePercentage(double value) { - conversionsValue_ = value; - bitField1_ |= 0x00100000; + hotelPriceDifferencePercentage_ = value; + bitField2_ |= 0x00010000; 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.
+     * The average price difference between the price offered by reporting hotel
+     * advertiser and the cheapest price offered by the competing advertiser.
      * 
* - * optional double conversions_value = 165; + * optional double hotel_price_difference_percentage = 214; * @return This builder for chaining. */ - public Builder clearConversionsValue() { - bitField1_ = (bitField1_ & ~0x00100000); - conversionsValue_ = 0D; + public Builder clearHotelPriceDifferencePercentage() { + bitField2_ = (bitField2_ & ~0x00010000); + hotelPriceDifferencePercentage_ = 0D; onChanged(); return this; } - private double conversionsValueByConversionDate_ ; + private long hotelEligibleImpressions_ ; /** *
-     * 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.
+     * The number of impressions that hotel partners could have had given their
+     * feed performance.
      * 
* - * optional double conversions_value_by_conversion_date = 242; - * @return Whether the conversionsValueByConversionDate field is set. + * optional int64 hotel_eligible_impressions = 215; + * @return Whether the hotelEligibleImpressions field is set. */ @java.lang.Override - public boolean hasConversionsValueByConversionDate() { - return ((bitField1_ & 0x00200000) != 0); + public boolean hasHotelEligibleImpressions() { + return ((bitField2_ & 0x00020000) != 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. 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.
+     * The number of impressions that hotel partners could have had given their
+     * feed performance.
      * 
* - * optional double conversions_value_by_conversion_date = 242; - * @return The conversionsValueByConversionDate. + * optional int64 hotel_eligible_impressions = 215; + * @return The hotelEligibleImpressions. */ @java.lang.Override - public double getConversionsValueByConversionDate() { - return conversionsValueByConversionDate_; + public long getHotelEligibleImpressions() { + return hotelEligibleImpressions_; } /** *
-     * 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.
+     * The number of impressions that hotel partners could have had given their
+     * feed performance.
      * 
* - * optional double conversions_value_by_conversion_date = 242; - * @param value The conversionsValueByConversionDate to set. + * optional int64 hotel_eligible_impressions = 215; + * @param value The hotelEligibleImpressions to set. * @return This builder for chaining. */ - public Builder setConversionsValueByConversionDate(double value) { - - conversionsValueByConversionDate_ = value; - bitField1_ |= 0x00200000; + public Builder setHotelEligibleImpressions(long value) { + + hotelEligibleImpressions_ = value; + bitField2_ |= 0x00020000; 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.
+     * The number of impressions that hotel partners could have had given their
+     * feed performance.
      * 
* - * optional double conversions_value_by_conversion_date = 242; + * optional int64 hotel_eligible_impressions = 215; * @return This builder for chaining. */ - public Builder clearConversionsValueByConversionDate() { - bitField1_ = (bitField1_ & ~0x00200000); - conversionsValueByConversionDate_ = 0D; + public Builder clearHotelEligibleImpressions() { + bitField2_ = (bitField2_ & ~0x00020000); + hotelEligibleImpressions_ = 0L; onChanged(); return this; } - private double newCustomerLifetimeValue_ ; + private int historicalCreativeQualityScore_ = 0; /** *
-     * New customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for
-     * biddable conversions. If your campaign has adopted the customer
-     * acquisition goal and selected "bid higher for new customers", these values
-     * will be included in "conversions_value" for optimization. See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * The creative historical quality score.
      * 
* - * optional double new_customer_lifetime_value = 293; - * @return Whether the newCustomerLifetimeValue field is set. + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; + * @return The enum numeric value on the wire for historicalCreativeQualityScore. */ - @java.lang.Override - public boolean hasNewCustomerLifetimeValue() { - return ((bitField1_ & 0x00400000) != 0); + @java.lang.Override public int getHistoricalCreativeQualityScoreValue() { + return historicalCreativeQualityScore_; } /** *
-     * New customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for
-     * biddable conversions. If your campaign has adopted the customer
-     * acquisition goal and selected "bid higher for new customers", these values
-     * will be included in "conversions_value" for optimization. See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * The creative historical quality score.
      * 
* - * optional double new_customer_lifetime_value = 293; - * @return The newCustomerLifetimeValue. + * .google.ads.googleads.v24.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; + bitField2_ |= 0x00040000; + onChanged(); + return this; + } + /** + *
+     * The creative historical quality score.
+     * 
+ * + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; + * @return The historicalCreativeQualityScore. */ @java.lang.Override - public double getNewCustomerLifetimeValue() { - return newCustomerLifetimeValue_; + public com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalCreativeQualityScore() { + com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.forNumber(historicalCreativeQualityScore_); + return result == null ? com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } /** *
-     * New customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for
-     * biddable conversions. If your campaign has adopted the customer
-     * acquisition goal and selected "bid higher for new customers", these values
-     * will be included in "conversions_value" for optimization. See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * The creative historical quality score.
      * 
* - * optional double new_customer_lifetime_value = 293; - * @param value The newCustomerLifetimeValue to set. + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; + * @param value The historicalCreativeQualityScore to set. * @return This builder for chaining. */ - public Builder setNewCustomerLifetimeValue(double value) { - - newCustomerLifetimeValue_ = value; - bitField1_ |= 0x00400000; + public Builder setHistoricalCreativeQualityScore(com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket value) { + if (value == null) { throw new NullPointerException(); } + bitField2_ |= 0x00040000; + historicalCreativeQualityScore_ = value.getNumber(); onChanged(); return this; } /** *
-     * New customers' lifetime conversion value. If you have set up
-     * customer acquisition goal at either account level or campaign level, this
-     * will include the additional conversion value from new customers for
-     * biddable conversions. If your campaign has adopted the customer
-     * acquisition goal and selected "bid higher for new customers", these values
-     * will be included in "conversions_value" for optimization. See
-     * https://support.google.com/google-ads/answer/12080169 for more details.
+     * The creative historical quality score.
      * 
* - * optional double new_customer_lifetime_value = 293; + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; * @return This builder for chaining. */ - public Builder clearNewCustomerLifetimeValue() { - bitField1_ = (bitField1_ & ~0x00400000); - newCustomerLifetimeValue_ = 0D; + public Builder clearHistoricalCreativeQualityScore() { + bitField2_ = (bitField2_ & ~0x00040000); + historicalCreativeQualityScore_ = 0; onChanged(); return this; } - private double conversionsValuePerCost_ ; + private int historicalLandingPageQualityScore_ = 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.
+     * The quality of historical landing page experience.
      * 
* - * optional double conversions_value_per_cost = 166; - * @return Whether the conversionsValuePerCost field is set. + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; + * @return The enum numeric value on the wire for historicalLandingPageQualityScore. */ - @java.lang.Override - public boolean hasConversionsValuePerCost() { - return ((bitField1_ & 0x00800000) != 0); + @java.lang.Override public int getHistoricalLandingPageQualityScoreValue() { + return historicalLandingPageQualityScore_; } /** *
-     * 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.
+     * The quality of historical landing page experience.
      * 
* - * optional double conversions_value_per_cost = 166; - * @return The conversionsValuePerCost. + * .google.ads.googleads.v24.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; + bitField2_ |= 0x00080000; + onChanged(); + return this; + } + /** + *
+     * The quality of historical landing page experience.
+     * 
+ * + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; + * @return The historicalLandingPageQualityScore. */ @java.lang.Override - public double getConversionsValuePerCost() { - return conversionsValuePerCost_; + public com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalLandingPageQualityScore() { + com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.forNumber(historicalLandingPageQualityScore_); + return result == null ? com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } /** *
-     * 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.
+     * The quality of historical landing page experience.
      * 
* - * optional double conversions_value_per_cost = 166; - * @param value The conversionsValuePerCost to set. + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; + * @param value The historicalLandingPageQualityScore to set. * @return This builder for chaining. */ - public Builder setConversionsValuePerCost(double value) { - - conversionsValuePerCost_ = value; - bitField1_ |= 0x00800000; + public Builder setHistoricalLandingPageQualityScore(com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket value) { + if (value == null) { throw new NullPointerException(); } + bitField2_ |= 0x00080000; + historicalLandingPageQualityScore_ = value.getNumber(); 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.
+     * The quality of historical landing page experience.
      * 
* - * optional double conversions_value_per_cost = 166; + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; * @return This builder for chaining. */ - public Builder clearConversionsValuePerCost() { - bitField1_ = (bitField1_ & ~0x00800000); - conversionsValuePerCost_ = 0D; + public Builder clearHistoricalLandingPageQualityScore() { + bitField2_ = (bitField2_ & ~0x00080000); + historicalLandingPageQualityScore_ = 0; onChanged(); return this; } - private double conversionsFromInteractionsValuePerInteraction_ ; + private long historicalQualityScore_ ; /** *
-     * 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.
+     * The historical quality score.
      * 
* - * optional double conversions_from_interactions_value_per_interaction = 167; - * @return Whether the conversionsFromInteractionsValuePerInteraction field is set. + * optional int64 historical_quality_score = 216; + * @return Whether the historicalQualityScore field is set. */ @java.lang.Override - public boolean hasConversionsFromInteractionsValuePerInteraction() { - return ((bitField1_ & 0x01000000) != 0); + public boolean hasHistoricalQualityScore() { + return ((bitField2_ & 0x00100000) != 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.
+     * The historical quality score.
      * 
* - * optional double conversions_from_interactions_value_per_interaction = 167; - * @return The conversionsFromInteractionsValuePerInteraction. + * optional int64 historical_quality_score = 216; + * @return The historicalQualityScore. */ @java.lang.Override - public double getConversionsFromInteractionsValuePerInteraction() { - return conversionsFromInteractionsValuePerInteraction_; + public long getHistoricalQualityScore() { + return historicalQualityScore_; } /** *
-     * 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.
+     * The historical quality score.
      * 
* - * optional double conversions_from_interactions_value_per_interaction = 167; - * @param value The conversionsFromInteractionsValuePerInteraction to set. + * optional int64 historical_quality_score = 216; + * @param value The historicalQualityScore to set. * @return This builder for chaining. */ - public Builder setConversionsFromInteractionsValuePerInteraction(double value) { + public Builder setHistoricalQualityScore(long value) { - conversionsFromInteractionsValuePerInteraction_ = value; - bitField1_ |= 0x01000000; + historicalQualityScore_ = value; + bitField2_ |= 0x00100000; 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.
+     * The historical quality score.
      * 
* - * optional double conversions_from_interactions_value_per_interaction = 167; + * optional int64 historical_quality_score = 216; * @return This builder for chaining. */ - public Builder clearConversionsFromInteractionsValuePerInteraction() { - bitField1_ = (bitField1_ & ~0x01000000); - conversionsFromInteractionsValuePerInteraction_ = 0D; + public Builder clearHistoricalQualityScore() { + bitField2_ = (bitField2_ & ~0x00100000); + historicalQualityScore_ = 0L; onChanged(); return this; } - private double conversions_ ; + private int historicalSearchPredictedCtr_ = 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.
+     * The historical search predicted click through rate (CTR).
      * 
* - * optional double conversions = 168; - * @return Whether the conversions field is set. + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; + * @return The enum numeric value on the wire for historicalSearchPredictedCtr. */ - @java.lang.Override - public boolean hasConversions() { - return ((bitField1_ & 0x02000000) != 0); + @java.lang.Override public int getHistoricalSearchPredictedCtrValue() { + return historicalSearchPredictedCtr_; } /** *
-     * 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.
+     * The historical search predicted click through rate (CTR).
      * 
* - * optional double conversions = 168; - * @return The conversions. + * .google.ads.googleads.v24.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; + bitField2_ |= 0x00200000; + onChanged(); + return this; + } + /** + *
+     * The historical search predicted click through rate (CTR).
+     * 
+ * + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; + * @return The historicalSearchPredictedCtr. */ @java.lang.Override - public double getConversions() { - return conversions_; + public com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalSearchPredictedCtr() { + com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.forNumber(historicalSearchPredictedCtr_); + return result == null ? com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; } /** *
-     * 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.
+     * The historical search predicted click through rate (CTR).
      * 
* - * optional double conversions = 168; - * @param value The conversions to set. + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; + * @param value The historicalSearchPredictedCtr to set. * @return This builder for chaining. */ - public Builder setConversions(double value) { - - conversions_ = value; - bitField1_ |= 0x02000000; + public Builder setHistoricalSearchPredictedCtr(com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket value) { + if (value == null) { throw new NullPointerException(); } + bitField2_ |= 0x00200000; + historicalSearchPredictedCtr_ = value.getNumber(); 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.
+     * The historical search predicted click through rate (CTR).
      * 
* - * optional double conversions = 168; + * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; * @return This builder for chaining. */ - public Builder clearConversions() { - bitField1_ = (bitField1_ & ~0x02000000); - conversions_ = 0D; + public Builder clearHistoricalSearchPredictedCtr() { + bitField2_ = (bitField2_ & ~0x00200000); + historicalSearchPredictedCtr_ = 0; onChanged(); return this; } - private double conversionsByConversionDate_ ; + private long gmailForwards_ ; /** *
-     * 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.
+     * The number of times the ad was forwarded to someone else as a message.
      * 
* - * optional double conversions_by_conversion_date = 243; - * @return Whether the conversionsByConversionDate field is set. + * optional int64 gmail_forwards = 217; + * @return Whether the gmailForwards field is set. */ @java.lang.Override - public boolean hasConversionsByConversionDate() { - return ((bitField1_ & 0x04000000) != 0); + public boolean hasGmailForwards() { + return ((bitField2_ & 0x00400000) != 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. 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.
+     * The number of times the ad was forwarded to someone else as a message.
      * 
* - * optional double conversions_by_conversion_date = 243; - * @return The conversionsByConversionDate. + * optional int64 gmail_forwards = 217; + * @return The gmailForwards. */ @java.lang.Override - public double getConversionsByConversionDate() { - return conversionsByConversionDate_; + public long getGmailForwards() { + return gmailForwards_; } /** *
-     * 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.
+     * The number of times the ad was forwarded to someone else as a message.
      * 
* - * optional double conversions_by_conversion_date = 243; - * @param value The conversionsByConversionDate to set. + * optional int64 gmail_forwards = 217; + * @param value The gmailForwards to set. * @return This builder for chaining. */ - public Builder setConversionsByConversionDate(double value) { + public Builder setGmailForwards(long value) { - conversionsByConversionDate_ = value; - bitField1_ |= 0x04000000; + gmailForwards_ = value; + bitField2_ |= 0x00400000; 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.
+     * The number of times the ad was forwarded to someone else as a message.
      * 
* - * optional double conversions_by_conversion_date = 243; + * optional int64 gmail_forwards = 217; * @return This builder for chaining. */ - public Builder clearConversionsByConversionDate() { - bitField1_ = (bitField1_ & ~0x04000000); - conversionsByConversionDate_ = 0D; + public Builder clearGmailForwards() { + bitField2_ = (bitField2_ & ~0x00400000); + gmailForwards_ = 0L; onChanged(); return this; } - private long costMicros_ ; + private long gmailSaves_ ; /** *
-     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
-     * (CPM) costs during this period.
+     * The number of times someone has saved your Gmail ad to their inbox as a
+     * message.
      * 
* - * optional int64 cost_micros = 169; - * @return Whether the costMicros field is set. + * optional int64 gmail_saves = 218; + * @return Whether the gmailSaves field is set. */ @java.lang.Override - public boolean hasCostMicros() { - return ((bitField1_ & 0x08000000) != 0); + public boolean hasGmailSaves() { + return ((bitField2_ & 0x00800000) != 0); } /** *
-     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
-     * (CPM) costs during this period.
+     * The number of times someone has saved your Gmail ad to their inbox as a
+     * message.
      * 
* - * optional int64 cost_micros = 169; - * @return The costMicros. + * optional int64 gmail_saves = 218; + * @return The gmailSaves. */ @java.lang.Override - public long getCostMicros() { - return costMicros_; + public long getGmailSaves() { + return gmailSaves_; } /** *
-     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
-     * (CPM) costs during this period.
+     * The number of times someone has saved your Gmail ad to their inbox as a
+     * message.
      * 
* - * optional int64 cost_micros = 169; - * @param value The costMicros to set. + * optional int64 gmail_saves = 218; + * @param value The gmailSaves to set. * @return This builder for chaining. */ - public Builder setCostMicros(long value) { + public Builder setGmailSaves(long value) { - costMicros_ = value; - bitField1_ |= 0x08000000; + gmailSaves_ = value; + bitField2_ |= 0x00800000; onChanged(); return this; } /** *
-     * The sum of your cost-per-click (CPC) and cost-per-thousand impressions
-     * (CPM) costs during this period.
+     * The number of times someone has saved your Gmail ad to their inbox as a
+     * message.
      * 
* - * optional int64 cost_micros = 169; + * optional int64 gmail_saves = 218; * @return This builder for chaining. */ - public Builder clearCostMicros() { - bitField1_ = (bitField1_ & ~0x08000000); - costMicros_ = 0L; + public Builder clearGmailSaves() { + bitField2_ = (bitField2_ & ~0x00800000); + gmailSaves_ = 0L; onChanged(); return this; } - private double costPerAllConversions_ ; + private long gmailSecondaryClicks_ ; /** *
-     * The cost of ad interactions divided by all conversions.
+     * The number of clicks to the landing page on the expanded state of Gmail
+     * ads.
      * 
* - * optional double cost_per_all_conversions = 170; - * @return Whether the costPerAllConversions field is set. + * optional int64 gmail_secondary_clicks = 219; + * @return Whether the gmailSecondaryClicks field is set. */ @java.lang.Override - public boolean hasCostPerAllConversions() { - return ((bitField1_ & 0x10000000) != 0); + public boolean hasGmailSecondaryClicks() { + return ((bitField2_ & 0x01000000) != 0); } /** *
-     * The cost of ad interactions divided by all conversions.
+     * The number of clicks to the landing page on the expanded state of Gmail
+     * ads.
      * 
* - * optional double cost_per_all_conversions = 170; - * @return The costPerAllConversions. + * optional int64 gmail_secondary_clicks = 219; + * @return The gmailSecondaryClicks. */ @java.lang.Override - public double getCostPerAllConversions() { - return costPerAllConversions_; + public long getGmailSecondaryClicks() { + return gmailSecondaryClicks_; } /** *
-     * The cost of ad interactions divided by all conversions.
+     * The number of clicks to the landing page on the expanded state of Gmail
+     * ads.
      * 
* - * optional double cost_per_all_conversions = 170; - * @param value The costPerAllConversions to set. + * optional int64 gmail_secondary_clicks = 219; + * @param value The gmailSecondaryClicks to set. * @return This builder for chaining. */ - public Builder setCostPerAllConversions(double value) { + public Builder setGmailSecondaryClicks(long value) { - costPerAllConversions_ = value; - bitField1_ |= 0x10000000; + gmailSecondaryClicks_ = value; + bitField2_ |= 0x01000000; onChanged(); return this; } /** *
-     * The cost of ad interactions divided by all conversions.
+     * The number of clicks to the landing page on the expanded state of Gmail
+     * ads.
      * 
* - * optional double cost_per_all_conversions = 170; + * optional int64 gmail_secondary_clicks = 219; * @return This builder for chaining. */ - public Builder clearCostPerAllConversions() { - bitField1_ = (bitField1_ & ~0x10000000); - costPerAllConversions_ = 0D; + public Builder clearGmailSecondaryClicks() { + bitField2_ = (bitField2_ & ~0x01000000); + gmailSecondaryClicks_ = 0L; onChanged(); return this; } - private double costPerConversion_ ; + private long impressionsFromStoreReach_ ; /** *
-     * 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.
+     * The number of times a business's location-based ad was shown.
+     *
+     * This metric applies to feed items only.
      * 
* - * optional double cost_per_conversion = 171; - * @return Whether the costPerConversion field is set. + * optional int64 impressions_from_store_reach = 220; + * @return Whether the impressionsFromStoreReach field is set. */ @java.lang.Override - public boolean hasCostPerConversion() { - return ((bitField1_ & 0x20000000) != 0); + public boolean hasImpressionsFromStoreReach() { + return ((bitField2_ & 0x02000000) != 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.
+     * The number of times a business's location-based ad was shown.
+     *
+     * This metric applies to feed items only.
      * 
* - * optional double cost_per_conversion = 171; - * @return The costPerConversion. + * optional int64 impressions_from_store_reach = 220; + * @return The impressionsFromStoreReach. */ @java.lang.Override - public double getCostPerConversion() { - return costPerConversion_; + public long getImpressionsFromStoreReach() { + return impressionsFromStoreReach_; } /** *
-     * 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.
+     * The number of times a business's location-based ad was shown.
+     *
+     * This metric applies to feed items only.
      * 
* - * optional double cost_per_conversion = 171; - * @param value The costPerConversion to set. + * optional int64 impressions_from_store_reach = 220; + * @param value The impressionsFromStoreReach to set. * @return This builder for chaining. */ - public Builder setCostPerConversion(double value) { + public Builder setImpressionsFromStoreReach(long value) { - costPerConversion_ = value; - bitField1_ |= 0x20000000; + impressionsFromStoreReach_ = value; + bitField2_ |= 0x02000000; 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.
+     * The number of times a business's location-based ad was shown.
+     *
+     * This metric applies to feed items only.
      * 
* - * optional double cost_per_conversion = 171; + * optional int64 impressions_from_store_reach = 220; * @return This builder for chaining. */ - public Builder clearCostPerConversion() { - bitField1_ = (bitField1_ & ~0x20000000); - costPerConversion_ = 0D; + public Builder clearImpressionsFromStoreReach() { + bitField2_ = (bitField2_ & ~0x02000000); + impressionsFromStoreReach_ = 0L; onChanged(); return this; } - private double costPerCurrentModelAttributedConversion_ ; + private long impressions_ ; /** *
-     * 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.
+     * Count of how often your ad has appeared on a search results page or
+     * website on the Google Network.
      * 
* - * optional double cost_per_current_model_attributed_conversion = 172; - * @return Whether the costPerCurrentModelAttributedConversion field is set. + * optional int64 impressions = 221; + * @return Whether the impressions field is set. */ @java.lang.Override - public boolean hasCostPerCurrentModelAttributedConversion() { - return ((bitField1_ & 0x40000000) != 0); + public boolean hasImpressions() { + return ((bitField2_ & 0x04000000) != 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.
+     * Count of how often your ad has appeared on a search results page or
+     * website on the Google Network.
      * 
* - * optional double cost_per_current_model_attributed_conversion = 172; - * @return The costPerCurrentModelAttributedConversion. + * optional int64 impressions = 221; + * @return The impressions. */ @java.lang.Override - public double getCostPerCurrentModelAttributedConversion() { - return costPerCurrentModelAttributedConversion_; + public long getImpressions() { + return impressions_; } /** *
-     * 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.
+     * Count of how often your ad has appeared on a search results page or
+     * website on the Google Network.
      * 
* - * optional double cost_per_current_model_attributed_conversion = 172; - * @param value The costPerCurrentModelAttributedConversion to set. + * optional int64 impressions = 221; + * @param value The impressions to set. * @return This builder for chaining. */ - public Builder setCostPerCurrentModelAttributedConversion(double value) { + public Builder setImpressions(long value) { - costPerCurrentModelAttributedConversion_ = value; - bitField1_ |= 0x40000000; + impressions_ = value; + bitField2_ |= 0x04000000; 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.
+     * Count of how often your ad has appeared on a search results page or
+     * website on the Google Network.
      * 
* - * optional double cost_per_current_model_attributed_conversion = 172; + * optional int64 impressions = 221; * @return This builder for chaining. */ - public Builder clearCostPerCurrentModelAttributedConversion() { - bitField1_ = (bitField1_ & ~0x40000000); - costPerCurrentModelAttributedConversion_ = 0D; + public Builder clearImpressions() { + bitField2_ = (bitField2_ & ~0x04000000); + impressions_ = 0L; onChanged(); return this; } - private double crossDeviceConversions_ ; + private double interactionRate_ ; /** *
-     * 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.
+     * 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 cross_device_conversions = 173; - * @return Whether the crossDeviceConversions field is set. + * optional double interaction_rate = 222; + * @return Whether the interactionRate field is set. */ @java.lang.Override - public boolean hasCrossDeviceConversions() { - return ((bitField1_ & 0x80000000) != 0); + public boolean hasInteractionRate() { + return ((bitField2_ & 0x08000000) != 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.
+     * 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 cross_device_conversions = 173; - * @return The crossDeviceConversions. + * optional double interaction_rate = 222; + * @return The interactionRate. */ @java.lang.Override - public double getCrossDeviceConversions() { - return crossDeviceConversions_; + public double getInteractionRate() { + return interactionRate_; } /** *
-     * 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.
+     * 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 cross_device_conversions = 173; - * @param value The crossDeviceConversions to set. + * optional double interaction_rate = 222; + * @param value The interactionRate to set. * @return This builder for chaining. */ - public Builder setCrossDeviceConversions(double value) { + public Builder setInteractionRate(double value) { - crossDeviceConversions_ = value; - bitField1_ |= 0x80000000; + interactionRate_ = value; + bitField2_ |= 0x08000000; 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.
+     * 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 cross_device_conversions = 173; + * optional double interaction_rate = 222; * @return This builder for chaining. */ - public Builder clearCrossDeviceConversions() { - bitField1_ = (bitField1_ & ~0x80000000); - crossDeviceConversions_ = 0D; + public Builder clearInteractionRate() { + bitField2_ = (bitField2_ & ~0x08000000); + interactionRate_ = 0D; onChanged(); return this; } - private double crossDeviceConversionsByConversionDate_ ; + private long interactions_ ; /** *
-     * The number of cross-device conversions by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * 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 double cross_device_conversions_by_conversion_date = 372; - * @return Whether the crossDeviceConversionsByConversionDate field is set. + * optional int64 interactions = 223; + * @return Whether the interactions field is set. */ @java.lang.Override - public boolean hasCrossDeviceConversionsByConversionDate() { - return ((bitField2_ & 0x00000001) != 0); + public boolean hasInteractions() { + return ((bitField2_ & 0x10000000) != 0); } /** *
-     * The number of cross-device conversions by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * 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 double cross_device_conversions_by_conversion_date = 372; - * @return The crossDeviceConversionsByConversionDate. + * optional int64 interactions = 223; + * @return The interactions. */ @java.lang.Override - public double getCrossDeviceConversionsByConversionDate() { - return crossDeviceConversionsByConversionDate_; + public long getInteractions() { + return interactions_; } /** *
-     * The number of cross-device conversions by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * 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 double cross_device_conversions_by_conversion_date = 372; - * @param value The crossDeviceConversionsByConversionDate to set. + * optional int64 interactions = 223; + * @param value The interactions to set. * @return This builder for chaining. */ - public Builder setCrossDeviceConversionsByConversionDate(double value) { + public Builder setInteractions(long value) { - crossDeviceConversionsByConversionDate_ = value; - bitField2_ |= 0x00000001; + interactions_ = value; + bitField2_ |= 0x10000000; onChanged(); return this; } /** *
-     * The number of cross-device conversions by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * 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 double cross_device_conversions_by_conversion_date = 372; + * optional int64 interactions = 223; * @return This builder for chaining. */ - public Builder clearCrossDeviceConversionsByConversionDate() { - bitField2_ = (bitField2_ & ~0x00000001); - crossDeviceConversionsByConversionDate_ = 0D; + public Builder clearInteractions() { + bitField2_ = (bitField2_ & ~0x10000000); + interactions_ = 0L; onChanged(); return this; } - private double crossDeviceConversionsValue_ ; + private com.google.protobuf.Internal.IntList interactionEventTypes_ = emptyIntList(); + private void ensureInteractionEventTypesIsMutable() { + if (!interactionEventTypes_.isModifiable()) { + interactionEventTypes_ = makeMutableCopy(interactionEventTypes_); + } + bitField2_ |= 0x20000000; + } /** *
-     * The sum of the value of cross-device conversions.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value = 253; - * @return Whether the crossDeviceConversionsValue field is set. + * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + * @return A list containing the interactionEventTypes. */ - @java.lang.Override - public boolean hasCrossDeviceConversionsValue() { - return ((bitField2_ & 0x00000002) != 0); + public java.util.List getInteractionEventTypesList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType>(interactionEventTypes_, interactionEventTypes_converter_); } /** *
-     * The sum of the value of cross-device conversions.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value = 253; - * @return The crossDeviceConversionsValue. + * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + * @return The count of interactionEventTypes. */ - @java.lang.Override - public double getCrossDeviceConversionsValue() { - return crossDeviceConversionsValue_; + public int getInteractionEventTypesCount() { + return interactionEventTypes_.size(); } /** *
-     * The sum of the value of cross-device conversions.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value = 253; - * @param value The crossDeviceConversionsValue to set. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + * @param index The index of the element to return. + * @return The interactionEventTypes at the given index. */ - public Builder setCrossDeviceConversionsValue(double value) { - - crossDeviceConversionsValue_ = value; - bitField2_ |= 0x00000002; - onChanged(); - return this; + public com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType getInteractionEventTypes(int index) { + return interactionEventTypes_converter_.convert(interactionEventTypes_.getInt(index)); } /** *
-     * The sum of the value of cross-device conversions.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value = 253; + * repeated .google.ads.googleads.v24.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 clearCrossDeviceConversionsValue() { - bitField2_ = (bitField2_ & ~0x00000002); - crossDeviceConversionsValue_ = 0D; + public Builder setInteractionEventTypes( + int index, com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType value) { + if (value == null) { throw new NullPointerException(); } + ensureInteractionEventTypesIsMutable(); + interactionEventTypes_.setInt(index, value.getNumber()); onChanged(); return this; } - - private long crossDeviceConversionsValueMicros_ ; /** *
-     * The sum of the value of cross-device conversions, in micros.
+     * The types of payable and free interactions.
      * 
* - * optional int64 cross_device_conversions_value_micros = 312; - * @return Whether the crossDeviceConversionsValueMicros field is set. + * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + * @param value The interactionEventTypes to add. + * @return This builder for chaining. */ - @java.lang.Override - public boolean hasCrossDeviceConversionsValueMicros() { - return ((bitField2_ & 0x00000004) != 0); + public Builder addInteractionEventTypes(com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType value) { + if (value == null) { throw new NullPointerException(); } + ensureInteractionEventTypesIsMutable(); + interactionEventTypes_.addInt(value.getNumber()); + onChanged(); + return this; } /** *
-     * The sum of the value of cross-device conversions, in micros.
+     * The types of payable and free interactions.
      * 
* - * optional int64 cross_device_conversions_value_micros = 312; - * @return The crossDeviceConversionsValueMicros. + * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + * @param values The interactionEventTypes to add. + * @return This builder for chaining. */ - @java.lang.Override - public long getCrossDeviceConversionsValueMicros() { - return crossDeviceConversionsValueMicros_; + public Builder addAllInteractionEventTypes( + java.lang.Iterable values) { + ensureInteractionEventTypesIsMutable(); + for (com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType value : values) { + interactionEventTypes_.addInt(value.getNumber()); + } + onChanged(); + return this; } /** *
-     * The sum of the value of cross-device conversions, in micros.
+     * The types of payable and free interactions.
      * 
* - * optional int64 cross_device_conversions_value_micros = 312; - * @param value The crossDeviceConversionsValueMicros to set. + * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; * @return This builder for chaining. */ - public Builder setCrossDeviceConversionsValueMicros(long value) { - - crossDeviceConversionsValueMicros_ = value; - bitField2_ |= 0x00000004; + public Builder clearInteractionEventTypes() { + interactionEventTypes_ = emptyIntList(); + bitField2_ = (bitField2_ & ~0x20000000); onChanged(); return this; } /** *
-     * The sum of the value of cross-device conversions, in micros.
+     * The types of payable and free interactions.
      * 
* - * optional int64 cross_device_conversions_value_micros = 312; - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + * @return A list containing the enum numeric values on the wire for interactionEventTypes. */ - public Builder clearCrossDeviceConversionsValueMicros() { - bitField2_ = (bitField2_ & ~0x00000004); - crossDeviceConversionsValueMicros_ = 0L; - onChanged(); - return this; + public java.util.List + getInteractionEventTypesValueList() { + interactionEventTypes_.makeImmutable(); + return interactionEventTypes_; } - - private double crossDeviceConversionsValueByConversionDate_ ; /** *
-     * The sum of cross-device conversions value by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value_by_conversion_date = 373; - * @return Whether the crossDeviceConversionsValueByConversionDate field is set. + * repeated .google.ads.googleads.v24.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 boolean hasCrossDeviceConversionsValueByConversionDate() { - return ((bitField2_ & 0x00000008) != 0); + public int getInteractionEventTypesValue(int index) { + return interactionEventTypes_.getInt(index); } /** *
-     * The sum of cross-device conversions value by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value_by_conversion_date = 373; - * @return The crossDeviceConversionsValueByConversionDate. + * repeated .google.ads.googleads.v24.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. */ - @java.lang.Override - public double getCrossDeviceConversionsValueByConversionDate() { - return crossDeviceConversionsValueByConversionDate_; + public Builder setInteractionEventTypesValue( + int index, int value) { + ensureInteractionEventTypesIsMutable(); + interactionEventTypes_.setInt(index, value); + onChanged(); + return this; } /** *
-     * The sum of cross-device conversions value by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value_by_conversion_date = 373; - * @param value The crossDeviceConversionsValueByConversionDate to set. + * repeated .google.ads.googleads.v24.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 setCrossDeviceConversionsValueByConversionDate(double value) { - - crossDeviceConversionsValueByConversionDate_ = value; - bitField2_ |= 0x00000008; + public Builder addInteractionEventTypesValue(int value) { + ensureInteractionEventTypesIsMutable(); + interactionEventTypes_.addInt(value); onChanged(); return this; } /** *
-     * The sum of cross-device conversions value by conversion date.
-     * Details for the by_conversion_date columns are available at
-     * https://support.google.com/google-ads/answer/9549009.
+     * The types of payable and free interactions.
      * 
* - * optional double cross_device_conversions_value_by_conversion_date = 373; + * repeated .google.ads.googleads.v24.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 clearCrossDeviceConversionsValueByConversionDate() { - bitField2_ = (bitField2_ & ~0x00000008); - crossDeviceConversionsValueByConversionDate_ = 0D; + public Builder addAllInteractionEventTypesValue( + java.lang.Iterable values) { + ensureInteractionEventTypesIsMutable(); + for (int value : values) { + interactionEventTypes_.addInt(value); + } onChanged(); return this; } - private double ctr_ ; + private double invalidClickRate_ ; /** *
-     * The number of clicks your ad receives (Clicks) divided by the number
-     * of times your ad is shown (Impressions).
+     * The percentage of clicks filtered out of your total number of clicks
+     * (filtered + non-filtered clicks) during the reporting period.
      * 
* - * optional double ctr = 174; - * @return Whether the ctr field is set. + * optional double invalid_click_rate = 224; + * @return Whether the invalidClickRate field is set. */ @java.lang.Override - public boolean hasCtr() { - return ((bitField2_ & 0x00000010) != 0); + public boolean hasInvalidClickRate() { + return ((bitField2_ & 0x40000000) != 0); } /** *
-     * The number of clicks your ad receives (Clicks) divided by the number
-     * of times your ad is shown (Impressions).
+     * The percentage of clicks filtered out of your total number of clicks
+     * (filtered + non-filtered clicks) during the reporting period.
      * 
* - * optional double ctr = 174; - * @return The ctr. + * optional double invalid_click_rate = 224; + * @return The invalidClickRate. */ @java.lang.Override - public double getCtr() { - return ctr_; + public double getInvalidClickRate() { + return invalidClickRate_; } /** *
-     * The number of clicks your ad receives (Clicks) divided by the number
-     * of times your ad is shown (Impressions).
+     * The percentage of clicks filtered out of your total number of clicks
+     * (filtered + non-filtered clicks) during the reporting period.
      * 
* - * optional double ctr = 174; - * @param value The ctr to set. + * optional double invalid_click_rate = 224; + * @param value The invalidClickRate to set. * @return This builder for chaining. */ - public Builder setCtr(double value) { + public Builder setInvalidClickRate(double value) { - ctr_ = value; - bitField2_ |= 0x00000010; + invalidClickRate_ = value; + bitField2_ |= 0x40000000; onChanged(); return this; } /** *
-     * The number of clicks your ad receives (Clicks) divided by the number
-     * of times your ad is shown (Impressions).
+     * The percentage of clicks filtered out of your total number of clicks
+     * (filtered + non-filtered clicks) during the reporting period.
      * 
* - * optional double ctr = 174; + * optional double invalid_click_rate = 224; * @return This builder for chaining. */ - public Builder clearCtr() { - bitField2_ = (bitField2_ & ~0x00000010); - ctr_ = 0D; + public Builder clearInvalidClickRate() { + bitField2_ = (bitField2_ & ~0x40000000); + invalidClickRate_ = 0D; onChanged(); return this; } - private double currentModelAttributedConversions_ ; + private long invalidClicks_ ; /** *
-     * 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.
+     * Number of clicks Google considers illegitimate and doesn't charge you for.
      * 
* - * optional double current_model_attributed_conversions = 175; - * @return Whether the currentModelAttributedConversions field is set. + * optional int64 invalid_clicks = 225; + * @return Whether the invalidClicks field is set. */ @java.lang.Override - public boolean hasCurrentModelAttributedConversions() { - return ((bitField2_ & 0x00000020) != 0); + public boolean hasInvalidClicks() { + return ((bitField2_ & 0x80000000) != 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.
+     * Number of clicks Google considers illegitimate and doesn't charge you for.
      * 
* - * optional double current_model_attributed_conversions = 175; - * @return The currentModelAttributedConversions. + * optional int64 invalid_clicks = 225; + * @return The invalidClicks. */ @java.lang.Override - public double getCurrentModelAttributedConversions() { - return currentModelAttributedConversions_; + public long getInvalidClicks() { + return invalidClicks_; } /** *
-     * 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.
+     * Number of clicks Google considers illegitimate and doesn't charge you for.
      * 
* - * optional double current_model_attributed_conversions = 175; - * @param value The currentModelAttributedConversions to set. + * optional int64 invalid_clicks = 225; + * @param value The invalidClicks to set. * @return This builder for chaining. */ - public Builder setCurrentModelAttributedConversions(double value) { + public Builder setInvalidClicks(long value) { - currentModelAttributedConversions_ = value; - bitField2_ |= 0x00000020; + invalidClicks_ = value; + bitField2_ |= 0x80000000; 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.
+     * Number of clicks Google considers illegitimate and doesn't charge you for.
      * 
* - * optional double current_model_attributed_conversions = 175; + * optional int64 invalid_clicks = 225; * @return This builder for chaining. */ - public Builder clearCurrentModelAttributedConversions() { - bitField2_ = (bitField2_ & ~0x00000020); - currentModelAttributedConversions_ = 0D; + public Builder clearInvalidClicks() { + bitField2_ = (bitField2_ & ~0x80000000); + invalidClicks_ = 0L; onChanged(); return this; } - private double currentModelAttributedConversionsFromInteractionsRate_ ; + private double generalInvalidClickRate_ ; /** *
-     * 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.
+     * The percentage of clicks that have been filtered out of your total number
+     * of clicks (filtered + non-filtered clicks) due to being general invalid
+     * clicks. These are clicks Google considers illegitimate that are detected
+     * through routine means of filtration (that is, known invalid data-center
+     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
+     * You're not charged for them, and they don't affect your account statistics.
+     * See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_rate = 176; - * @return Whether the currentModelAttributedConversionsFromInteractionsRate field is set. + * optional double general_invalid_click_rate = 370; + * @return Whether the generalInvalidClickRate field is set. */ @java.lang.Override - public boolean hasCurrentModelAttributedConversionsFromInteractionsRate() { - return ((bitField2_ & 0x00000040) != 0); + public boolean hasGeneralInvalidClickRate() { + return ((bitField3_ & 0x00000001) != 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.
+     * The percentage of clicks that have been filtered out of your total number
+     * of clicks (filtered + non-filtered clicks) due to being general invalid
+     * clicks. These are clicks Google considers illegitimate that are detected
+     * through routine means of filtration (that is, known invalid data-center
+     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
+     * You're not charged for them, and they don't affect your account statistics.
+     * See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_rate = 176; - * @return The currentModelAttributedConversionsFromInteractionsRate. + * optional double general_invalid_click_rate = 370; + * @return The generalInvalidClickRate. */ @java.lang.Override - public double getCurrentModelAttributedConversionsFromInteractionsRate() { - return currentModelAttributedConversionsFromInteractionsRate_; + public double getGeneralInvalidClickRate() { + return generalInvalidClickRate_; } /** *
-     * 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.
+     * The percentage of clicks that have been filtered out of your total number
+     * of clicks (filtered + non-filtered clicks) due to being general invalid
+     * clicks. These are clicks Google considers illegitimate that are detected
+     * through routine means of filtration (that is, known invalid data-center
+     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
+     * You're not charged for them, and they don't affect your account statistics.
+     * See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_rate = 176; - * @param value The currentModelAttributedConversionsFromInteractionsRate to set. + * optional double general_invalid_click_rate = 370; + * @param value The generalInvalidClickRate to set. * @return This builder for chaining. */ - public Builder setCurrentModelAttributedConversionsFromInteractionsRate(double value) { + public Builder setGeneralInvalidClickRate(double value) { - currentModelAttributedConversionsFromInteractionsRate_ = value; - bitField2_ |= 0x00000040; + generalInvalidClickRate_ = value; + bitField3_ |= 0x00000001; 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.
+     * The percentage of clicks that have been filtered out of your total number
+     * of clicks (filtered + non-filtered clicks) due to being general invalid
+     * clicks. These are clicks Google considers illegitimate that are detected
+     * through routine means of filtration (that is, known invalid data-center
+     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
+     * You're not charged for them, and they don't affect your account statistics.
+     * See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_rate = 176; + * optional double general_invalid_click_rate = 370; * @return This builder for chaining. */ - public Builder clearCurrentModelAttributedConversionsFromInteractionsRate() { - bitField2_ = (bitField2_ & ~0x00000040); - currentModelAttributedConversionsFromInteractionsRate_ = 0D; + public Builder clearGeneralInvalidClickRate() { + bitField3_ = (bitField3_ & ~0x00000001); + generalInvalidClickRate_ = 0D; onChanged(); return this; } - private double currentModelAttributedConversionsFromInteractionsValuePerInteraction_ ; + private long generalInvalidClicks_ ; /** *
-     * 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.
+     * Number of general invalid clicks. These are a subset of your invalid clicks
+     * that are detected through routine means of filtration (such as known
+     * invalid data-center traffic, bots and spiders or other crawlers, irregular
+     * patterns, etc.). You're not charged for them, and they don't affect your
+     * account statistics. See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; - * @return Whether the currentModelAttributedConversionsFromInteractionsValuePerInteraction field is set. + * optional int64 general_invalid_clicks = 371; + * @return Whether the generalInvalidClicks field is set. */ @java.lang.Override - public boolean hasCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { - return ((bitField2_ & 0x00000080) != 0); + public boolean hasGeneralInvalidClicks() { + return ((bitField3_ & 0x00000002) != 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.
+     * Number of general invalid clicks. These are a subset of your invalid clicks
+     * that are detected through routine means of filtration (such as known
+     * invalid data-center traffic, bots and spiders or other crawlers, irregular
+     * patterns, etc.). You're not charged for them, and they don't affect your
+     * account statistics. See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; - * @return The currentModelAttributedConversionsFromInteractionsValuePerInteraction. + * optional int64 general_invalid_clicks = 371; + * @return The generalInvalidClicks. */ @java.lang.Override - public double getCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { - return currentModelAttributedConversionsFromInteractionsValuePerInteraction_; + public long getGeneralInvalidClicks() { + return generalInvalidClicks_; } /** *
-     * 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.
+     * Number of general invalid clicks. These are a subset of your invalid clicks
+     * that are detected through routine means of filtration (such as known
+     * invalid data-center traffic, bots and spiders or other crawlers, irregular
+     * patterns, etc.). You're not charged for them, and they don't affect your
+     * account statistics. See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; - * @param value The currentModelAttributedConversionsFromInteractionsValuePerInteraction to set. + * optional int64 general_invalid_clicks = 371; + * @param value The generalInvalidClicks to set. * @return This builder for chaining. */ - public Builder setCurrentModelAttributedConversionsFromInteractionsValuePerInteraction(double value) { + public Builder setGeneralInvalidClicks(long value) { - currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = value; - bitField2_ |= 0x00000080; + generalInvalidClicks_ = value; + bitField3_ |= 0x00000002; 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.
+     * Number of general invalid clicks. These are a subset of your invalid clicks
+     * that are detected through routine means of filtration (such as known
+     * invalid data-center traffic, bots and spiders or other crawlers, irregular
+     * patterns, etc.). You're not charged for them, and they don't affect your
+     * account statistics. See the help page at
+     * https://support.google.com/campaignmanager/answer/6076504 for
+     * details.
      * 
* - * optional double current_model_attributed_conversions_from_interactions_value_per_interaction = 177; + * optional int64 general_invalid_clicks = 371; * @return This builder for chaining. */ - public Builder clearCurrentModelAttributedConversionsFromInteractionsValuePerInteraction() { - bitField2_ = (bitField2_ & ~0x00000080); - currentModelAttributedConversionsFromInteractionsValuePerInteraction_ = 0D; + public Builder clearGeneralInvalidClicks() { + bitField3_ = (bitField3_ & ~0x00000002); + generalInvalidClicks_ = 0L; onChanged(); return this; } - private double currentModelAttributedConversionsValue_ ; + private long messageChats_ ; /** *
-     * 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.
+     * Number of message chats initiated for Click To Message impressions that
+     * were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value = 178; - * @return Whether the currentModelAttributedConversionsValue field is set. + * optional int64 message_chats = 226; + * @return Whether the messageChats field is set. */ @java.lang.Override - public boolean hasCurrentModelAttributedConversionsValue() { - return ((bitField2_ & 0x00000100) != 0); + public boolean hasMessageChats() { + return ((bitField3_ & 0x00000004) != 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.
+     * Number of message chats initiated for Click To Message impressions that
+     * were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value = 178; - * @return The currentModelAttributedConversionsValue. + * optional int64 message_chats = 226; + * @return The messageChats. */ @java.lang.Override - public double getCurrentModelAttributedConversionsValue() { - return currentModelAttributedConversionsValue_; + public long getMessageChats() { + return messageChats_; } /** *
-     * 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.
+     * Number of message chats initiated for Click To Message impressions that
+     * were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value = 178; - * @param value The currentModelAttributedConversionsValue to set. + * optional int64 message_chats = 226; + * @param value The messageChats to set. * @return This builder for chaining. */ - public Builder setCurrentModelAttributedConversionsValue(double value) { + public Builder setMessageChats(long value) { - currentModelAttributedConversionsValue_ = value; - bitField2_ |= 0x00000100; + messageChats_ = value; + bitField3_ |= 0x00000004; 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.
+     * Number of message chats initiated for Click To Message impressions that
+     * were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value = 178; + * optional int64 message_chats = 226; * @return This builder for chaining. */ - public Builder clearCurrentModelAttributedConversionsValue() { - bitField2_ = (bitField2_ & ~0x00000100); - currentModelAttributedConversionsValue_ = 0D; + public Builder clearMessageChats() { + bitField3_ = (bitField3_ & ~0x00000004); + messageChats_ = 0L; onChanged(); return this; } - private double currentModelAttributedConversionsValuePerCost_ ; + private long messageImpressions_ ; /** *
-     * 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.
+     * Number of Click To Message impressions that were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value_per_cost = 179; - * @return Whether the currentModelAttributedConversionsValuePerCost field is set. + * optional int64 message_impressions = 227; + * @return Whether the messageImpressions field is set. */ @java.lang.Override - public boolean hasCurrentModelAttributedConversionsValuePerCost() { - return ((bitField2_ & 0x00000200) != 0); + public boolean hasMessageImpressions() { + return ((bitField3_ & 0x00000008) != 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.
+     * Number of Click To Message impressions that were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value_per_cost = 179; - * @return The currentModelAttributedConversionsValuePerCost. + * optional int64 message_impressions = 227; + * @return The messageImpressions. */ @java.lang.Override - public double getCurrentModelAttributedConversionsValuePerCost() { - return currentModelAttributedConversionsValuePerCost_; + public long getMessageImpressions() { + return messageImpressions_; } /** *
-     * 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.
+     * Number of Click To Message impressions that were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value_per_cost = 179; - * @param value The currentModelAttributedConversionsValuePerCost to set. + * optional int64 message_impressions = 227; + * @param value The messageImpressions to set. * @return This builder for chaining. */ - public Builder setCurrentModelAttributedConversionsValuePerCost(double value) { + public Builder setMessageImpressions(long value) { - currentModelAttributedConversionsValuePerCost_ = value; - bitField2_ |= 0x00000200; + messageImpressions_ = value; + bitField3_ |= 0x00000008; 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.
+     * Number of Click To Message impressions that were message tracking eligible.
      * 
* - * optional double current_model_attributed_conversions_value_per_cost = 179; + * optional int64 message_impressions = 227; * @return This builder for chaining. */ - public Builder clearCurrentModelAttributedConversionsValuePerCost() { - bitField2_ = (bitField2_ & ~0x00000200); - currentModelAttributedConversionsValuePerCost_ = 0D; + public Builder clearMessageImpressions() { + bitField3_ = (bitField3_ & ~0x00000008); + messageImpressions_ = 0L; onChanged(); return this; } - private double engagementRate_ ; + private double messageChatRate_ ; /** *
-     * 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.
+     * 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 engagement_rate = 180; - * @return Whether the engagementRate field is set. + * optional double message_chat_rate = 228; + * @return Whether the messageChatRate field is set. */ @java.lang.Override - public boolean hasEngagementRate() { - return ((bitField2_ & 0x00000400) != 0); + public boolean hasMessageChatRate() { + return ((bitField3_ & 0x00000010) != 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.
+     * 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 engagement_rate = 180; - * @return The engagementRate. + * optional double message_chat_rate = 228; + * @return The messageChatRate. */ @java.lang.Override - public double getEngagementRate() { - return engagementRate_; + public double getMessageChatRate() { + return messageChatRate_; } /** *
-     * 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.
+     * 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 engagement_rate = 180; - * @param value The engagementRate to set. + * optional double message_chat_rate = 228; + * @param value The messageChatRate to set. * @return This builder for chaining. */ - public Builder setEngagementRate(double value) { + public Builder setMessageChatRate(double value) { - engagementRate_ = value; - bitField2_ |= 0x00000400; + messageChatRate_ = value; + bitField3_ |= 0x00000010; 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.
+     * 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 engagement_rate = 180; + * optional double message_chat_rate = 228; * @return This builder for chaining. */ - public Builder clearEngagementRate() { - bitField2_ = (bitField2_ & ~0x00000400); - engagementRate_ = 0D; + public Builder clearMessageChatRate() { + bitField3_ = (bitField3_ & ~0x00000010); + messageChatRate_ = 0D; onChanged(); return this; } - private long engagements_ ; + private double mobileFriendlyClicksPercentage_ ; /** *
-     * 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.
+     * The percentage of mobile clicks that go to a mobile-friendly page.
      * 
* - * optional int64 engagements = 181; - * @return Whether the engagements field is set. + * optional double mobile_friendly_clicks_percentage = 229; + * @return Whether the mobileFriendlyClicksPercentage field is set. */ @java.lang.Override - public boolean hasEngagements() { - return ((bitField2_ & 0x00000800) != 0); + public boolean hasMobileFriendlyClicksPercentage() { + return ((bitField3_ & 0x00000020) != 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.
+     * The percentage of mobile clicks that go to a mobile-friendly page.
      * 
* - * optional int64 engagements = 181; - * @return The engagements. + * optional double mobile_friendly_clicks_percentage = 229; + * @return The mobileFriendlyClicksPercentage. */ @java.lang.Override - public long getEngagements() { - return engagements_; + public double getMobileFriendlyClicksPercentage() { + return mobileFriendlyClicksPercentage_; } /** *
-     * 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.
+     * The percentage of mobile clicks that go to a mobile-friendly page.
      * 
* - * optional int64 engagements = 181; - * @param value The engagements to set. + * optional double mobile_friendly_clicks_percentage = 229; + * @param value The mobileFriendlyClicksPercentage to set. * @return This builder for chaining. */ - public Builder setEngagements(long value) { + public Builder setMobileFriendlyClicksPercentage(double value) { - engagements_ = value; - bitField2_ |= 0x00000800; + mobileFriendlyClicksPercentage_ = value; + bitField3_ |= 0x00000020; 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.
+     * The percentage of mobile clicks that go to a mobile-friendly page.
      * 
* - * optional int64 engagements = 181; + * optional double mobile_friendly_clicks_percentage = 229; * @return This builder for chaining. */ - public Builder clearEngagements() { - bitField2_ = (bitField2_ & ~0x00000800); - engagements_ = 0L; + public Builder clearMobileFriendlyClicksPercentage() { + bitField3_ = (bitField3_ & ~0x00000020); + mobileFriendlyClicksPercentage_ = 0D; onChanged(); return this; } - private double hotelAverageLeadValueMicros_ ; + private double optimizationScoreUplift_ ; /** *
-     * Average lead value based on clicks.
+     * Total optimization score uplift of all recommendations.
      * 
* - * optional double hotel_average_lead_value_micros = 213; - * @return Whether the hotelAverageLeadValueMicros field is set. + * optional double optimization_score_uplift = 247; + * @return Whether the optimizationScoreUplift field is set. */ @java.lang.Override - public boolean hasHotelAverageLeadValueMicros() { - return ((bitField2_ & 0x00001000) != 0); + public boolean hasOptimizationScoreUplift() { + return ((bitField3_ & 0x00000040) != 0); } /** *
-     * Average lead value based on clicks.
+     * Total optimization score uplift of all recommendations.
      * 
* - * optional double hotel_average_lead_value_micros = 213; - * @return The hotelAverageLeadValueMicros. + * optional double optimization_score_uplift = 247; + * @return The optimizationScoreUplift. */ @java.lang.Override - public double getHotelAverageLeadValueMicros() { - return hotelAverageLeadValueMicros_; + public double getOptimizationScoreUplift() { + return optimizationScoreUplift_; } /** *
-     * Average lead value based on clicks.
+     * Total optimization score uplift of all recommendations.
      * 
* - * optional double hotel_average_lead_value_micros = 213; - * @param value The hotelAverageLeadValueMicros to set. + * optional double optimization_score_uplift = 247; + * @param value The optimizationScoreUplift to set. * @return This builder for chaining. */ - public Builder setHotelAverageLeadValueMicros(double value) { + public Builder setOptimizationScoreUplift(double value) { - hotelAverageLeadValueMicros_ = value; - bitField2_ |= 0x00001000; + optimizationScoreUplift_ = value; + bitField3_ |= 0x00000040; onChanged(); return this; } /** *
-     * Average lead value based on clicks.
+     * Total optimization score uplift of all recommendations.
      * 
* - * optional double hotel_average_lead_value_micros = 213; + * optional double optimization_score_uplift = 247; * @return This builder for chaining. */ - public Builder clearHotelAverageLeadValueMicros() { - bitField2_ = (bitField2_ & ~0x00001000); - hotelAverageLeadValueMicros_ = 0D; + public Builder clearOptimizationScoreUplift() { + bitField3_ = (bitField3_ & ~0x00000040); + optimizationScoreUplift_ = 0D; onChanged(); return this; } - - private long hotelCommissionRateMicros_ ; + + 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 ((bitField3_ & 0x00000080) != 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; + } + } /** *
-     * Commission bid rate in micros. A 20% commission is represented as
-     * 200,000.
+     * 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 int64 hotel_commission_rate_micros = 256; - * @return Whether the hotelCommissionRateMicros field is set. + * optional string optimization_score_url = 248; + * @return The bytes for optimizationScoreUrl. */ - @java.lang.Override - public boolean hasHotelCommissionRateMicros() { - return ((bitField2_ & 0x00002000) != 0); + 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; + } } /** *
-     * Commission bid rate in micros. A 20% commission is represented as
-     * 200,000.
+     * 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 int64 hotel_commission_rate_micros = 256; - * @return The hotelCommissionRateMicros. + * optional string optimization_score_url = 248; + * @param value The optimizationScoreUrl to set. + * @return This builder for chaining. */ - @java.lang.Override - public long getHotelCommissionRateMicros() { - return hotelCommissionRateMicros_; + public Builder setOptimizationScoreUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + optimizationScoreUrl_ = value; + bitField3_ |= 0x00000080; + onChanged(); + return this; } /** *
-     * Commission bid rate in micros. A 20% commission is represented as
-     * 200,000.
+     * 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 int64 hotel_commission_rate_micros = 256; - * @param value The hotelCommissionRateMicros to set. + * optional string optimization_score_url = 248; * @return This builder for chaining. */ - public Builder setHotelCommissionRateMicros(long value) { - - hotelCommissionRateMicros_ = value; - bitField2_ |= 0x00002000; + public Builder clearOptimizationScoreUrl() { + optimizationScoreUrl_ = getDefaultInstance().getOptimizationScoreUrl(); + bitField3_ = (bitField3_ & ~0x00000080); onChanged(); return this; } /** *
-     * Commission bid rate in micros. A 20% commission is represented as
-     * 200,000.
+     * 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 int64 hotel_commission_rate_micros = 256; + * optional string optimization_score_url = 248; + * @param value The bytes for optimizationScoreUrl to set. * @return This builder for chaining. */ - public Builder clearHotelCommissionRateMicros() { - bitField2_ = (bitField2_ & ~0x00002000); - hotelCommissionRateMicros_ = 0L; + public Builder setOptimizationScoreUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + optimizationScoreUrl_ = value; + bitField3_ |= 0x00000080; onChanged(); return this; } - private double hotelExpectedCommissionCost_ ; + private long organicClicks_ ; /** *
-     * Expected commission cost. The result of multiplying the commission value
-     * times the hotel_commission_rate in advertiser currency.
+     * 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 double hotel_expected_commission_cost = 257; - * @return Whether the hotelExpectedCommissionCost field is set. + * optional int64 organic_clicks = 230; + * @return Whether the organicClicks field is set. */ @java.lang.Override - public boolean hasHotelExpectedCommissionCost() { - return ((bitField2_ & 0x00004000) != 0); + public boolean hasOrganicClicks() { + return ((bitField3_ & 0x00000100) != 0); } /** *
-     * Expected commission cost. The result of multiplying the commission value
-     * times the hotel_commission_rate in advertiser currency.
+     * 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 double hotel_expected_commission_cost = 257; - * @return The hotelExpectedCommissionCost. + * optional int64 organic_clicks = 230; + * @return The organicClicks. */ @java.lang.Override - public double getHotelExpectedCommissionCost() { - return hotelExpectedCommissionCost_; + public long getOrganicClicks() { + return organicClicks_; } /** *
-     * Expected commission cost. The result of multiplying the commission value
-     * times the hotel_commission_rate in advertiser currency.
+     * 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 double hotel_expected_commission_cost = 257; - * @param value The hotelExpectedCommissionCost to set. + * optional int64 organic_clicks = 230; + * @param value The organicClicks to set. * @return This builder for chaining. */ - public Builder setHotelExpectedCommissionCost(double value) { + public Builder setOrganicClicks(long value) { - hotelExpectedCommissionCost_ = value; - bitField2_ |= 0x00004000; + organicClicks_ = value; + bitField3_ |= 0x00000100; onChanged(); return this; } /** *
-     * Expected commission cost. The result of multiplying the commission value
-     * times the hotel_commission_rate in advertiser currency.
+     * 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 double hotel_expected_commission_cost = 257; + * optional int64 organic_clicks = 230; * @return This builder for chaining. */ - public Builder clearHotelExpectedCommissionCost() { - bitField2_ = (bitField2_ & ~0x00004000); - hotelExpectedCommissionCost_ = 0D; + public Builder clearOrganicClicks() { + bitField3_ = (bitField3_ & ~0x00000100); + organicClicks_ = 0L; onChanged(); return this; } - private double hotelPriceDifferencePercentage_ ; + private double organicClicksPerQuery_ ; /** *
-     * The average price difference between the price offered by reporting hotel
-     * advertiser and the cheapest price offered by the competing advertiser.
+     * 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 hotel_price_difference_percentage = 214; - * @return Whether the hotelPriceDifferencePercentage field is set. + * optional double organic_clicks_per_query = 231; + * @return Whether the organicClicksPerQuery field is set. */ @java.lang.Override - public boolean hasHotelPriceDifferencePercentage() { - return ((bitField2_ & 0x00008000) != 0); + public boolean hasOrganicClicksPerQuery() { + return ((bitField3_ & 0x00000200) != 0); } /** *
-     * The average price difference between the price offered by reporting hotel
-     * advertiser and the cheapest price offered by the competing advertiser.
+     * 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 hotel_price_difference_percentage = 214; - * @return The hotelPriceDifferencePercentage. + * optional double organic_clicks_per_query = 231; + * @return The organicClicksPerQuery. */ @java.lang.Override - public double getHotelPriceDifferencePercentage() { - return hotelPriceDifferencePercentage_; + public double getOrganicClicksPerQuery() { + return organicClicksPerQuery_; } /** *
-     * The average price difference between the price offered by reporting hotel
-     * advertiser and the cheapest price offered by the competing advertiser.
+     * 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 hotel_price_difference_percentage = 214; - * @param value The hotelPriceDifferencePercentage to set. + * optional double organic_clicks_per_query = 231; + * @param value The organicClicksPerQuery to set. * @return This builder for chaining. */ - public Builder setHotelPriceDifferencePercentage(double value) { + public Builder setOrganicClicksPerQuery(double value) { - hotelPriceDifferencePercentage_ = value; - bitField2_ |= 0x00008000; + organicClicksPerQuery_ = value; + bitField3_ |= 0x00000200; onChanged(); return this; } /** *
-     * The average price difference between the price offered by reporting hotel
-     * advertiser and the cheapest price offered by the competing advertiser.
+     * 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 hotel_price_difference_percentage = 214; + * optional double organic_clicks_per_query = 231; * @return This builder for chaining. */ - public Builder clearHotelPriceDifferencePercentage() { - bitField2_ = (bitField2_ & ~0x00008000); - hotelPriceDifferencePercentage_ = 0D; + public Builder clearOrganicClicksPerQuery() { + bitField3_ = (bitField3_ & ~0x00000200); + organicClicksPerQuery_ = 0D; onChanged(); return this; } - private long hotelEligibleImpressions_ ; + private long organicImpressions_ ; /** *
-     * The number of impressions that hotel partners could have had given their
-     * feed performance.
+     * 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 hotel_eligible_impressions = 215; - * @return Whether the hotelEligibleImpressions field is set. + * optional int64 organic_impressions = 232; + * @return Whether the organicImpressions field is set. */ @java.lang.Override - public boolean hasHotelEligibleImpressions() { - return ((bitField2_ & 0x00010000) != 0); + public boolean hasOrganicImpressions() { + return ((bitField3_ & 0x00000400) != 0); } /** *
-     * The number of impressions that hotel partners could have had given their
-     * feed performance.
+     * 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 hotel_eligible_impressions = 215; - * @return The hotelEligibleImpressions. + * optional int64 organic_impressions = 232; + * @return The organicImpressions. */ @java.lang.Override - public long getHotelEligibleImpressions() { - return hotelEligibleImpressions_; + public long getOrganicImpressions() { + return organicImpressions_; } /** *
-     * The number of impressions that hotel partners could have had given their
-     * feed performance.
+     * 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 hotel_eligible_impressions = 215; - * @param value The hotelEligibleImpressions to set. + * optional int64 organic_impressions = 232; + * @param value The organicImpressions to set. * @return This builder for chaining. */ - public Builder setHotelEligibleImpressions(long value) { + public Builder setOrganicImpressions(long value) { - hotelEligibleImpressions_ = value; - bitField2_ |= 0x00010000; + organicImpressions_ = value; + bitField3_ |= 0x00000400; onChanged(); return this; } /** *
-     * The number of impressions that hotel partners could have had given their
-     * feed performance.
+     * 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 hotel_eligible_impressions = 215; + * optional int64 organic_impressions = 232; * @return This builder for chaining. */ - public Builder clearHotelEligibleImpressions() { - bitField2_ = (bitField2_ & ~0x00010000); - hotelEligibleImpressions_ = 0L; + public Builder clearOrganicImpressions() { + bitField3_ = (bitField3_ & ~0x00000400); + organicImpressions_ = 0L; onChanged(); return this; } - private int historicalCreativeQualityScore_ = 0; - /** - *
-     * The creative historical quality score.
-     * 
- * - * .google.ads.googleads.v24.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_; - } + private double organicImpressionsPerQuery_ ; /** *
-     * The creative historical quality score.
+     * 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.
      * 
* - * .google.ads.googleads.v24.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. + * optional double organic_impressions_per_query = 233; + * @return Whether the organicImpressionsPerQuery field is set. */ - public Builder setHistoricalCreativeQualityScoreValue(int value) { - historicalCreativeQualityScore_ = value; - bitField2_ |= 0x00020000; - onChanged(); - return this; + @java.lang.Override + public boolean hasOrganicImpressionsPerQuery() { + return ((bitField3_ & 0x00000800) != 0); } /** *
-     * The creative historical quality score.
+     * 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.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; - * @return The historicalCreativeQualityScore. + * optional double organic_impressions_per_query = 233; + * @return The organicImpressionsPerQuery. */ @java.lang.Override - public com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalCreativeQualityScore() { - com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.forNumber(historicalCreativeQualityScore_); - return result == null ? com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; + public double getOrganicImpressionsPerQuery() { + return organicImpressionsPerQuery_; } /** *
-     * The creative historical quality score.
+     * 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.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; - * @param value The historicalCreativeQualityScore to set. + * optional double organic_impressions_per_query = 233; + * @param value The organicImpressionsPerQuery to set. * @return This builder for chaining. */ - public Builder setHistoricalCreativeQualityScore(com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket value) { - if (value == null) { throw new NullPointerException(); } - bitField2_ |= 0x00020000; - historicalCreativeQualityScore_ = value.getNumber(); + public Builder setOrganicImpressionsPerQuery(double value) { + + organicImpressionsPerQuery_ = value; + bitField3_ |= 0x00000800; onChanged(); return this; } /** *
-     * The creative historical quality score.
+     * 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.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; + * optional double organic_impressions_per_query = 233; * @return This builder for chaining. */ - public Builder clearHistoricalCreativeQualityScore() { - bitField2_ = (bitField2_ & ~0x00020000); - historicalCreativeQualityScore_ = 0; + public Builder clearOrganicImpressionsPerQuery() { + bitField3_ = (bitField3_ & ~0x00000800); + organicImpressionsPerQuery_ = 0D; onChanged(); return this; } - private int historicalLandingPageQualityScore_ = 0; - /** - *
-     * The quality of historical landing page experience.
-     * 
- * - * .google.ads.googleads.v24.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_; - } + private long organicQueries_ ; /** *
-     * The quality of historical landing page experience.
+     * 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.
      * 
* - * .google.ads.googleads.v24.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. + * optional int64 organic_queries = 234; + * @return Whether the organicQueries field is set. */ - public Builder setHistoricalLandingPageQualityScoreValue(int value) { - historicalLandingPageQualityScore_ = value; - bitField2_ |= 0x00040000; - onChanged(); - return this; + @java.lang.Override + public boolean hasOrganicQueries() { + return ((bitField3_ & 0x00001000) != 0); } /** *
-     * The quality of historical landing page experience.
+     * 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.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; - * @return The historicalLandingPageQualityScore. + * optional int64 organic_queries = 234; + * @return The organicQueries. */ @java.lang.Override - public com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalLandingPageQualityScore() { - com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.forNumber(historicalLandingPageQualityScore_); - return result == null ? com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; + public long getOrganicQueries() { + return organicQueries_; } /** *
-     * The quality of historical landing page experience.
+     * 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.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; - * @param value The historicalLandingPageQualityScore to set. + * optional int64 organic_queries = 234; + * @param value The organicQueries to set. * @return This builder for chaining. */ - public Builder setHistoricalLandingPageQualityScore(com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket value) { - if (value == null) { throw new NullPointerException(); } - bitField2_ |= 0x00040000; - historicalLandingPageQualityScore_ = value.getNumber(); + public Builder setOrganicQueries(long value) { + + organicQueries_ = value; + bitField3_ |= 0x00001000; onChanged(); return this; } /** *
-     * The quality of historical landing page experience.
+     * 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.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; + * optional int64 organic_queries = 234; * @return This builder for chaining. */ - public Builder clearHistoricalLandingPageQualityScore() { - bitField2_ = (bitField2_ & ~0x00040000); - historicalLandingPageQualityScore_ = 0; + public Builder clearOrganicQueries() { + bitField3_ = (bitField3_ & ~0x00001000); + organicQueries_ = 0L; onChanged(); return this; } - private long historicalQualityScore_ ; + private double percentNewVisitors_ ; /** *
-     * The historical quality score.
+     * Percentage of first-time sessions (from people who had never visited your
+     * site before). Imported from Google Analytics.
      * 
* - * optional int64 historical_quality_score = 216; - * @return Whether the historicalQualityScore field is set. + * optional double percent_new_visitors = 235; + * @return Whether the percentNewVisitors field is set. */ @java.lang.Override - public boolean hasHistoricalQualityScore() { - return ((bitField2_ & 0x00080000) != 0); + public boolean hasPercentNewVisitors() { + return ((bitField3_ & 0x00002000) != 0); } /** *
-     * The historical quality score.
+     * Percentage of first-time sessions (from people who had never visited your
+     * site before). Imported from Google Analytics.
      * 
* - * optional int64 historical_quality_score = 216; - * @return The historicalQualityScore. + * optional double percent_new_visitors = 235; + * @return The percentNewVisitors. */ @java.lang.Override - public long getHistoricalQualityScore() { - return historicalQualityScore_; + public double getPercentNewVisitors() { + return percentNewVisitors_; } /** *
-     * The historical quality score.
+     * Percentage of first-time sessions (from people who had never visited your
+     * site before). Imported from Google Analytics.
      * 
* - * optional int64 historical_quality_score = 216; - * @param value The historicalQualityScore to set. + * optional double percent_new_visitors = 235; + * @param value The percentNewVisitors to set. * @return This builder for chaining. */ - public Builder setHistoricalQualityScore(long value) { + public Builder setPercentNewVisitors(double value) { - historicalQualityScore_ = value; - bitField2_ |= 0x00080000; + percentNewVisitors_ = value; + bitField3_ |= 0x00002000; onChanged(); return this; } /** *
-     * The historical quality score.
+     * Percentage of first-time sessions (from people who had never visited your
+     * site before). Imported from Google Analytics.
      * 
* - * optional int64 historical_quality_score = 216; + * optional double percent_new_visitors = 235; * @return This builder for chaining. */ - public Builder clearHistoricalQualityScore() { - bitField2_ = (bitField2_ & ~0x00080000); - historicalQualityScore_ = 0L; + public Builder clearPercentNewVisitors() { + bitField3_ = (bitField3_ & ~0x00002000); + percentNewVisitors_ = 0D; onChanged(); return this; } - private int historicalSearchPredictedCtr_ = 0; - /** - *
-     * The historical search predicted click through rate (CTR).
-     * 
- * - * .google.ads.googleads.v24.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_; - } + private long phoneCalls_ ; /** *
-     * The historical search predicted click through rate (CTR).
+     * Number of offline phone calls.
      * 
* - * .google.ads.googleads.v24.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. + * optional int64 phone_calls = 236; + * @return Whether the phoneCalls field is set. */ - public Builder setHistoricalSearchPredictedCtrValue(int value) { - historicalSearchPredictedCtr_ = value; - bitField2_ |= 0x00100000; - onChanged(); - return this; + @java.lang.Override + public boolean hasPhoneCalls() { + return ((bitField3_ & 0x00004000) != 0); } /** *
-     * The historical search predicted click through rate (CTR).
+     * Number of offline phone calls.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; - * @return The historicalSearchPredictedCtr. + * optional int64 phone_calls = 236; + * @return The phoneCalls. */ @java.lang.Override - public com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket getHistoricalSearchPredictedCtr() { - com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket result = com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.forNumber(historicalSearchPredictedCtr_); - return result == null ? com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket.UNRECOGNIZED : result; + public long getPhoneCalls() { + return phoneCalls_; } /** *
-     * The historical search predicted click through rate (CTR).
+     * Number of offline phone calls.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; - * @param value The historicalSearchPredictedCtr to set. + * optional int64 phone_calls = 236; + * @param value The phoneCalls to set. * @return This builder for chaining. */ - public Builder setHistoricalSearchPredictedCtr(com.google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket value) { - if (value == null) { throw new NullPointerException(); } - bitField2_ |= 0x00100000; - historicalSearchPredictedCtr_ = value.getNumber(); + public Builder setPhoneCalls(long value) { + + phoneCalls_ = value; + bitField3_ |= 0x00004000; onChanged(); return this; } /** *
-     * The historical search predicted click through rate (CTR).
+     * Number of offline phone calls.
      * 
* - * .google.ads.googleads.v24.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; + * optional int64 phone_calls = 236; * @return This builder for chaining. */ - public Builder clearHistoricalSearchPredictedCtr() { - bitField2_ = (bitField2_ & ~0x00100000); - historicalSearchPredictedCtr_ = 0; + public Builder clearPhoneCalls() { + bitField3_ = (bitField3_ & ~0x00004000); + phoneCalls_ = 0L; onChanged(); return this; } - private long gmailForwards_ ; + private long phoneImpressions_ ; /** *
-     * The number of times the ad was forwarded to someone else as a message.
+     * Number of offline phone impressions.
      * 
* - * optional int64 gmail_forwards = 217; - * @return Whether the gmailForwards field is set. + * optional int64 phone_impressions = 237; + * @return Whether the phoneImpressions field is set. */ @java.lang.Override - public boolean hasGmailForwards() { - return ((bitField2_ & 0x00200000) != 0); + public boolean hasPhoneImpressions() { + return ((bitField3_ & 0x00008000) != 0); } /** *
-     * The number of times the ad was forwarded to someone else as a message.
+     * Number of offline phone impressions.
      * 
* - * optional int64 gmail_forwards = 217; - * @return The gmailForwards. + * optional int64 phone_impressions = 237; + * @return The phoneImpressions. */ @java.lang.Override - public long getGmailForwards() { - return gmailForwards_; + public long getPhoneImpressions() { + return phoneImpressions_; } /** *
-     * The number of times the ad was forwarded to someone else as a message.
+     * Number of offline phone impressions.
      * 
* - * optional int64 gmail_forwards = 217; - * @param value The gmailForwards to set. + * optional int64 phone_impressions = 237; + * @param value The phoneImpressions to set. * @return This builder for chaining. */ - public Builder setGmailForwards(long value) { + public Builder setPhoneImpressions(long value) { - gmailForwards_ = value; - bitField2_ |= 0x00200000; + phoneImpressions_ = value; + bitField3_ |= 0x00008000; onChanged(); return this; } /** *
-     * The number of times the ad was forwarded to someone else as a message.
+     * Number of offline phone impressions.
      * 
* - * optional int64 gmail_forwards = 217; + * optional int64 phone_impressions = 237; * @return This builder for chaining. */ - public Builder clearGmailForwards() { - bitField2_ = (bitField2_ & ~0x00200000); - gmailForwards_ = 0L; + public Builder clearPhoneImpressions() { + bitField3_ = (bitField3_ & ~0x00008000); + phoneImpressions_ = 0L; onChanged(); return this; } - private long gmailSaves_ ; + private double phoneThroughRate_ ; /** *
-     * The number of times someone has saved your Gmail ad to their inbox as a
-     * message.
+     * Number of phone calls received (phone_calls) divided by the number of
+     * times your phone number is shown (phone_impressions).
      * 
* - * optional int64 gmail_saves = 218; - * @return Whether the gmailSaves field is set. + * optional double phone_through_rate = 238; + * @return Whether the phoneThroughRate field is set. */ @java.lang.Override - public boolean hasGmailSaves() { - return ((bitField2_ & 0x00400000) != 0); + public boolean hasPhoneThroughRate() { + return ((bitField3_ & 0x00010000) != 0); } /** *
-     * The number of times someone has saved your Gmail ad to their inbox as a
-     * message.
+     * Number of phone calls received (phone_calls) divided by the number of
+     * times your phone number is shown (phone_impressions).
      * 
* - * optional int64 gmail_saves = 218; - * @return The gmailSaves. + * optional double phone_through_rate = 238; + * @return The phoneThroughRate. */ @java.lang.Override - public long getGmailSaves() { - return gmailSaves_; + public double getPhoneThroughRate() { + return phoneThroughRate_; } /** *
-     * The number of times someone has saved your Gmail ad to their inbox as a
-     * message.
+     * Number of phone calls received (phone_calls) divided by the number of
+     * times your phone number is shown (phone_impressions).
      * 
* - * optional int64 gmail_saves = 218; - * @param value The gmailSaves to set. + * optional double phone_through_rate = 238; + * @param value The phoneThroughRate to set. * @return This builder for chaining. */ - public Builder setGmailSaves(long value) { + public Builder setPhoneThroughRate(double value) { - gmailSaves_ = value; - bitField2_ |= 0x00400000; + phoneThroughRate_ = value; + bitField3_ |= 0x00010000; onChanged(); return this; } /** *
-     * The number of times someone has saved your Gmail ad to their inbox as a
-     * message.
+     * Number of phone calls received (phone_calls) divided by the number of
+     * times your phone number is shown (phone_impressions).
      * 
* - * optional int64 gmail_saves = 218; + * optional double phone_through_rate = 238; * @return This builder for chaining. */ - public Builder clearGmailSaves() { - bitField2_ = (bitField2_ & ~0x00400000); - gmailSaves_ = 0L; + public Builder clearPhoneThroughRate() { + bitField3_ = (bitField3_ & ~0x00010000); + phoneThroughRate_ = 0D; onChanged(); return this; } - private long gmailSecondaryClicks_ ; + private double relativeCtr_ ; /** *
-     * The number of clicks to the landing page on the expanded state of Gmail
-     * ads.
+     * 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 int64 gmail_secondary_clicks = 219; - * @return Whether the gmailSecondaryClicks field is set. + * optional double relative_ctr = 239; + * @return Whether the relativeCtr field is set. */ @java.lang.Override - public boolean hasGmailSecondaryClicks() { - return ((bitField2_ & 0x00800000) != 0); + public boolean hasRelativeCtr() { + return ((bitField3_ & 0x00020000) != 0); } /** *
-     * The number of clicks to the landing page on the expanded state of Gmail
-     * ads.
+     * 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 int64 gmail_secondary_clicks = 219; - * @return The gmailSecondaryClicks. + * optional double relative_ctr = 239; + * @return The relativeCtr. */ @java.lang.Override - public long getGmailSecondaryClicks() { - return gmailSecondaryClicks_; + public double getRelativeCtr() { + return relativeCtr_; } /** *
-     * The number of clicks to the landing page on the expanded state of Gmail
-     * ads.
+     * 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 int64 gmail_secondary_clicks = 219; - * @param value The gmailSecondaryClicks to set. + * optional double relative_ctr = 239; + * @param value The relativeCtr to set. * @return This builder for chaining. */ - public Builder setGmailSecondaryClicks(long value) { + public Builder setRelativeCtr(double value) { - gmailSecondaryClicks_ = value; - bitField2_ |= 0x00800000; + relativeCtr_ = value; + bitField3_ |= 0x00020000; onChanged(); return this; } /** *
-     * The number of clicks to the landing page on the expanded state of Gmail
-     * ads.
+     * 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 int64 gmail_secondary_clicks = 219; + * optional double relative_ctr = 239; * @return This builder for chaining. */ - public Builder clearGmailSecondaryClicks() { - bitField2_ = (bitField2_ & ~0x00800000); - gmailSecondaryClicks_ = 0L; + public Builder clearRelativeCtr() { + bitField3_ = (bitField3_ & ~0x00020000); + relativeCtr_ = 0D; onChanged(); return this; } - private long impressionsFromStoreReach_ ; + private double searchAbsoluteTopImpressionShare_ ; /** *
-     * The number of times a business's location-based ad was shown.
-     *
-     * This metric applies to feed items only.
+     * 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 int64 impressions_from_store_reach = 220; - * @return Whether the impressionsFromStoreReach field is set. + * optional double search_absolute_top_impression_share = 136; + * @return Whether the searchAbsoluteTopImpressionShare field is set. */ @java.lang.Override - public boolean hasImpressionsFromStoreReach() { - return ((bitField2_ & 0x01000000) != 0); + public boolean hasSearchAbsoluteTopImpressionShare() { + return ((bitField3_ & 0x00040000) != 0); } /** *
-     * The number of times a business's location-based ad was shown.
-     *
-     * This metric applies to feed items only.
+     * 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 int64 impressions_from_store_reach = 220; - * @return The impressionsFromStoreReach. + * optional double search_absolute_top_impression_share = 136; + * @return The searchAbsoluteTopImpressionShare. */ @java.lang.Override - public long getImpressionsFromStoreReach() { - return impressionsFromStoreReach_; + public double getSearchAbsoluteTopImpressionShare() { + return searchAbsoluteTopImpressionShare_; } /** *
-     * The number of times a business's location-based ad was shown.
-     *
-     * This metric applies to feed items only.
+     * 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 int64 impressions_from_store_reach = 220; - * @param value The impressionsFromStoreReach to set. + * optional double search_absolute_top_impression_share = 136; + * @param value The searchAbsoluteTopImpressionShare to set. * @return This builder for chaining. */ - public Builder setImpressionsFromStoreReach(long value) { + public Builder setSearchAbsoluteTopImpressionShare(double value) { - impressionsFromStoreReach_ = value; - bitField2_ |= 0x01000000; + searchAbsoluteTopImpressionShare_ = value; + bitField3_ |= 0x00040000; onChanged(); return this; } /** *
-     * The number of times a business's location-based ad was shown.
-     *
-     * This metric applies to feed items only.
+     * 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 int64 impressions_from_store_reach = 220; + * optional double search_absolute_top_impression_share = 136; * @return This builder for chaining. */ - public Builder clearImpressionsFromStoreReach() { - bitField2_ = (bitField2_ & ~0x01000000); - impressionsFromStoreReach_ = 0L; + public Builder clearSearchAbsoluteTopImpressionShare() { + bitField3_ = (bitField3_ & ~0x00040000); + searchAbsoluteTopImpressionShare_ = 0D; onChanged(); return this; } - private long impressions_ ; + private double searchBudgetLostAbsoluteTopImpressionShare_ ; /** *
-     * Count of how often your ad has appeared on a search results page or
-     * website on the Google Network.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 int64 impressions = 221; - * @return Whether the impressions field is set. + * optional double search_budget_lost_absolute_top_impression_share = 137; + * @return Whether the searchBudgetLostAbsoluteTopImpressionShare field is set. */ @java.lang.Override - public boolean hasImpressions() { - return ((bitField2_ & 0x02000000) != 0); + public boolean hasSearchBudgetLostAbsoluteTopImpressionShare() { + return ((bitField3_ & 0x00080000) != 0); } /** *
-     * Count of how often your ad has appeared on a search results page or
-     * website on the Google Network.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 int64 impressions = 221; - * @return The impressions. + * optional double search_budget_lost_absolute_top_impression_share = 137; + * @return The searchBudgetLostAbsoluteTopImpressionShare. */ @java.lang.Override - public long getImpressions() { - return impressions_; + public double getSearchBudgetLostAbsoluteTopImpressionShare() { + return searchBudgetLostAbsoluteTopImpressionShare_; } /** *
-     * Count of how often your ad has appeared on a search results page or
-     * website on the Google Network.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 int64 impressions = 221; - * @param value The impressions to set. + * optional double search_budget_lost_absolute_top_impression_share = 137; + * @param value The searchBudgetLostAbsoluteTopImpressionShare to set. * @return This builder for chaining. */ - public Builder setImpressions(long value) { + public Builder setSearchBudgetLostAbsoluteTopImpressionShare(double value) { - impressions_ = value; - bitField2_ |= 0x02000000; + searchBudgetLostAbsoluteTopImpressionShare_ = value; + bitField3_ |= 0x00080000; onChanged(); return this; } /** *
-     * Count of how often your ad has appeared on a search results page or
-     * website on the Google Network.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 int64 impressions = 221; + * optional double search_budget_lost_absolute_top_impression_share = 137; * @return This builder for chaining. */ - public Builder clearImpressions() { - bitField2_ = (bitField2_ & ~0x02000000); - impressions_ = 0L; + public Builder clearSearchBudgetLostAbsoluteTopImpressionShare() { + bitField3_ = (bitField3_ & ~0x00080000); + searchBudgetLostAbsoluteTopImpressionShare_ = 0D; onChanged(); return this; } - private double interactionRate_ ; + private double searchBudgetLostImpressionShare_ ; /** *
-     * 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.
+     * 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 interaction_rate = 222; - * @return Whether the interactionRate field is set. + * optional double search_budget_lost_impression_share = 138; + * @return Whether the searchBudgetLostImpressionShare field is set. */ @java.lang.Override - public boolean hasInteractionRate() { - return ((bitField2_ & 0x04000000) != 0); + public boolean hasSearchBudgetLostImpressionShare() { + return ((bitField3_ & 0x00100000) != 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.
+     * 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 interaction_rate = 222; - * @return The interactionRate. + * optional double search_budget_lost_impression_share = 138; + * @return The searchBudgetLostImpressionShare. */ @java.lang.Override - public double getInteractionRate() { - return interactionRate_; + public double getSearchBudgetLostImpressionShare() { + return searchBudgetLostImpressionShare_; } /** *
-     * 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.
+     * 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 interaction_rate = 222; - * @param value The interactionRate to set. + * optional double search_budget_lost_impression_share = 138; + * @param value The searchBudgetLostImpressionShare to set. * @return This builder for chaining. */ - public Builder setInteractionRate(double value) { + public Builder setSearchBudgetLostImpressionShare(double value) { - interactionRate_ = value; - bitField2_ |= 0x04000000; + searchBudgetLostImpressionShare_ = value; + bitField3_ |= 0x00100000; 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.
+     * 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 interaction_rate = 222; + * optional double search_budget_lost_impression_share = 138; * @return This builder for chaining. */ - public Builder clearInteractionRate() { - bitField2_ = (bitField2_ & ~0x04000000); - interactionRate_ = 0D; + public Builder clearSearchBudgetLostImpressionShare() { + bitField3_ = (bitField3_ & ~0x00100000); + searchBudgetLostImpressionShare_ = 0D; onChanged(); return this; } - private long interactions_ ; + private double searchBudgetLostTopImpressionShare_ ; /** *
-     * 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.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 int64 interactions = 223; - * @return Whether the interactions field is set. + * optional double search_budget_lost_top_impression_share = 139; + * @return Whether the searchBudgetLostTopImpressionShare field is set. */ @java.lang.Override - public boolean hasInteractions() { - return ((bitField2_ & 0x08000000) != 0); + public boolean hasSearchBudgetLostTopImpressionShare() { + return ((bitField3_ & 0x00200000) != 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.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 int64 interactions = 223; - * @return The interactions. + * optional double search_budget_lost_top_impression_share = 139; + * @return The searchBudgetLostTopImpressionShare. */ @java.lang.Override - public long getInteractions() { - return interactions_; + public double getSearchBudgetLostTopImpressionShare() { + return searchBudgetLostTopImpressionShare_; } /** *
-     * 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.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 int64 interactions = 223; - * @param value The interactions to set. + * optional double search_budget_lost_top_impression_share = 139; + * @param value The searchBudgetLostTopImpressionShare to set. * @return This builder for chaining. */ - public Builder setInteractions(long value) { + public Builder setSearchBudgetLostTopImpressionShare(double value) { - interactions_ = value; - bitField2_ |= 0x08000000; + searchBudgetLostTopImpressionShare_ = value; + bitField3_ |= 0x00200000; 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.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 int64 interactions = 223; + * optional double search_budget_lost_top_impression_share = 139; * @return This builder for chaining. */ - public Builder clearInteractions() { - bitField2_ = (bitField2_ & ~0x08000000); - interactions_ = 0L; + public Builder clearSearchBudgetLostTopImpressionShare() { + bitField3_ = (bitField3_ & ~0x00200000); + searchBudgetLostTopImpressionShare_ = 0D; onChanged(); return this; } - private com.google.protobuf.Internal.IntList interactionEventTypes_ = emptyIntList(); - private void ensureInteractionEventTypesIsMutable() { - if (!interactionEventTypes_.isModifiable()) { - interactionEventTypes_ = makeMutableCopy(interactionEventTypes_); - } - bitField2_ |= 0x10000000; - } + private double searchClickShare_ ; /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @return A list containing the interactionEventTypes. + * optional double search_click_share = 140; + * @return Whether the searchClickShare field is set. */ - public java.util.List getInteractionEventTypesList() { - return new com.google.protobuf.Internal.IntListAdapter< - com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType>(interactionEventTypes_, interactionEventTypes_converter_); + @java.lang.Override + public boolean hasSearchClickShare() { + return ((bitField3_ & 0x00400000) != 0); } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @return The count of interactionEventTypes. + * optional double search_click_share = 140; + * @return The searchClickShare. */ - public int getInteractionEventTypesCount() { - return interactionEventTypes_.size(); + @java.lang.Override + public double getSearchClickShare() { + return searchClickShare_; } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @param index The index of the element to return. - * @return The interactionEventTypes at the given index. + * optional double search_click_share = 140; + * @param value The searchClickShare to set. + * @return This builder for chaining. */ - public com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType getInteractionEventTypes(int index) { - return interactionEventTypes_converter_.convert(interactionEventTypes_.getInt(index)); + public Builder setSearchClickShare(double value) { + + searchClickShare_ = value; + bitField3_ |= 0x00400000; + onChanged(); + return this; } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @param index The index to set the value at. - * @param value The interactionEventTypes to set. + * optional double search_click_share = 140; * @return This builder for chaining. */ - public Builder setInteractionEventTypes( - int index, com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType value) { - if (value == null) { throw new NullPointerException(); } - ensureInteractionEventTypesIsMutable(); - interactionEventTypes_.setInt(index, value.getNumber()); + public Builder clearSearchClickShare() { + bitField3_ = (bitField3_ & ~0x00400000); + searchClickShare_ = 0D; onChanged(); return this; } + + private double searchExactMatchImpressionShare_ ; /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @param value The interactionEventTypes to add. - * @return This builder for chaining. + * optional double search_exact_match_impression_share = 141; + * @return Whether the searchExactMatchImpressionShare field is set. */ - public Builder addInteractionEventTypes(com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType value) { - if (value == null) { throw new NullPointerException(); } - ensureInteractionEventTypesIsMutable(); - interactionEventTypes_.addInt(value.getNumber()); - onChanged(); - return this; + @java.lang.Override + public boolean hasSearchExactMatchImpressionShare() { + return ((bitField3_ & 0x00800000) != 0); } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @param values The interactionEventTypes to add. - * @return This builder for chaining. + * optional double search_exact_match_impression_share = 141; + * @return The searchExactMatchImpressionShare. */ - public Builder addAllInteractionEventTypes( - java.lang.Iterable values) { - ensureInteractionEventTypesIsMutable(); - for (com.google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType value : values) { - interactionEventTypes_.addInt(value.getNumber()); - } - onChanged(); - return this; + @java.lang.Override + public double getSearchExactMatchImpressionShare() { + return searchExactMatchImpressionShare_; } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; + * optional double search_exact_match_impression_share = 141; + * @param value The searchExactMatchImpressionShare to set. * @return This builder for chaining. */ - public Builder clearInteractionEventTypes() { - interactionEventTypes_ = emptyIntList(); - bitField2_ = (bitField2_ & ~0x10000000); + public Builder setSearchExactMatchImpressionShare(double value) { + + searchExactMatchImpressionShare_ = value; + bitField3_ |= 0x00800000; onChanged(); return this; } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @return A list containing the enum numeric values on the wire for interactionEventTypes. + * optional double search_exact_match_impression_share = 141; + * @return This builder for chaining. */ - public java.util.List - getInteractionEventTypesValueList() { - interactionEventTypes_.makeImmutable(); - return interactionEventTypes_; + public Builder clearSearchExactMatchImpressionShare() { + bitField3_ = (bitField3_ & ~0x00800000); + searchExactMatchImpressionShare_ = 0D; + onChanged(); + return this; } + + private double searchImpressionShare_ ; /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.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. + * optional double search_impression_share = 142; + * @return Whether the searchImpressionShare field is set. */ - public int getInteractionEventTypesValue(int index) { - return interactionEventTypes_.getInt(index); + @java.lang.Override + public boolean hasSearchImpressionShare() { + return ((bitField3_ & 0x01000000) != 0); } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.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. + * optional double search_impression_share = 142; + * @return The searchImpressionShare. */ - public Builder setInteractionEventTypesValue( - int index, int value) { - ensureInteractionEventTypesIsMutable(); - interactionEventTypes_.setInt(index, value); - onChanged(); - return this; + @java.lang.Override + public double getSearchImpressionShare() { + return searchImpressionShare_; } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @param value The enum numeric value on the wire for interactionEventTypes to add. + * optional double search_impression_share = 142; + * @param value The searchImpressionShare to set. * @return This builder for chaining. */ - public Builder addInteractionEventTypesValue(int value) { - ensureInteractionEventTypesIsMutable(); - interactionEventTypes_.addInt(value); + public Builder setSearchImpressionShare(double value) { + + searchImpressionShare_ = value; + bitField3_ |= 0x01000000; onChanged(); return this; } /** *
-     * The types of payable and free interactions.
+     * 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.
      * 
* - * repeated .google.ads.googleads.v24.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100; - * @param values The enum numeric values on the wire for interactionEventTypes to add. + * optional double search_impression_share = 142; * @return This builder for chaining. */ - public Builder addAllInteractionEventTypesValue( - java.lang.Iterable values) { - ensureInteractionEventTypesIsMutable(); - for (int value : values) { - interactionEventTypes_.addInt(value); - } + public Builder clearSearchImpressionShare() { + bitField3_ = (bitField3_ & ~0x01000000); + searchImpressionShare_ = 0D; onChanged(); return this; } - private double invalidClickRate_ ; + private double searchRankLostAbsoluteTopImpressionShare_ ; /** *
-     * The percentage of clicks filtered out of your total number of clicks
-     * (filtered + non-filtered clicks) during the reporting period.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 invalid_click_rate = 224; - * @return Whether the invalidClickRate field is set. + * optional double search_rank_lost_absolute_top_impression_share = 143; + * @return Whether the searchRankLostAbsoluteTopImpressionShare field is set. */ @java.lang.Override - public boolean hasInvalidClickRate() { - return ((bitField2_ & 0x20000000) != 0); + public boolean hasSearchRankLostAbsoluteTopImpressionShare() { + return ((bitField3_ & 0x02000000) != 0); } /** *
-     * The percentage of clicks filtered out of your total number of clicks
-     * (filtered + non-filtered clicks) during the reporting period.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 invalid_click_rate = 224; - * @return The invalidClickRate. + * optional double search_rank_lost_absolute_top_impression_share = 143; + * @return The searchRankLostAbsoluteTopImpressionShare. */ @java.lang.Override - public double getInvalidClickRate() { - return invalidClickRate_; + public double getSearchRankLostAbsoluteTopImpressionShare() { + return searchRankLostAbsoluteTopImpressionShare_; } /** *
-     * The percentage of clicks filtered out of your total number of clicks
-     * (filtered + non-filtered clicks) during the reporting period.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 invalid_click_rate = 224; - * @param value The invalidClickRate to set. + * optional double search_rank_lost_absolute_top_impression_share = 143; + * @param value The searchRankLostAbsoluteTopImpressionShare to set. * @return This builder for chaining. */ - public Builder setInvalidClickRate(double value) { + public Builder setSearchRankLostAbsoluteTopImpressionShare(double value) { - invalidClickRate_ = value; - bitField2_ |= 0x20000000; + searchRankLostAbsoluteTopImpressionShare_ = value; + bitField3_ |= 0x02000000; onChanged(); return this; } /** *
-     * The percentage of clicks filtered out of your total number of clicks
-     * (filtered + non-filtered clicks) during the reporting period.
+     * The number estimating how often your ad wasn't the very first ad among the
+     * top ads in the 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 invalid_click_rate = 224; + * optional double search_rank_lost_absolute_top_impression_share = 143; * @return This builder for chaining. */ - public Builder clearInvalidClickRate() { - bitField2_ = (bitField2_ & ~0x20000000); - invalidClickRate_ = 0D; + public Builder clearSearchRankLostAbsoluteTopImpressionShare() { + bitField3_ = (bitField3_ & ~0x02000000); + searchRankLostAbsoluteTopImpressionShare_ = 0D; onChanged(); return this; } - private long invalidClicks_ ; + private double searchRankLostImpressionShare_ ; /** *
-     * Number of clicks Google considers illegitimate and doesn't charge you for.
+     * 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 int64 invalid_clicks = 225; - * @return Whether the invalidClicks field is set. + * optional double search_rank_lost_impression_share = 144; + * @return Whether the searchRankLostImpressionShare field is set. */ @java.lang.Override - public boolean hasInvalidClicks() { - return ((bitField2_ & 0x40000000) != 0); + public boolean hasSearchRankLostImpressionShare() { + return ((bitField3_ & 0x04000000) != 0); } /** *
-     * Number of clicks Google considers illegitimate and doesn't charge you for.
+     * 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 int64 invalid_clicks = 225; - * @return The invalidClicks. + * optional double search_rank_lost_impression_share = 144; + * @return The searchRankLostImpressionShare. */ @java.lang.Override - public long getInvalidClicks() { - return invalidClicks_; + public double getSearchRankLostImpressionShare() { + return searchRankLostImpressionShare_; } /** *
-     * Number of clicks Google considers illegitimate and doesn't charge you for.
+     * 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 int64 invalid_clicks = 225; - * @param value The invalidClicks to set. + * optional double search_rank_lost_impression_share = 144; + * @param value The searchRankLostImpressionShare to set. * @return This builder for chaining. */ - public Builder setInvalidClicks(long value) { + public Builder setSearchRankLostImpressionShare(double value) { - invalidClicks_ = value; - bitField2_ |= 0x40000000; + searchRankLostImpressionShare_ = value; + bitField3_ |= 0x04000000; onChanged(); return this; } /** *
-     * Number of clicks Google considers illegitimate and doesn't charge you for.
+     * 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 int64 invalid_clicks = 225; + * optional double search_rank_lost_impression_share = 144; * @return This builder for chaining. */ - public Builder clearInvalidClicks() { - bitField2_ = (bitField2_ & ~0x40000000); - invalidClicks_ = 0L; + public Builder clearSearchRankLostImpressionShare() { + bitField3_ = (bitField3_ & ~0x04000000); + searchRankLostImpressionShare_ = 0D; onChanged(); return this; } - private double generalInvalidClickRate_ ; + private double searchRankLostTopImpressionShare_ ; /** *
-     * The percentage of clicks that have been filtered out of your total number
-     * of clicks (filtered + non-filtered clicks) due to being general invalid
-     * clicks. These are clicks Google considers illegitimate that are detected
-     * through routine means of filtration (that is, known invalid data-center
-     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
-     * You're not charged for them, and they don't affect your account statistics.
-     * See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 general_invalid_click_rate = 370; - * @return Whether the generalInvalidClickRate field is set. + * optional double search_rank_lost_top_impression_share = 145; + * @return Whether the searchRankLostTopImpressionShare field is set. */ @java.lang.Override - public boolean hasGeneralInvalidClickRate() { - return ((bitField2_ & 0x80000000) != 0); + public boolean hasSearchRankLostTopImpressionShare() { + return ((bitField3_ & 0x08000000) != 0); } /** *
-     * The percentage of clicks that have been filtered out of your total number
-     * of clicks (filtered + non-filtered clicks) due to being general invalid
-     * clicks. These are clicks Google considers illegitimate that are detected
-     * through routine means of filtration (that is, known invalid data-center
-     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
-     * You're not charged for them, and they don't affect your account statistics.
-     * See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 general_invalid_click_rate = 370; - * @return The generalInvalidClickRate. + * optional double search_rank_lost_top_impression_share = 145; + * @return The searchRankLostTopImpressionShare. */ @java.lang.Override - public double getGeneralInvalidClickRate() { - return generalInvalidClickRate_; + public double getSearchRankLostTopImpressionShare() { + return searchRankLostTopImpressionShare_; } /** *
-     * The percentage of clicks that have been filtered out of your total number
-     * of clicks (filtered + non-filtered clicks) due to being general invalid
-     * clicks. These are clicks Google considers illegitimate that are detected
-     * through routine means of filtration (that is, known invalid data-center
-     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
-     * You're not charged for them, and they don't affect your account statistics.
-     * See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 general_invalid_click_rate = 370; - * @param value The generalInvalidClickRate to set. + * optional double search_rank_lost_top_impression_share = 145; + * @param value The searchRankLostTopImpressionShare to set. * @return This builder for chaining. */ - public Builder setGeneralInvalidClickRate(double value) { + public Builder setSearchRankLostTopImpressionShare(double value) { - generalInvalidClickRate_ = value; - bitField2_ |= 0x80000000; + searchRankLostTopImpressionShare_ = value; + bitField3_ |= 0x08000000; onChanged(); return this; } /** *
-     * The percentage of clicks that have been filtered out of your total number
-     * of clicks (filtered + non-filtered clicks) due to being general invalid
-     * clicks. These are clicks Google considers illegitimate that are detected
-     * through routine means of filtration (that is, known invalid data-center
-     * traffic, bots and spiders or other crawlers, irregular patterns, etc).
-     * You're not charged for them, and they don't affect your account statistics.
-     * See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The number estimating how often your ad didn't show adjacent to the top
+     * 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 general_invalid_click_rate = 370; + * optional double search_rank_lost_top_impression_share = 145; * @return This builder for chaining. */ - public Builder clearGeneralInvalidClickRate() { - bitField2_ = (bitField2_ & ~0x80000000); - generalInvalidClickRate_ = 0D; + public Builder clearSearchRankLostTopImpressionShare() { + bitField3_ = (bitField3_ & ~0x08000000); + searchRankLostTopImpressionShare_ = 0D; onChanged(); return this; } - private long generalInvalidClicks_ ; + private double searchTopImpressionShare_ ; /** *
-     * Number of general invalid clicks. These are a subset of your invalid clicks
-     * that are detected through routine means of filtration (such as known
-     * invalid data-center traffic, bots and spiders or other crawlers, irregular
-     * patterns, etc.). You're not charged for them, and they don't affect your
-     * account statistics. See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The impressions you've received among the top ads compared to the estimated
+     * number of impressions you were eligible to receive among the top ads.
+     * 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.
+     *
+     * Top ads are generally above the top organic results, although they may show
+     * below the top organic results on certain queries.
      * 
* - * optional int64 general_invalid_clicks = 371; - * @return Whether the generalInvalidClicks field is set. + * optional double search_top_impression_share = 146; + * @return Whether the searchTopImpressionShare field is set. */ @java.lang.Override - public boolean hasGeneralInvalidClicks() { - return ((bitField3_ & 0x00000001) != 0); + public boolean hasSearchTopImpressionShare() { + return ((bitField3_ & 0x10000000) != 0); } /** *
-     * Number of general invalid clicks. These are a subset of your invalid clicks
-     * that are detected through routine means of filtration (such as known
-     * invalid data-center traffic, bots and spiders or other crawlers, irregular
-     * patterns, etc.). You're not charged for them, and they don't affect your
-     * account statistics. See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The impressions you've received among the top ads compared to the estimated
+     * number of impressions you were eligible to receive among the top ads.
+     * 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.
+     *
+     * Top ads are generally above the top organic results, although they may show
+     * below the top organic results on certain queries.
      * 
* - * optional int64 general_invalid_clicks = 371; - * @return The generalInvalidClicks. + * optional double search_top_impression_share = 146; + * @return The searchTopImpressionShare. */ @java.lang.Override - public long getGeneralInvalidClicks() { - return generalInvalidClicks_; + public double getSearchTopImpressionShare() { + return searchTopImpressionShare_; } /** *
-     * Number of general invalid clicks. These are a subset of your invalid clicks
-     * that are detected through routine means of filtration (such as known
-     * invalid data-center traffic, bots and spiders or other crawlers, irregular
-     * patterns, etc.). You're not charged for them, and they don't affect your
-     * account statistics. See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The impressions you've received among the top ads compared to the estimated
+     * number of impressions you were eligible to receive among the top ads.
+     * 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.
+     *
+     * Top ads are generally above the top organic results, although they may show
+     * below the top organic results on certain queries.
      * 
* - * optional int64 general_invalid_clicks = 371; - * @param value The generalInvalidClicks to set. + * optional double search_top_impression_share = 146; + * @param value The searchTopImpressionShare to set. * @return This builder for chaining. */ - public Builder setGeneralInvalidClicks(long value) { + public Builder setSearchTopImpressionShare(double value) { - generalInvalidClicks_ = value; - bitField3_ |= 0x00000001; + searchTopImpressionShare_ = value; + bitField3_ |= 0x10000000; onChanged(); return this; } /** *
-     * Number of general invalid clicks. These are a subset of your invalid clicks
-     * that are detected through routine means of filtration (such as known
-     * invalid data-center traffic, bots and spiders or other crawlers, irregular
-     * patterns, etc.). You're not charged for them, and they don't affect your
-     * account statistics. See the help page at
-     * https://support.google.com/campaignmanager/answer/6076504 for
-     * details.
+     * The impressions you've received among the top ads compared to the estimated
+     * number of impressions you were eligible to receive among the top ads.
+     * 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.
+     *
+     * Top ads are generally above the top organic results, although they may show
+     * below the top organic results on certain queries.
      * 
* - * optional int64 general_invalid_clicks = 371; + * optional double search_top_impression_share = 146; * @return This builder for chaining. */ - public Builder clearGeneralInvalidClicks() { - bitField3_ = (bitField3_ & ~0x00000001); - generalInvalidClicks_ = 0L; + public Builder clearSearchTopImpressionShare() { + bitField3_ = (bitField3_ & ~0x10000000); + searchTopImpressionShare_ = 0D; onChanged(); return this; } - private long messageChats_ ; + private com.google.ads.googleads.v24.common.SearchVolumeRange searchVolume_; + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.SearchVolumeRange, com.google.ads.googleads.v24.common.SearchVolumeRange.Builder, com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder> searchVolumeBuilder_; /** *
-     * Number of message chats initiated for Click To Message impressions that
-     * were message tracking eligible.
+     * Search volume range for a search term insight category.
      * 
* - * optional int64 message_chats = 226; - * @return Whether the messageChats field is set. + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * @return Whether the searchVolume field is set. */ - @java.lang.Override - public boolean hasMessageChats() { - return ((bitField3_ & 0x00000002) != 0); + public boolean hasSearchVolume() { + return ((bitField3_ & 0x20000000) != 0); } /** *
-     * Number of message chats initiated for Click To Message impressions that
-     * were message tracking eligible.
+     * Search volume range for a search term insight category.
      * 
* - * optional int64 message_chats = 226; - * @return The messageChats. + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * @return The searchVolume. */ - @java.lang.Override - public long getMessageChats() { - return messageChats_; + public com.google.ads.googleads.v24.common.SearchVolumeRange getSearchVolume() { + if (searchVolumeBuilder_ == null) { + return searchVolume_ == null ? com.google.ads.googleads.v24.common.SearchVolumeRange.getDefaultInstance() : searchVolume_; + } else { + return searchVolumeBuilder_.getMessage(); + } } /** *
-     * Number of message chats initiated for Click To Message impressions that
-     * were message tracking eligible.
+     * Search volume range for a search term insight category.
      * 
* - * optional int64 message_chats = 226; - * @param value The messageChats to set. - * @return This builder for chaining. + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; */ - public Builder setMessageChats(long value) { - - messageChats_ = value; - bitField3_ |= 0x00000002; + public Builder setSearchVolume(com.google.ads.googleads.v24.common.SearchVolumeRange value) { + if (searchVolumeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + searchVolume_ = value; + } else { + searchVolumeBuilder_.setMessage(value); + } + bitField3_ |= 0x20000000; + onChanged(); + return this; + } + /** + *
+     * Search volume range for a search term insight category.
+     * 
+ * + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + */ + public Builder setSearchVolume( + com.google.ads.googleads.v24.common.SearchVolumeRange.Builder builderForValue) { + if (searchVolumeBuilder_ == null) { + searchVolume_ = builderForValue.build(); + } else { + searchVolumeBuilder_.setMessage(builderForValue.build()); + } + bitField3_ |= 0x20000000; onChanged(); return this; } /** *
-     * Number of message chats initiated for Click To Message impressions that
-     * were message tracking eligible.
+     * Search volume range for a search term insight category.
+     * 
+ * + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + */ + public Builder mergeSearchVolume(com.google.ads.googleads.v24.common.SearchVolumeRange value) { + if (searchVolumeBuilder_ == null) { + if (((bitField3_ & 0x20000000) != 0) && + searchVolume_ != null && + searchVolume_ != com.google.ads.googleads.v24.common.SearchVolumeRange.getDefaultInstance()) { + getSearchVolumeBuilder().mergeFrom(value); + } else { + searchVolume_ = value; + } + } else { + searchVolumeBuilder_.mergeFrom(value); + } + if (searchVolume_ != null) { + bitField3_ |= 0x20000000; + onChanged(); + } + return this; + } + /** + *
+     * Search volume range for a search term insight category.
      * 
* - * optional int64 message_chats = 226; - * @return This builder for chaining. + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; */ - public Builder clearMessageChats() { - bitField3_ = (bitField3_ & ~0x00000002); - messageChats_ = 0L; + public Builder clearSearchVolume() { + bitField3_ = (bitField3_ & ~0x20000000); + searchVolume_ = null; + if (searchVolumeBuilder_ != null) { + searchVolumeBuilder_.dispose(); + searchVolumeBuilder_ = null; + } 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 ((bitField3_ & 0x00000004) != 0); - } /** *
-     * Number of Click To Message impressions that were message tracking eligible.
+     * Search volume range for a search term insight category.
      * 
* - * optional int64 message_impressions = 227; - * @return The messageImpressions. + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; */ - @java.lang.Override - public long getMessageImpressions() { - return messageImpressions_; + public com.google.ads.googleads.v24.common.SearchVolumeRange.Builder getSearchVolumeBuilder() { + bitField3_ |= 0x20000000; + onChanged(); + return internalGetSearchVolumeFieldBuilder().getBuilder(); } /** *
-     * Number of Click To Message impressions that were message tracking eligible.
+     * Search volume range for a search term insight category.
      * 
* - * optional int64 message_impressions = 227; - * @param value The messageImpressions to set. - * @return This builder for chaining. + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; */ - public Builder setMessageImpressions(long value) { - - messageImpressions_ = value; - bitField3_ |= 0x00000004; - onChanged(); - return this; + public com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder getSearchVolumeOrBuilder() { + if (searchVolumeBuilder_ != null) { + return searchVolumeBuilder_.getMessageOrBuilder(); + } else { + return searchVolume_ == null ? + com.google.ads.googleads.v24.common.SearchVolumeRange.getDefaultInstance() : searchVolume_; + } } /** *
-     * Number of Click To Message impressions that were message tracking eligible.
+     * Search volume range for a search term insight category.
      * 
* - * optional int64 message_impressions = 227; - * @return This builder for chaining. + * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; */ - public Builder clearMessageImpressions() { - bitField3_ = (bitField3_ & ~0x00000004); - messageImpressions_ = 0L; - onChanged(); - return this; + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.SearchVolumeRange, com.google.ads.googleads.v24.common.SearchVolumeRange.Builder, com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder> + internalGetSearchVolumeFieldBuilder() { + if (searchVolumeBuilder_ == null) { + searchVolumeBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.SearchVolumeRange, com.google.ads.googleads.v24.common.SearchVolumeRange.Builder, com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder>( + getSearchVolume(), + getParentForChildren(), + isClean()); + searchVolume_ = null; + } + return searchVolumeBuilder_; } - private double messageChatRate_ ; + private long speedScore_ ; /** *
-     * 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.
+     * 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 double message_chat_rate = 228; - * @return Whether the messageChatRate field is set. + * optional int64 speed_score = 147; + * @return Whether the speedScore field is set. */ @java.lang.Override - public boolean hasMessageChatRate() { - return ((bitField3_ & 0x00000008) != 0); + public boolean hasSpeedScore() { + return ((bitField3_ & 0x40000000) != 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.
+     * 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 double message_chat_rate = 228; - * @return The messageChatRate. + * optional int64 speed_score = 147; + * @return The speedScore. */ @java.lang.Override - public double getMessageChatRate() { - return messageChatRate_; + public long getSpeedScore() { + return speedScore_; } /** *
-     * 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.
+     * 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 double message_chat_rate = 228; - * @param value The messageChatRate to set. + * optional int64 speed_score = 147; + * @param value The speedScore to set. * @return This builder for chaining. */ - public Builder setMessageChatRate(double value) { + public Builder setSpeedScore(long value) { - messageChatRate_ = value; - bitField3_ |= 0x00000008; + speedScore_ = value; + bitField3_ |= 0x40000000; 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.
+     * 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 double message_chat_rate = 228; + * optional int64 speed_score = 147; * @return This builder for chaining. */ - public Builder clearMessageChatRate() { - bitField3_ = (bitField3_ & ~0x00000008); - messageChatRate_ = 0D; + public Builder clearSpeedScore() { + bitField3_ = (bitField3_ & ~0x40000000); + speedScore_ = 0L; onChanged(); return this; } - private double mobileFriendlyClicksPercentage_ ; + private long averageTargetCpaMicros_ ; /** *
-     * The percentage of mobile clicks that go to a mobile-friendly page.
+     * The average Target CPA, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
      * 
* - * optional double mobile_friendly_clicks_percentage = 229; - * @return Whether the mobileFriendlyClicksPercentage field is set. + * optional int64 average_target_cpa_micros = 290; + * @return Whether the averageTargetCpaMicros field is set. */ @java.lang.Override - public boolean hasMobileFriendlyClicksPercentage() { - return ((bitField3_ & 0x00000010) != 0); + public boolean hasAverageTargetCpaMicros() { + return ((bitField3_ & 0x80000000) != 0); } /** *
-     * The percentage of mobile clicks that go to a mobile-friendly page.
+     * The average Target CPA, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
      * 
* - * optional double mobile_friendly_clicks_percentage = 229; - * @return The mobileFriendlyClicksPercentage. + * optional int64 average_target_cpa_micros = 290; + * @return The averageTargetCpaMicros. */ @java.lang.Override - public double getMobileFriendlyClicksPercentage() { - return mobileFriendlyClicksPercentage_; + public long getAverageTargetCpaMicros() { + return averageTargetCpaMicros_; } /** *
-     * The percentage of mobile clicks that go to a mobile-friendly page.
+     * The average Target CPA, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
      * 
* - * optional double mobile_friendly_clicks_percentage = 229; - * @param value The mobileFriendlyClicksPercentage to set. + * optional int64 average_target_cpa_micros = 290; + * @param value The averageTargetCpaMicros to set. * @return This builder for chaining. */ - public Builder setMobileFriendlyClicksPercentage(double value) { + public Builder setAverageTargetCpaMicros(long value) { - mobileFriendlyClicksPercentage_ = value; - bitField3_ |= 0x00000010; + averageTargetCpaMicros_ = value; + bitField3_ |= 0x80000000; onChanged(); return this; } /** *
-     * The percentage of mobile clicks that go to a mobile-friendly page.
+     * The average Target CPA, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
      * 
* - * optional double mobile_friendly_clicks_percentage = 229; + * optional int64 average_target_cpa_micros = 290; * @return This builder for chaining. */ - public Builder clearMobileFriendlyClicksPercentage() { - bitField3_ = (bitField3_ & ~0x00000010); - mobileFriendlyClicksPercentage_ = 0D; + public Builder clearAverageTargetCpaMicros() { + bitField3_ = (bitField3_ & ~0x80000000); + averageTargetCpaMicros_ = 0L; onChanged(); return this; } - private double optimizationScoreUplift_ ; + private double averageTargetRoas_ ; /** *
-     * Total optimization score uplift of all recommendations.
+     * The average Target ROAS, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
      * 
* - * optional double optimization_score_uplift = 247; - * @return Whether the optimizationScoreUplift field is set. + * optional double average_target_roas = 250; + * @return Whether the averageTargetRoas field is set. */ @java.lang.Override - public boolean hasOptimizationScoreUplift() { - return ((bitField3_ & 0x00000020) != 0); + public boolean hasAverageTargetRoas() { + return ((bitField4_ & 0x00000001) != 0); } /** *
-     * Total optimization score uplift of all recommendations.
+     * The average Target ROAS, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
      * 
* - * optional double optimization_score_uplift = 247; - * @return The optimizationScoreUplift. + * optional double average_target_roas = 250; + * @return The averageTargetRoas. */ @java.lang.Override - public double getOptimizationScoreUplift() { - return optimizationScoreUplift_; + public double getAverageTargetRoas() { + return averageTargetRoas_; } /** *
-     * Total optimization score uplift of all recommendations.
+     * The average Target ROAS, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
      * 
* - * optional double optimization_score_uplift = 247; - * @param value The optimizationScoreUplift to set. + * optional double average_target_roas = 250; + * @param value The averageTargetRoas to set. * @return This builder for chaining. */ - public Builder setOptimizationScoreUplift(double value) { + public Builder setAverageTargetRoas(double value) { - optimizationScoreUplift_ = value; - bitField3_ |= 0x00000020; + averageTargetRoas_ = value; + bitField4_ |= 0x00000001; onChanged(); return this; } /** *
-     * Total optimization score uplift of all recommendations.
+     * The average Target ROAS, or unset if not available (for example, for
+     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
      * 
* - * optional double optimization_score_uplift = 247; + * optional double average_target_roas = 250; * @return This builder for chaining. */ - public Builder clearOptimizationScoreUplift() { - bitField3_ = (bitField3_ & ~0x00000020); - optimizationScoreUplift_ = 0D; + public Builder clearAverageTargetRoas() { + bitField4_ = (bitField4_ & ~0x00000001); + averageTargetRoas_ = 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 ((bitField3_ & 0x00000040) != 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; - } - } + private double topImpressionPercentage_ ; /** *
-     * 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.
+     * The percent of your ad impressions that are shown adjacent to the top
+     * organic search results.
      * 
* - * optional string optimization_score_url = 248; - * @return The bytes for optimizationScoreUrl. + * optional double top_impression_percentage = 148; + * @return Whether the topImpressionPercentage field is set. */ - 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; - } + @java.lang.Override + public boolean hasTopImpressionPercentage() { + return ((bitField4_ & 0x00000002) != 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.
+     * The percent of your ad impressions that are shown adjacent to the top
+     * organic search results.
      * 
* - * optional string optimization_score_url = 248; - * @param value The optimizationScoreUrl to set. - * @return This builder for chaining. + * optional double top_impression_percentage = 148; + * @return The topImpressionPercentage. */ - public Builder setOptimizationScoreUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - optimizationScoreUrl_ = value; - bitField3_ |= 0x00000040; - onChanged(); - return this; + @java.lang.Override + public double getTopImpressionPercentage() { + return topImpressionPercentage_; } /** *
-     * 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.
+     * The percent of your ad impressions that are shown adjacent to the top
+     * organic search results.
      * 
* - * optional string optimization_score_url = 248; + * optional double top_impression_percentage = 148; + * @param value The topImpressionPercentage to set. * @return This builder for chaining. */ - public Builder clearOptimizationScoreUrl() { - optimizationScoreUrl_ = getDefaultInstance().getOptimizationScoreUrl(); - bitField3_ = (bitField3_ & ~0x00000040); + public Builder setTopImpressionPercentage(double value) { + + topImpressionPercentage_ = value; + bitField4_ |= 0x00000002; 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.
+     * The percent of your ad impressions that are shown adjacent to the top
+     * organic search results.
      * 
* - * optional string optimization_score_url = 248; - * @param value The bytes for optimizationScoreUrl to set. + * optional double top_impression_percentage = 148; * @return This builder for chaining. */ - public Builder setOptimizationScoreUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - optimizationScoreUrl_ = value; - bitField3_ |= 0x00000040; + public Builder clearTopImpressionPercentage() { + bitField4_ = (bitField4_ & ~0x00000002); + topImpressionPercentage_ = 0D; onChanged(); return this; } - private long organicClicks_ ; + private double validAcceleratedMobilePagesClicksPercentage_ ; /** *
-     * 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.
+     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
+     * that reach a valid AMP page.
      * 
* - * optional int64 organic_clicks = 230; - * @return Whether the organicClicks field is set. + * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; + * @return Whether the validAcceleratedMobilePagesClicksPercentage field is set. */ @java.lang.Override - public boolean hasOrganicClicks() { - return ((bitField3_ & 0x00000080) != 0); + public boolean hasValidAcceleratedMobilePagesClicksPercentage() { + return ((bitField4_ & 0x00000004) != 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.
+     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
+     * that reach a valid AMP page.
      * 
* - * optional int64 organic_clicks = 230; - * @return The organicClicks. + * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; + * @return The validAcceleratedMobilePagesClicksPercentage. */ @java.lang.Override - public long getOrganicClicks() { - return organicClicks_; + public double getValidAcceleratedMobilePagesClicksPercentage() { + return validAcceleratedMobilePagesClicksPercentage_; } /** *
-     * 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.
+     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
+     * that reach a valid AMP page.
      * 
* - * optional int64 organic_clicks = 230; - * @param value The organicClicks to set. + * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; + * @param value The validAcceleratedMobilePagesClicksPercentage to set. * @return This builder for chaining. */ - public Builder setOrganicClicks(long value) { + public Builder setValidAcceleratedMobilePagesClicksPercentage(double value) { - organicClicks_ = value; - bitField3_ |= 0x00000080; + validAcceleratedMobilePagesClicksPercentage_ = value; + bitField4_ |= 0x00000004; 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.
+     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
+     * that reach a valid AMP page.
      * 
* - * optional int64 organic_clicks = 230; + * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; * @return This builder for chaining. */ - public Builder clearOrganicClicks() { - bitField3_ = (bitField3_ & ~0x00000080); - organicClicks_ = 0L; + public Builder clearValidAcceleratedMobilePagesClicksPercentage() { + bitField4_ = (bitField4_ & ~0x00000004); + validAcceleratedMobilePagesClicksPercentage_ = 0D; onChanged(); return this; } - private double organicClicksPerQuery_ ; + private double valuePerAllConversions_ ; /** *
-     * 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.
+     * The value of all conversions divided by the number of all conversions.
      * 
* - * optional double organic_clicks_per_query = 231; - * @return Whether the organicClicksPerQuery field is set. + * optional double value_per_all_conversions = 150; + * @return Whether the valuePerAllConversions field is set. */ @java.lang.Override - public boolean hasOrganicClicksPerQuery() { - return ((bitField3_ & 0x00000100) != 0); + public boolean hasValuePerAllConversions() { + return ((bitField4_ & 0x00000008) != 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.
+     * The value of all conversions divided by the number of all conversions.
      * 
* - * optional double organic_clicks_per_query = 231; - * @return The organicClicksPerQuery. + * optional double value_per_all_conversions = 150; + * @return The valuePerAllConversions. */ @java.lang.Override - public double getOrganicClicksPerQuery() { - return organicClicksPerQuery_; + public double getValuePerAllConversions() { + return valuePerAllConversions_; } /** *
-     * 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.
+     * The value of all conversions divided by the number of all conversions.
      * 
* - * optional double organic_clicks_per_query = 231; - * @param value The organicClicksPerQuery to set. + * optional double value_per_all_conversions = 150; + * @param value The valuePerAllConversions to set. * @return This builder for chaining. */ - public Builder setOrganicClicksPerQuery(double value) { + public Builder setValuePerAllConversions(double value) { - organicClicksPerQuery_ = value; - bitField3_ |= 0x00000100; + valuePerAllConversions_ = value; + bitField4_ |= 0x00000008; 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.
+     * The value of all conversions divided by the number of all conversions.
      * 
* - * optional double organic_clicks_per_query = 231; + * optional double value_per_all_conversions = 150; * @return This builder for chaining. */ - public Builder clearOrganicClicksPerQuery() { - bitField3_ = (bitField3_ & ~0x00000100); - organicClicksPerQuery_ = 0D; + public Builder clearValuePerAllConversions() { + bitField4_ = (bitField4_ & ~0x00000008); + valuePerAllConversions_ = 0D; onChanged(); return this; } - private long organicImpressions_ ; + private double valuePerAllConversionsByConversionDate_ ; /** *
-     * 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.
+     * 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 int64 organic_impressions = 232; - * @return Whether the organicImpressions field is set. + * optional double value_per_all_conversions_by_conversion_date = 244; + * @return Whether the valuePerAllConversionsByConversionDate field is set. */ @java.lang.Override - public boolean hasOrganicImpressions() { - return ((bitField3_ & 0x00000200) != 0); + public boolean hasValuePerAllConversionsByConversionDate() { + return ((bitField4_ & 0x00000010) != 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.
+     * 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 int64 organic_impressions = 232; - * @return The organicImpressions. + * optional double value_per_all_conversions_by_conversion_date = 244; + * @return The valuePerAllConversionsByConversionDate. */ @java.lang.Override - public long getOrganicImpressions() { - return organicImpressions_; + public double getValuePerAllConversionsByConversionDate() { + return valuePerAllConversionsByConversionDate_; } /** *
-     * 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.
+     * 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 int64 organic_impressions = 232; - * @param value The organicImpressions to set. + * optional double value_per_all_conversions_by_conversion_date = 244; + * @param value The valuePerAllConversionsByConversionDate to set. * @return This builder for chaining. */ - public Builder setOrganicImpressions(long value) { + public Builder setValuePerAllConversionsByConversionDate(double value) { - organicImpressions_ = value; - bitField3_ |= 0x00000200; + valuePerAllConversionsByConversionDate_ = value; + bitField4_ |= 0x00000010; 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.
+     * 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 int64 organic_impressions = 232; + * optional double value_per_all_conversions_by_conversion_date = 244; * @return This builder for chaining. */ - public Builder clearOrganicImpressions() { - bitField3_ = (bitField3_ & ~0x00000200); - organicImpressions_ = 0L; + public Builder clearValuePerAllConversionsByConversionDate() { + bitField4_ = (bitField4_ & ~0x00000010); + valuePerAllConversionsByConversionDate_ = 0D; onChanged(); return this; } - private double organicImpressionsPerQuery_ ; + private double valuePerConversion_ ; /** *
-     * 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.
+     * 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 organic_impressions_per_query = 233; - * @return Whether the organicImpressionsPerQuery field is set. + * optional double value_per_conversion = 151; + * @return Whether the valuePerConversion field is set. */ @java.lang.Override - public boolean hasOrganicImpressionsPerQuery() { - return ((bitField3_ & 0x00000400) != 0); + public boolean hasValuePerConversion() { + return ((bitField4_ & 0x00000020) != 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.
+     * 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 organic_impressions_per_query = 233; - * @return The organicImpressionsPerQuery. + * optional double value_per_conversion = 151; + * @return The valuePerConversion. */ @java.lang.Override - public double getOrganicImpressionsPerQuery() { - return organicImpressionsPerQuery_; + public double getValuePerConversion() { + return valuePerConversion_; } /** *
-     * 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.
+     * 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 organic_impressions_per_query = 233; - * @param value The organicImpressionsPerQuery to set. + * optional double value_per_conversion = 151; + * @param value The valuePerConversion to set. * @return This builder for chaining. */ - public Builder setOrganicImpressionsPerQuery(double value) { + public Builder setValuePerConversion(double value) { - organicImpressionsPerQuery_ = value; - bitField3_ |= 0x00000400; + valuePerConversion_ = value; + bitField4_ |= 0x00000020; 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.
+     * 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 organic_impressions_per_query = 233; + * optional double value_per_conversion = 151; * @return This builder for chaining. */ - public Builder clearOrganicImpressionsPerQuery() { - bitField3_ = (bitField3_ & ~0x00000400); - organicImpressionsPerQuery_ = 0D; + public Builder clearValuePerConversion() { + bitField4_ = (bitField4_ & ~0x00000020); + valuePerConversion_ = 0D; onChanged(); return this; } - private long organicQueries_ ; + private double valuePerConversionsByConversionDate_ ; /** *
-     * 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.
+     * 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 int64 organic_queries = 234; - * @return Whether the organicQueries field is set. + * optional double value_per_conversions_by_conversion_date = 245; + * @return Whether the valuePerConversionsByConversionDate field is set. */ @java.lang.Override - public boolean hasOrganicQueries() { - return ((bitField3_ & 0x00000800) != 0); + public boolean hasValuePerConversionsByConversionDate() { + return ((bitField4_ & 0x00000040) != 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.
+     * 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 int64 organic_queries = 234; - * @return The organicQueries. + * optional double value_per_conversions_by_conversion_date = 245; + * @return The valuePerConversionsByConversionDate. */ @java.lang.Override - public long getOrganicQueries() { - return organicQueries_; + public double getValuePerConversionsByConversionDate() { + return valuePerConversionsByConversionDate_; } /** *
-     * 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.
+     * 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 int64 organic_queries = 234; - * @param value The organicQueries to set. + * optional double value_per_conversions_by_conversion_date = 245; + * @param value The valuePerConversionsByConversionDate to set. * @return This builder for chaining. */ - public Builder setOrganicQueries(long value) { + public Builder setValuePerConversionsByConversionDate(double value) { - organicQueries_ = value; - bitField3_ |= 0x00000800; + valuePerConversionsByConversionDate_ = value; + bitField4_ |= 0x00000040; 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.
+     * 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 int64 organic_queries = 234; + * optional double value_per_conversions_by_conversion_date = 245; * @return This builder for chaining. */ - public Builder clearOrganicQueries() { - bitField3_ = (bitField3_ & ~0x00000800); - organicQueries_ = 0L; + public Builder clearValuePerConversionsByConversionDate() { + bitField4_ = (bitField4_ & ~0x00000040); + valuePerConversionsByConversionDate_ = 0D; onChanged(); return this; } - private double percentNewVisitors_ ; + private double valuePerCurrentModelAttributedConversion_ ; /** *
-     * Percentage of first-time sessions (from people who had never visited your
-     * site before). Imported from Google Analytics.
+     * 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 percent_new_visitors = 235; - * @return Whether the percentNewVisitors field is set. + * optional double value_per_current_model_attributed_conversion = 152; + * @return Whether the valuePerCurrentModelAttributedConversion field is set. */ @java.lang.Override - public boolean hasPercentNewVisitors() { - return ((bitField3_ & 0x00001000) != 0); + public boolean hasValuePerCurrentModelAttributedConversion() { + return ((bitField4_ & 0x00000080) != 0); } /** *
-     * Percentage of first-time sessions (from people who had never visited your
-     * site before). Imported from Google Analytics.
+     * 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 percent_new_visitors = 235; - * @return The percentNewVisitors. + * optional double value_per_current_model_attributed_conversion = 152; + * @return The valuePerCurrentModelAttributedConversion. */ @java.lang.Override - public double getPercentNewVisitors() { - return percentNewVisitors_; + public double getValuePerCurrentModelAttributedConversion() { + return valuePerCurrentModelAttributedConversion_; } /** *
-     * Percentage of first-time sessions (from people who had never visited your
-     * site before). Imported from Google Analytics.
+     * 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 percent_new_visitors = 235; - * @param value The percentNewVisitors to set. + * optional double value_per_current_model_attributed_conversion = 152; + * @param value The valuePerCurrentModelAttributedConversion to set. * @return This builder for chaining. */ - public Builder setPercentNewVisitors(double value) { + public Builder setValuePerCurrentModelAttributedConversion(double value) { - percentNewVisitors_ = value; - bitField3_ |= 0x00001000; + valuePerCurrentModelAttributedConversion_ = value; + bitField4_ |= 0x00000080; onChanged(); return this; } /** *
-     * Percentage of first-time sessions (from people who had never visited your
-     * site before). Imported from Google Analytics.
+     * 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 percent_new_visitors = 235; + * optional double value_per_current_model_attributed_conversion = 152; * @return This builder for chaining. */ - public Builder clearPercentNewVisitors() { - bitField3_ = (bitField3_ & ~0x00001000); - percentNewVisitors_ = 0D; + public Builder clearValuePerCurrentModelAttributedConversion() { + bitField4_ = (bitField4_ & ~0x00000080); + valuePerCurrentModelAttributedConversion_ = 0D; onChanged(); return this; } - private long phoneCalls_ ; + private double videoQuartileP100Rate_ ; /** *
-     * Number of offline phone calls.
+     * Percentage of impressions where the viewer watched all of your video.
      * 
* - * optional int64 phone_calls = 236; - * @return Whether the phoneCalls field is set. + * optional double video_quartile_p100_rate = 132; + * @return Whether the videoQuartileP100Rate field is set. */ @java.lang.Override - public boolean hasPhoneCalls() { - return ((bitField3_ & 0x00002000) != 0); + public boolean hasVideoQuartileP100Rate() { + return ((bitField4_ & 0x00000100) != 0); } /** *
-     * Number of offline phone calls.
+     * Percentage of impressions where the viewer watched all of your video.
      * 
* - * optional int64 phone_calls = 236; - * @return The phoneCalls. + * optional double video_quartile_p100_rate = 132; + * @return The videoQuartileP100Rate. */ @java.lang.Override - public long getPhoneCalls() { - return phoneCalls_; + public double getVideoQuartileP100Rate() { + return videoQuartileP100Rate_; } /** *
-     * Number of offline phone calls.
+     * Percentage of impressions where the viewer watched all of your video.
      * 
* - * optional int64 phone_calls = 236; - * @param value The phoneCalls to set. + * optional double video_quartile_p100_rate = 132; + * @param value The videoQuartileP100Rate to set. * @return This builder for chaining. */ - public Builder setPhoneCalls(long value) { + public Builder setVideoQuartileP100Rate(double value) { - phoneCalls_ = value; - bitField3_ |= 0x00002000; + videoQuartileP100Rate_ = value; + bitField4_ |= 0x00000100; onChanged(); return this; } /** *
-     * Number of offline phone calls.
+     * Percentage of impressions where the viewer watched all of your video.
      * 
* - * optional int64 phone_calls = 236; + * optional double video_quartile_p100_rate = 132; * @return This builder for chaining. */ - public Builder clearPhoneCalls() { - bitField3_ = (bitField3_ & ~0x00002000); - phoneCalls_ = 0L; + public Builder clearVideoQuartileP100Rate() { + bitField4_ = (bitField4_ & ~0x00000100); + videoQuartileP100Rate_ = 0D; onChanged(); return this; } - private long phoneImpressions_ ; + private double videoQuartileP25Rate_ ; /** *
-     * Number of offline phone impressions.
+     * Percentage of impressions where the viewer watched 25% of your video.
      * 
* - * optional int64 phone_impressions = 237; - * @return Whether the phoneImpressions field is set. + * optional double video_quartile_p25_rate = 133; + * @return Whether the videoQuartileP25Rate field is set. */ @java.lang.Override - public boolean hasPhoneImpressions() { - return ((bitField3_ & 0x00004000) != 0); + public boolean hasVideoQuartileP25Rate() { + return ((bitField4_ & 0x00000200) != 0); } /** *
-     * Number of offline phone impressions.
+     * Percentage of impressions where the viewer watched 25% of your video.
      * 
* - * optional int64 phone_impressions = 237; - * @return The phoneImpressions. + * optional double video_quartile_p25_rate = 133; + * @return The videoQuartileP25Rate. */ @java.lang.Override - public long getPhoneImpressions() { - return phoneImpressions_; + public double getVideoQuartileP25Rate() { + return videoQuartileP25Rate_; } /** *
-     * Number of offline phone impressions.
+     * Percentage of impressions where the viewer watched 25% of your video.
      * 
* - * optional int64 phone_impressions = 237; - * @param value The phoneImpressions to set. + * optional double video_quartile_p25_rate = 133; + * @param value The videoQuartileP25Rate to set. * @return This builder for chaining. */ - public Builder setPhoneImpressions(long value) { + public Builder setVideoQuartileP25Rate(double value) { - phoneImpressions_ = value; - bitField3_ |= 0x00004000; + videoQuartileP25Rate_ = value; + bitField4_ |= 0x00000200; onChanged(); return this; } /** *
-     * Number of offline phone impressions.
+     * Percentage of impressions where the viewer watched 25% of your video.
      * 
* - * optional int64 phone_impressions = 237; + * optional double video_quartile_p25_rate = 133; * @return This builder for chaining. */ - public Builder clearPhoneImpressions() { - bitField3_ = (bitField3_ & ~0x00004000); - phoneImpressions_ = 0L; + public Builder clearVideoQuartileP25Rate() { + bitField4_ = (bitField4_ & ~0x00000200); + videoQuartileP25Rate_ = 0D; onChanged(); return this; } - private double phoneThroughRate_ ; + private double videoQuartileP50Rate_ ; /** *
-     * Number of phone calls received (phone_calls) divided by the number of
-     * times your phone number is shown (phone_impressions).
+     * Percentage of impressions where the viewer watched 50% of your video.
      * 
* - * optional double phone_through_rate = 238; - * @return Whether the phoneThroughRate field is set. + * optional double video_quartile_p50_rate = 134; + * @return Whether the videoQuartileP50Rate field is set. */ @java.lang.Override - public boolean hasPhoneThroughRate() { - return ((bitField3_ & 0x00008000) != 0); + public boolean hasVideoQuartileP50Rate() { + return ((bitField4_ & 0x00000400) != 0); } /** *
-     * Number of phone calls received (phone_calls) divided by the number of
-     * times your phone number is shown (phone_impressions).
+     * Percentage of impressions where the viewer watched 50% of your video.
      * 
* - * optional double phone_through_rate = 238; - * @return The phoneThroughRate. + * optional double video_quartile_p50_rate = 134; + * @return The videoQuartileP50Rate. */ @java.lang.Override - public double getPhoneThroughRate() { - return phoneThroughRate_; + public double getVideoQuartileP50Rate() { + return videoQuartileP50Rate_; } /** *
-     * Number of phone calls received (phone_calls) divided by the number of
-     * times your phone number is shown (phone_impressions).
+     * Percentage of impressions where the viewer watched 50% of your video.
      * 
* - * optional double phone_through_rate = 238; - * @param value The phoneThroughRate to set. + * optional double video_quartile_p50_rate = 134; + * @param value The videoQuartileP50Rate to set. * @return This builder for chaining. */ - public Builder setPhoneThroughRate(double value) { + public Builder setVideoQuartileP50Rate(double value) { - phoneThroughRate_ = value; - bitField3_ |= 0x00008000; + videoQuartileP50Rate_ = value; + bitField4_ |= 0x00000400; onChanged(); return this; } /** *
-     * Number of phone calls received (phone_calls) divided by the number of
-     * times your phone number is shown (phone_impressions).
+     * Percentage of impressions where the viewer watched 50% of your video.
      * 
* - * optional double phone_through_rate = 238; + * optional double video_quartile_p50_rate = 134; * @return This builder for chaining. */ - public Builder clearPhoneThroughRate() { - bitField3_ = (bitField3_ & ~0x00008000); - phoneThroughRate_ = 0D; + public Builder clearVideoQuartileP50Rate() { + bitField4_ = (bitField4_ & ~0x00000400); + videoQuartileP50Rate_ = 0D; onChanged(); return this; } - private double relativeCtr_ ; + private double videoQuartileP75Rate_ ; /** *
-     * 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.
+     * Percentage of impressions where the viewer watched 75% of your video.
      * 
* - * optional double relative_ctr = 239; - * @return Whether the relativeCtr field is set. + * optional double video_quartile_p75_rate = 135; + * @return Whether the videoQuartileP75Rate field is set. */ @java.lang.Override - public boolean hasRelativeCtr() { - return ((bitField3_ & 0x00010000) != 0); + public boolean hasVideoQuartileP75Rate() { + return ((bitField4_ & 0x00000800) != 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.
+     * Percentage of impressions where the viewer watched 75% of your video.
      * 
* - * optional double relative_ctr = 239; - * @return The relativeCtr. + * optional double video_quartile_p75_rate = 135; + * @return The videoQuartileP75Rate. */ @java.lang.Override - public double getRelativeCtr() { - return relativeCtr_; + public double getVideoQuartileP75Rate() { + return videoQuartileP75Rate_; } /** *
-     * 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.
+     * Percentage of impressions where the viewer watched 75% of your video.
      * 
* - * optional double relative_ctr = 239; - * @param value The relativeCtr to set. + * optional double video_quartile_p75_rate = 135; + * @param value The videoQuartileP75Rate to set. * @return This builder for chaining. */ - public Builder setRelativeCtr(double value) { + public Builder setVideoQuartileP75Rate(double value) { - relativeCtr_ = value; - bitField3_ |= 0x00010000; + videoQuartileP75Rate_ = value; + bitField4_ |= 0x00000800; 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.
+     * Percentage of impressions where the viewer watched 75% of your video.
      * 
* - * optional double relative_ctr = 239; + * optional double video_quartile_p75_rate = 135; * @return This builder for chaining. */ - public Builder clearRelativeCtr() { - bitField3_ = (bitField3_ & ~0x00010000); - relativeCtr_ = 0D; + public Builder clearVideoQuartileP75Rate() { + bitField4_ = (bitField4_ & ~0x00000800); + videoQuartileP75Rate_ = 0D; onChanged(); return this; } - private double searchAbsoluteTopImpressionShare_ ; + private double videoTrueviewViewRate_ ; /** *
-     * 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.
+     * The number of TrueView views your video ad receives divided by its number
+     * of impressions, including thumbnail impressions for TrueView in-display
+     * ads.
      * 
* - * optional double search_absolute_top_impression_share = 136; - * @return Whether the searchAbsoluteTopImpressionShare field is set. + * optional double video_trueview_view_rate = 406; + * @return Whether the videoTrueviewViewRate field is set. */ @java.lang.Override - public boolean hasSearchAbsoluteTopImpressionShare() { - return ((bitField3_ & 0x00020000) != 0); + public boolean hasVideoTrueviewViewRate() { + return ((bitField4_ & 0x00001000) != 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.
+     * The number of TrueView views your video ad receives divided by its number
+     * of impressions, including thumbnail impressions for TrueView in-display
+     * ads.
      * 
* - * optional double search_absolute_top_impression_share = 136; - * @return The searchAbsoluteTopImpressionShare. + * optional double video_trueview_view_rate = 406; + * @return The videoTrueviewViewRate. */ @java.lang.Override - public double getSearchAbsoluteTopImpressionShare() { - return searchAbsoluteTopImpressionShare_; + public double getVideoTrueviewViewRate() { + return videoTrueviewViewRate_; } /** *
-     * 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.
+     * The number of TrueView views your video ad receives divided by its number
+     * of impressions, including thumbnail impressions for TrueView in-display
+     * ads.
      * 
* - * optional double search_absolute_top_impression_share = 136; - * @param value The searchAbsoluteTopImpressionShare to set. + * optional double video_trueview_view_rate = 406; + * @param value The videoTrueviewViewRate to set. * @return This builder for chaining. */ - public Builder setSearchAbsoluteTopImpressionShare(double value) { + public Builder setVideoTrueviewViewRate(double value) { - searchAbsoluteTopImpressionShare_ = value; - bitField3_ |= 0x00020000; + videoTrueviewViewRate_ = value; + bitField4_ |= 0x00001000; 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.
+     * The number of TrueView views your video ad receives divided by its number
+     * of impressions, including thumbnail impressions for TrueView in-display
+     * ads.
      * 
* - * optional double search_absolute_top_impression_share = 136; + * optional double video_trueview_view_rate = 406; * @return This builder for chaining. */ - public Builder clearSearchAbsoluteTopImpressionShare() { - bitField3_ = (bitField3_ & ~0x00020000); - searchAbsoluteTopImpressionShare_ = 0D; + public Builder clearVideoTrueviewViewRate() { + bitField4_ = (bitField4_ & ~0x00001000); + videoTrueviewViewRate_ = 0D; onChanged(); return this; } - private double searchBudgetLostAbsoluteTopImpressionShare_ ; + private long videoTrueviewViews_ ; /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * The number of TrueView views your video ads received.
      * 
* - * optional double search_budget_lost_absolute_top_impression_share = 137; - * @return Whether the searchBudgetLostAbsoluteTopImpressionShare field is set. + * optional int64 video_trueview_views = 407; + * @return Whether the videoTrueviewViews field is set. */ @java.lang.Override - public boolean hasSearchBudgetLostAbsoluteTopImpressionShare() { - return ((bitField3_ & 0x00040000) != 0); + public boolean hasVideoTrueviewViews() { + return ((bitField4_ & 0x00002000) != 0); } /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * The number of TrueView views your video ads received.
      * 
* - * optional double search_budget_lost_absolute_top_impression_share = 137; - * @return The searchBudgetLostAbsoluteTopImpressionShare. + * optional int64 video_trueview_views = 407; + * @return The videoTrueviewViews. */ @java.lang.Override - public double getSearchBudgetLostAbsoluteTopImpressionShare() { - return searchBudgetLostAbsoluteTopImpressionShare_; + public long getVideoTrueviewViews() { + return videoTrueviewViews_; } /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * The number of TrueView views your video ads received.
      * 
* - * optional double search_budget_lost_absolute_top_impression_share = 137; - * @param value The searchBudgetLostAbsoluteTopImpressionShare to set. + * optional int64 video_trueview_views = 407; + * @param value The videoTrueviewViews to set. * @return This builder for chaining. */ - public Builder setSearchBudgetLostAbsoluteTopImpressionShare(double value) { + public Builder setVideoTrueviewViews(long value) { - searchBudgetLostAbsoluteTopImpressionShare_ = value; - bitField3_ |= 0x00040000; + videoTrueviewViews_ = value; + bitField4_ |= 0x00002000; onChanged(); return this; } /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * The number of TrueView views your video ads received.
      * 
* - * optional double search_budget_lost_absolute_top_impression_share = 137; + * optional int64 video_trueview_views = 407; * @return This builder for chaining. */ - public Builder clearSearchBudgetLostAbsoluteTopImpressionShare() { - bitField3_ = (bitField3_ & ~0x00040000); - searchBudgetLostAbsoluteTopImpressionShare_ = 0D; + public Builder clearVideoTrueviewViews() { + bitField4_ = (bitField4_ & ~0x00002000); + videoTrueviewViews_ = 0L; onChanged(); return this; } - private double searchBudgetLostImpressionShare_ ; + private long viewThroughConversions_ ; /** *
-     * 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.
+     * 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 double search_budget_lost_impression_share = 138; - * @return Whether the searchBudgetLostImpressionShare field is set. + * optional int64 view_through_conversions = 155; + * @return Whether the viewThroughConversions field is set. */ @java.lang.Override - public boolean hasSearchBudgetLostImpressionShare() { - return ((bitField3_ & 0x00080000) != 0); + public boolean hasViewThroughConversions() { + return ((bitField4_ & 0x00004000) != 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.
+     * 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 double search_budget_lost_impression_share = 138; - * @return The searchBudgetLostImpressionShare. + * optional int64 view_through_conversions = 155; + * @return The viewThroughConversions. */ @java.lang.Override - public double getSearchBudgetLostImpressionShare() { - return searchBudgetLostImpressionShare_; + public long getViewThroughConversions() { + return viewThroughConversions_; } /** *
-     * 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.
+     * 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 double search_budget_lost_impression_share = 138; - * @param value The searchBudgetLostImpressionShare to set. + * optional int64 view_through_conversions = 155; + * @param value The viewThroughConversions to set. * @return This builder for chaining. */ - public Builder setSearchBudgetLostImpressionShare(double value) { + public Builder setViewThroughConversions(long value) { - searchBudgetLostImpressionShare_ = value; - bitField3_ |= 0x00080000; + viewThroughConversions_ = value; + bitField4_ |= 0x00004000; 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.
+     * 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 double search_budget_lost_impression_share = 138; + * optional int64 view_through_conversions = 155; * @return This builder for chaining. */ - public Builder clearSearchBudgetLostImpressionShare() { - bitField3_ = (bitField3_ & ~0x00080000); - searchBudgetLostImpressionShare_ = 0D; + public Builder clearViewThroughConversions() { + bitField4_ = (bitField4_ & ~0x00004000); + viewThroughConversions_ = 0L; onChanged(); return this; } - private double searchBudgetLostTopImpressionShare_ ; - /** - *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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 ((bitField3_ & 0x00100000) != 0); - } + private long skAdNetworkInstalls_ ; /** *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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.
+     * The number of iOS Store Kit Ad Network conversions.
      * 
* - * optional double search_budget_lost_top_impression_share = 139; - * @return The searchBudgetLostTopImpressionShare. + * int64 sk_ad_network_installs = 246; + * @return The skAdNetworkInstalls. */ @java.lang.Override - public double getSearchBudgetLostTopImpressionShare() { - return searchBudgetLostTopImpressionShare_; + public long getSkAdNetworkInstalls() { + return skAdNetworkInstalls_; } /** *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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.
+     * The number of iOS Store Kit Ad Network conversions.
      * 
* - * optional double search_budget_lost_top_impression_share = 139; - * @param value The searchBudgetLostTopImpressionShare to set. + * int64 sk_ad_network_installs = 246; + * @param value The skAdNetworkInstalls to set. * @return This builder for chaining. */ - public Builder setSearchBudgetLostTopImpressionShare(double value) { + public Builder setSkAdNetworkInstalls(long value) { - searchBudgetLostTopImpressionShare_ = value; - bitField3_ |= 0x00100000; + skAdNetworkInstalls_ = value; + bitField4_ |= 0x00008000; onChanged(); return this; } /** *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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.
+     * The number of iOS Store Kit Ad Network conversions.
      * 
* - * optional double search_budget_lost_top_impression_share = 139; + * int64 sk_ad_network_installs = 246; * @return This builder for chaining. */ - public Builder clearSearchBudgetLostTopImpressionShare() { - bitField3_ = (bitField3_ & ~0x00100000); - searchBudgetLostTopImpressionShare_ = 0D; + public Builder clearSkAdNetworkInstalls() { + bitField4_ = (bitField4_ & ~0x00008000); + skAdNetworkInstalls_ = 0L; 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 ((bitField3_ & 0x00200000) != 0); - } + private long skAdNetworkTotalConversions_ ; /** *
-     * 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.
+     * The total number of iOS Store Kit Ad Network conversions.
      * 
* - * optional double search_click_share = 140; - * @return The searchClickShare. + * int64 sk_ad_network_total_conversions = 292; + * @return The skAdNetworkTotalConversions. */ @java.lang.Override - public double getSearchClickShare() { - return searchClickShare_; + public long getSkAdNetworkTotalConversions() { + return skAdNetworkTotalConversions_; } /** *
-     * 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.
+     * The total number of iOS Store Kit Ad Network conversions.
      * 
* - * optional double search_click_share = 140; - * @param value The searchClickShare to set. + * int64 sk_ad_network_total_conversions = 292; + * @param value The skAdNetworkTotalConversions to set. * @return This builder for chaining. */ - public Builder setSearchClickShare(double value) { + public Builder setSkAdNetworkTotalConversions(long value) { - searchClickShare_ = value; - bitField3_ |= 0x00200000; + skAdNetworkTotalConversions_ = value; + bitField4_ |= 0x00010000; 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.
+     * The total number of iOS Store Kit Ad Network conversions.
      * 
* - * optional double search_click_share = 140; + * int64 sk_ad_network_total_conversions = 292; * @return This builder for chaining. */ - public Builder clearSearchClickShare() { - bitField3_ = (bitField3_ & ~0x00200000); - searchClickShare_ = 0D; + public Builder clearSkAdNetworkTotalConversions() { + bitField4_ = (bitField4_ & ~0x00010000); + skAdNetworkTotalConversions_ = 0L; onChanged(); return this; } - private double searchExactMatchImpressionShare_ ; + private long publisherPurchasedClicks_ ; /** *
-     * 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.
+     * Clicks from properties not owned by the publisher for which the traffic
+     * the publisher has paid for or acquired through incentivized activity
      * 
* - * optional double search_exact_match_impression_share = 141; - * @return Whether the searchExactMatchImpressionShare field is set. + * int64 publisher_purchased_clicks = 264; + * @return The publisherPurchasedClicks. */ @java.lang.Override - public boolean hasSearchExactMatchImpressionShare() { - return ((bitField3_ & 0x00400000) != 0); + public long getPublisherPurchasedClicks() { + return publisherPurchasedClicks_; } /** *
-     * 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.
+     * Clicks from properties not owned by the publisher for which the traffic
+     * the publisher has paid for or acquired through incentivized activity
      * 
* - * optional double search_exact_match_impression_share = 141; - * @return The searchExactMatchImpressionShare. + * int64 publisher_purchased_clicks = 264; + * @param value The publisherPurchasedClicks to set. + * @return This builder for chaining. */ - @java.lang.Override - public double getSearchExactMatchImpressionShare() { - return searchExactMatchImpressionShare_; + public Builder setPublisherPurchasedClicks(long value) { + + publisherPurchasedClicks_ = value; + bitField4_ |= 0x00020000; + 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.
+     * Clicks from properties not owned by the publisher for which the traffic
+     * the publisher has paid for or acquired through incentivized activity
      * 
* - * optional double search_exact_match_impression_share = 141; - * @param value The searchExactMatchImpressionShare to set. + * int64 publisher_purchased_clicks = 264; * @return This builder for chaining. */ - public Builder setSearchExactMatchImpressionShare(double value) { - - searchExactMatchImpressionShare_ = value; - bitField3_ |= 0x00400000; + public Builder clearPublisherPurchasedClicks() { + bitField4_ = (bitField4_ & ~0x00020000); + publisherPurchasedClicks_ = 0L; onChanged(); return this; } + + private long publisherOrganicClicks_ ; /** *
-     * 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.
+     * Clicks from properties for which the traffic the publisher has not paid
+     * for or acquired through incentivized activity
      * 
* - * optional double search_exact_match_impression_share = 141; + * int64 publisher_organic_clicks = 265; + * @return The publisherOrganicClicks. + */ + @java.lang.Override + public long getPublisherOrganicClicks() { + return publisherOrganicClicks_; + } + /** + *
+     * Clicks from properties for which the traffic the publisher has not paid
+     * for or acquired through incentivized activity
+     * 
+ * + * int64 publisher_organic_clicks = 265; + * @param value The publisherOrganicClicks to set. * @return This builder for chaining. */ - public Builder clearSearchExactMatchImpressionShare() { - bitField3_ = (bitField3_ & ~0x00400000); - searchExactMatchImpressionShare_ = 0D; + public Builder setPublisherOrganicClicks(long value) { + + publisherOrganicClicks_ = value; + bitField4_ |= 0x00040000; 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.
+     * Clicks from properties for which the traffic the publisher has not paid
+     * for or acquired through incentivized activity
      * 
* - * optional double search_impression_share = 142; - * @return Whether the searchImpressionShare field is set. + * int64 publisher_organic_clicks = 265; + * @return This builder for chaining. */ - @java.lang.Override - public boolean hasSearchImpressionShare() { - return ((bitField3_ & 0x00800000) != 0); + public Builder clearPublisherOrganicClicks() { + bitField4_ = (bitField4_ & ~0x00040000); + publisherOrganicClicks_ = 0L; + onChanged(); + return this; } + + private long publisherUnknownClicks_ ; /** *
-     * 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.
+     * Clicks from traffic which is not identified as "Publisher Purchased" or
+     * "Publisher Organic"
      * 
* - * optional double search_impression_share = 142; - * @return The searchImpressionShare. + * int64 publisher_unknown_clicks = 266; + * @return The publisherUnknownClicks. */ @java.lang.Override - public double getSearchImpressionShare() { - return searchImpressionShare_; + public long getPublisherUnknownClicks() { + return publisherUnknownClicks_; } /** *
-     * 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.
+     * Clicks from traffic which is not identified as "Publisher Purchased" or
+     * "Publisher Organic"
      * 
* - * optional double search_impression_share = 142; - * @param value The searchImpressionShare to set. + * int64 publisher_unknown_clicks = 266; + * @param value The publisherUnknownClicks to set. * @return This builder for chaining. */ - public Builder setSearchImpressionShare(double value) { + public Builder setPublisherUnknownClicks(long value) { - searchImpressionShare_ = value; - bitField3_ |= 0x00800000; + publisherUnknownClicks_ = value; + bitField4_ |= 0x00080000; 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.
+     * Clicks from traffic which is not identified as "Publisher Purchased" or
+     * "Publisher Organic"
      * 
* - * optional double search_impression_share = 142; + * int64 publisher_unknown_clicks = 266; * @return This builder for chaining. */ - public Builder clearSearchImpressionShare() { - bitField3_ = (bitField3_ & ~0x00800000); - searchImpressionShare_ = 0D; + public Builder clearPublisherUnknownClicks() { + bitField4_ = (bitField4_ & ~0x00080000); + publisherUnknownClicks_ = 0L; onChanged(); return this; } - private double searchRankLostAbsoluteTopImpressionShare_ ; + private double allConversionsFromLocationAssetClickToCall_ ; /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * Number of call button clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_absolute_top_impression_share = 143; - * @return Whether the searchRankLostAbsoluteTopImpressionShare field is set. + * optional double all_conversions_from_location_asset_click_to_call = 267; + * @return Whether the allConversionsFromLocationAssetClickToCall field is set. */ @java.lang.Override - public boolean hasSearchRankLostAbsoluteTopImpressionShare() { - return ((bitField3_ & 0x01000000) != 0); + public boolean hasAllConversionsFromLocationAssetClickToCall() { + return ((bitField4_ & 0x00100000) != 0); } /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * Number of call button clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_absolute_top_impression_share = 143; - * @return The searchRankLostAbsoluteTopImpressionShare. + * optional double all_conversions_from_location_asset_click_to_call = 267; + * @return The allConversionsFromLocationAssetClickToCall. */ @java.lang.Override - public double getSearchRankLostAbsoluteTopImpressionShare() { - return searchRankLostAbsoluteTopImpressionShare_; + public double getAllConversionsFromLocationAssetClickToCall() { + return allConversionsFromLocationAssetClickToCall_; } /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * Number of call button clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_absolute_top_impression_share = 143; - * @param value The searchRankLostAbsoluteTopImpressionShare to set. + * optional double all_conversions_from_location_asset_click_to_call = 267; + * @param value The allConversionsFromLocationAssetClickToCall to set. * @return This builder for chaining. */ - public Builder setSearchRankLostAbsoluteTopImpressionShare(double value) { + public Builder setAllConversionsFromLocationAssetClickToCall(double value) { - searchRankLostAbsoluteTopImpressionShare_ = value; - bitField3_ |= 0x01000000; + allConversionsFromLocationAssetClickToCall_ = value; + bitField4_ |= 0x00100000; onChanged(); return this; } /** *
-     * The number estimating how often your ad wasn't the very first ad among the
-     * top ads in the 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.
+     * Number of call button clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_absolute_top_impression_share = 143; + * optional double all_conversions_from_location_asset_click_to_call = 267; * @return This builder for chaining. */ - public Builder clearSearchRankLostAbsoluteTopImpressionShare() { - bitField3_ = (bitField3_ & ~0x01000000); - searchRankLostAbsoluteTopImpressionShare_ = 0D; + public Builder clearAllConversionsFromLocationAssetClickToCall() { + bitField4_ = (bitField4_ & ~0x00100000); + allConversionsFromLocationAssetClickToCall_ = 0D; onChanged(); return this; } - private double searchRankLostImpressionShare_ ; + private double allConversionsFromLocationAssetDirections_ ; /** *
-     * 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.
+     * Number of driving directions clicks on any location surface after a
+     * chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional double search_rank_lost_impression_share = 144; - * @return Whether the searchRankLostImpressionShare field is set. + * optional double all_conversions_from_location_asset_directions = 268; + * @return Whether the allConversionsFromLocationAssetDirections field is set. */ @java.lang.Override - public boolean hasSearchRankLostImpressionShare() { - return ((bitField3_ & 0x02000000) != 0); + public boolean hasAllConversionsFromLocationAssetDirections() { + return ((bitField4_ & 0x00200000) != 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.
+     * Number of driving directions clicks on any location surface after a
+     * chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional double search_rank_lost_impression_share = 144; - * @return The searchRankLostImpressionShare. + * optional double all_conversions_from_location_asset_directions = 268; + * @return The allConversionsFromLocationAssetDirections. */ @java.lang.Override - public double getSearchRankLostImpressionShare() { - return searchRankLostImpressionShare_; + public double getAllConversionsFromLocationAssetDirections() { + return allConversionsFromLocationAssetDirections_; } /** *
-     * 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.
+     * Number of driving directions clicks on any location surface after a
+     * chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional double search_rank_lost_impression_share = 144; - * @param value The searchRankLostImpressionShare to set. + * optional double all_conversions_from_location_asset_directions = 268; + * @param value The allConversionsFromLocationAssetDirections to set. * @return This builder for chaining. */ - public Builder setSearchRankLostImpressionShare(double value) { + public Builder setAllConversionsFromLocationAssetDirections(double value) { - searchRankLostImpressionShare_ = value; - bitField3_ |= 0x02000000; + allConversionsFromLocationAssetDirections_ = value; + bitField4_ |= 0x00200000; 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.
+     * Number of driving directions clicks on any location surface after a
+     * chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional double search_rank_lost_impression_share = 144; + * optional double all_conversions_from_location_asset_directions = 268; * @return This builder for chaining. */ - public Builder clearSearchRankLostImpressionShare() { - bitField3_ = (bitField3_ & ~0x02000000); - searchRankLostImpressionShare_ = 0D; + public Builder clearAllConversionsFromLocationAssetDirections() { + bitField4_ = (bitField4_ & ~0x00200000); + allConversionsFromLocationAssetDirections_ = 0D; onChanged(); return this; } - private double searchRankLostTopImpressionShare_ ; + private double allConversionsFromLocationAssetMenu_ ; /** *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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.
+     * Number of menu link clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_top_impression_share = 145; - * @return Whether the searchRankLostTopImpressionShare field is set. + * optional double all_conversions_from_location_asset_menu = 269; + * @return Whether the allConversionsFromLocationAssetMenu field is set. */ @java.lang.Override - public boolean hasSearchRankLostTopImpressionShare() { - return ((bitField3_ & 0x04000000) != 0); + public boolean hasAllConversionsFromLocationAssetMenu() { + return ((bitField4_ & 0x00400000) != 0); } /** *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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.
+     * Number of menu link clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_top_impression_share = 145; - * @return The searchRankLostTopImpressionShare. + * optional double all_conversions_from_location_asset_menu = 269; + * @return The allConversionsFromLocationAssetMenu. */ @java.lang.Override - public double getSearchRankLostTopImpressionShare() { - return searchRankLostTopImpressionShare_; + public double getAllConversionsFromLocationAssetMenu() { + return allConversionsFromLocationAssetMenu_; } /** *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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.
+     * Number of menu link clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_top_impression_share = 145; - * @param value The searchRankLostTopImpressionShare to set. + * optional double all_conversions_from_location_asset_menu = 269; + * @param value The allConversionsFromLocationAssetMenu to set. * @return This builder for chaining. */ - public Builder setSearchRankLostTopImpressionShare(double value) { + public Builder setAllConversionsFromLocationAssetMenu(double value) { - searchRankLostTopImpressionShare_ = value; - bitField3_ |= 0x04000000; + allConversionsFromLocationAssetMenu_ = value; + bitField4_ |= 0x00400000; onChanged(); return this; } /** *
-     * The number estimating how often your ad didn't show adjacent to the top
-     * 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.
+     * Number of menu link clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_rank_lost_top_impression_share = 145; + * optional double all_conversions_from_location_asset_menu = 269; * @return This builder for chaining. */ - public Builder clearSearchRankLostTopImpressionShare() { - bitField3_ = (bitField3_ & ~0x04000000); - searchRankLostTopImpressionShare_ = 0D; + public Builder clearAllConversionsFromLocationAssetMenu() { + bitField4_ = (bitField4_ & ~0x00400000); + allConversionsFromLocationAssetMenu_ = 0D; onChanged(); return this; } - private double searchTopImpressionShare_ ; + private double allConversionsFromLocationAssetOrder_ ; /** *
-     * The impressions you've received among the top ads compared to the estimated
-     * number of impressions you were eligible to receive among the top ads.
-     * 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.
-     *
-     * Top ads are generally above the top organic results, although they may show
-     * below the top organic results on certain queries.
+     * Number of order clicks on any location surface after a chargeable ad event
+     * (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_top_impression_share = 146; - * @return Whether the searchTopImpressionShare field is set. + * optional double all_conversions_from_location_asset_order = 270; + * @return Whether the allConversionsFromLocationAssetOrder field is set. */ @java.lang.Override - public boolean hasSearchTopImpressionShare() { - return ((bitField3_ & 0x08000000) != 0); + public boolean hasAllConversionsFromLocationAssetOrder() { + return ((bitField4_ & 0x00800000) != 0); } /** *
-     * The impressions you've received among the top ads compared to the estimated
-     * number of impressions you were eligible to receive among the top ads.
-     * 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.
-     *
-     * Top ads are generally above the top organic results, although they may show
-     * below the top organic results on certain queries.
+     * Number of order clicks on any location surface after a chargeable ad event
+     * (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_top_impression_share = 146; - * @return The searchTopImpressionShare. + * optional double all_conversions_from_location_asset_order = 270; + * @return The allConversionsFromLocationAssetOrder. */ @java.lang.Override - public double getSearchTopImpressionShare() { - return searchTopImpressionShare_; + public double getAllConversionsFromLocationAssetOrder() { + return allConversionsFromLocationAssetOrder_; } /** *
-     * The impressions you've received among the top ads compared to the estimated
-     * number of impressions you were eligible to receive among the top ads.
-     * 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.
-     *
-     * Top ads are generally above the top organic results, although they may show
-     * below the top organic results on certain queries.
+     * Number of order clicks on any location surface after a chargeable ad event
+     * (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_top_impression_share = 146; - * @param value The searchTopImpressionShare to set. + * optional double all_conversions_from_location_asset_order = 270; + * @param value The allConversionsFromLocationAssetOrder to set. * @return This builder for chaining. */ - public Builder setSearchTopImpressionShare(double value) { + public Builder setAllConversionsFromLocationAssetOrder(double value) { - searchTopImpressionShare_ = value; - bitField3_ |= 0x08000000; + allConversionsFromLocationAssetOrder_ = value; + bitField4_ |= 0x00800000; onChanged(); return this; } /** *
-     * The impressions you've received among the top ads compared to the estimated
-     * number of impressions you were eligible to receive among the top ads.
-     * 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.
-     *
-     * Top ads are generally above the top organic results, although they may show
-     * below the top organic results on certain queries.
+     * Number of order clicks on any location surface after a chargeable ad event
+     * (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional double search_top_impression_share = 146; + * optional double all_conversions_from_location_asset_order = 270; * @return This builder for chaining. */ - public Builder clearSearchTopImpressionShare() { - bitField3_ = (bitField3_ & ~0x08000000); - searchTopImpressionShare_ = 0D; + public Builder clearAllConversionsFromLocationAssetOrder() { + bitField4_ = (bitField4_ & ~0x00800000); + allConversionsFromLocationAssetOrder_ = 0D; onChanged(); return this; } - private com.google.ads.googleads.v24.common.SearchVolumeRange searchVolume_; - private com.google.protobuf.SingleFieldBuilder< - com.google.ads.googleads.v24.common.SearchVolumeRange, com.google.ads.googleads.v24.common.SearchVolumeRange.Builder, com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder> searchVolumeBuilder_; + private double allConversionsFromLocationAssetOtherEngagement_ ; /** *
-     * Search volume range for a search term insight category.
+     * Number of other types of local action clicks on any location surface after
+     * a chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; - * @return Whether the searchVolume field is set. + * optional double all_conversions_from_location_asset_other_engagement = 271; + * @return Whether the allConversionsFromLocationAssetOtherEngagement field is set. */ - public boolean hasSearchVolume() { - return ((bitField3_ & 0x10000000) != 0); + @java.lang.Override + public boolean hasAllConversionsFromLocationAssetOtherEngagement() { + return ((bitField4_ & 0x01000000) != 0); } /** *
-     * Search volume range for a search term insight category.
+     * Number of other types of local action clicks on any location surface after
+     * a chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; - * @return The searchVolume. + * optional double all_conversions_from_location_asset_other_engagement = 271; + * @return The allConversionsFromLocationAssetOtherEngagement. */ - public com.google.ads.googleads.v24.common.SearchVolumeRange getSearchVolume() { - if (searchVolumeBuilder_ == null) { - return searchVolume_ == null ? com.google.ads.googleads.v24.common.SearchVolumeRange.getDefaultInstance() : searchVolume_; - } else { - return searchVolumeBuilder_.getMessage(); - } + @java.lang.Override + public double getAllConversionsFromLocationAssetOtherEngagement() { + return allConversionsFromLocationAssetOtherEngagement_; } /** *
-     * Search volume range for a search term insight category.
+     * Number of other types of local action clicks on any location surface after
+     * a chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * optional double all_conversions_from_location_asset_other_engagement = 271; + * @param value The allConversionsFromLocationAssetOtherEngagement to set. + * @return This builder for chaining. */ - public Builder setSearchVolume(com.google.ads.googleads.v24.common.SearchVolumeRange value) { - if (searchVolumeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - searchVolume_ = value; - } else { - searchVolumeBuilder_.setMessage(value); - } - bitField3_ |= 0x10000000; + public Builder setAllConversionsFromLocationAssetOtherEngagement(double value) { + + allConversionsFromLocationAssetOtherEngagement_ = value; + bitField4_ |= 0x01000000; onChanged(); return this; } /** *
-     * Search volume range for a search term insight category.
+     * Number of other types of local action clicks on any location surface after
+     * a chargeable ad event (click or impression). This measure is coming
+     * from Asset based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * optional double all_conversions_from_location_asset_other_engagement = 271; + * @return This builder for chaining. */ - public Builder setSearchVolume( - com.google.ads.googleads.v24.common.SearchVolumeRange.Builder builderForValue) { - if (searchVolumeBuilder_ == null) { - searchVolume_ = builderForValue.build(); - } else { - searchVolumeBuilder_.setMessage(builderForValue.build()); - } - bitField3_ |= 0x10000000; + public Builder clearAllConversionsFromLocationAssetOtherEngagement() { + bitField4_ = (bitField4_ & ~0x01000000); + allConversionsFromLocationAssetOtherEngagement_ = 0D; onChanged(); return this; } + + private double allConversionsFromLocationAssetStoreVisits_ ; /** *
-     * Search volume range for a search term insight category.
+     * Estimated number of visits to the business after a chargeable
+     * ad event (click or impression). This measure is coming from Asset
+     * based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * optional double all_conversions_from_location_asset_store_visits = 272; + * @return Whether the allConversionsFromLocationAssetStoreVisits field is set. */ - public Builder mergeSearchVolume(com.google.ads.googleads.v24.common.SearchVolumeRange value) { - if (searchVolumeBuilder_ == null) { - if (((bitField3_ & 0x10000000) != 0) && - searchVolume_ != null && - searchVolume_ != com.google.ads.googleads.v24.common.SearchVolumeRange.getDefaultInstance()) { - getSearchVolumeBuilder().mergeFrom(value); - } else { - searchVolume_ = value; - } - } else { - searchVolumeBuilder_.mergeFrom(value); - } - if (searchVolume_ != null) { - bitField3_ |= 0x10000000; - onChanged(); - } - return this; + @java.lang.Override + public boolean hasAllConversionsFromLocationAssetStoreVisits() { + return ((bitField4_ & 0x02000000) != 0); } /** *
-     * Search volume range for a search term insight category.
+     * Estimated number of visits to the business after a chargeable
+     * ad event (click or impression). This measure is coming from Asset
+     * based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * optional double all_conversions_from_location_asset_store_visits = 272; + * @return The allConversionsFromLocationAssetStoreVisits. */ - public Builder clearSearchVolume() { - bitField3_ = (bitField3_ & ~0x10000000); - searchVolume_ = null; - if (searchVolumeBuilder_ != null) { - searchVolumeBuilder_.dispose(); - searchVolumeBuilder_ = null; - } - onChanged(); - return this; + @java.lang.Override + public double getAllConversionsFromLocationAssetStoreVisits() { + return allConversionsFromLocationAssetStoreVisits_; } /** *
-     * Search volume range for a search term insight category.
+     * Estimated number of visits to the business after a chargeable
+     * ad event (click or impression). This measure is coming from Asset
+     * based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * optional double all_conversions_from_location_asset_store_visits = 272; + * @param value The allConversionsFromLocationAssetStoreVisits to set. + * @return This builder for chaining. */ - public com.google.ads.googleads.v24.common.SearchVolumeRange.Builder getSearchVolumeBuilder() { - bitField3_ |= 0x10000000; + public Builder setAllConversionsFromLocationAssetStoreVisits(double value) { + + allConversionsFromLocationAssetStoreVisits_ = value; + bitField4_ |= 0x02000000; onChanged(); - return internalGetSearchVolumeFieldBuilder().getBuilder(); - } - /** - *
-     * Search volume range for a search term insight category.
-     * 
- * - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; - */ - public com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder getSearchVolumeOrBuilder() { - if (searchVolumeBuilder_ != null) { - return searchVolumeBuilder_.getMessageOrBuilder(); - } else { - return searchVolume_ == null ? - com.google.ads.googleads.v24.common.SearchVolumeRange.getDefaultInstance() : searchVolume_; - } + return this; } /** *
-     * Search volume range for a search term insight category.
+     * Estimated number of visits to the business after a chargeable
+     * ad event (click or impression). This measure is coming from Asset
+     * based location.
      * 
* - * optional .google.ads.googleads.v24.common.SearchVolumeRange search_volume = 295; + * optional double all_conversions_from_location_asset_store_visits = 272; + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.ads.googleads.v24.common.SearchVolumeRange, com.google.ads.googleads.v24.common.SearchVolumeRange.Builder, com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder> - internalGetSearchVolumeFieldBuilder() { - if (searchVolumeBuilder_ == null) { - searchVolumeBuilder_ = new com.google.protobuf.SingleFieldBuilder< - com.google.ads.googleads.v24.common.SearchVolumeRange, com.google.ads.googleads.v24.common.SearchVolumeRange.Builder, com.google.ads.googleads.v24.common.SearchVolumeRangeOrBuilder>( - getSearchVolume(), - getParentForChildren(), - isClean()); - searchVolume_ = null; - } - return searchVolumeBuilder_; + public Builder clearAllConversionsFromLocationAssetStoreVisits() { + bitField4_ = (bitField4_ & ~0x02000000); + allConversionsFromLocationAssetStoreVisits_ = 0D; + onChanged(); + return this; } - private long speedScore_ ; + private double allConversionsFromLocationAssetWebsite_ ; /** *
-     * 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.
+     * Number of website URL clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 speed_score = 147; - * @return Whether the speedScore field is set. + * optional double all_conversions_from_location_asset_website = 273; + * @return Whether the allConversionsFromLocationAssetWebsite field is set. */ @java.lang.Override - public boolean hasSpeedScore() { - return ((bitField3_ & 0x20000000) != 0); + public boolean hasAllConversionsFromLocationAssetWebsite() { + return ((bitField4_ & 0x04000000) != 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.
+     * Number of website URL clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 speed_score = 147; - * @return The speedScore. + * optional double all_conversions_from_location_asset_website = 273; + * @return The allConversionsFromLocationAssetWebsite. */ @java.lang.Override - public long getSpeedScore() { - return speedScore_; + public double getAllConversionsFromLocationAssetWebsite() { + return allConversionsFromLocationAssetWebsite_; } /** *
-     * 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.
+     * Number of website URL clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 speed_score = 147; - * @param value The speedScore to set. + * optional double all_conversions_from_location_asset_website = 273; + * @param value The allConversionsFromLocationAssetWebsite to set. * @return This builder for chaining. */ - public Builder setSpeedScore(long value) { + public Builder setAllConversionsFromLocationAssetWebsite(double value) { - speedScore_ = value; - bitField3_ |= 0x20000000; + allConversionsFromLocationAssetWebsite_ = value; + bitField4_ |= 0x04000000; 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.
+     * Number of website URL clicks on any location surface after a chargeable ad
+     * event (click or impression). This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 speed_score = 147; + * optional double all_conversions_from_location_asset_website = 273; * @return This builder for chaining. */ - public Builder clearSpeedScore() { - bitField3_ = (bitField3_ & ~0x20000000); - speedScore_ = 0L; + public Builder clearAllConversionsFromLocationAssetWebsite() { + bitField4_ = (bitField4_ & ~0x04000000); + allConversionsFromLocationAssetWebsite_ = 0D; onChanged(); return this; } - private long averageTargetCpaMicros_ ; + private long eligibleImpressionsFromLocationAssetStoreReach_ ; /** *
-     * The average Target CPA, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
+     * Number of impressions in which the business location was shown or the
+     * location was used for targeting. This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 average_target_cpa_micros = 290; - * @return Whether the averageTargetCpaMicros field is set. + * optional int64 eligible_impressions_from_location_asset_store_reach = 274; + * @return Whether the eligibleImpressionsFromLocationAssetStoreReach field is set. */ @java.lang.Override - public boolean hasAverageTargetCpaMicros() { - return ((bitField3_ & 0x40000000) != 0); + public boolean hasEligibleImpressionsFromLocationAssetStoreReach() { + return ((bitField4_ & 0x08000000) != 0); } /** *
-     * The average Target CPA, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
+     * Number of impressions in which the business location was shown or the
+     * location was used for targeting. This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 average_target_cpa_micros = 290; - * @return The averageTargetCpaMicros. + * optional int64 eligible_impressions_from_location_asset_store_reach = 274; + * @return The eligibleImpressionsFromLocationAssetStoreReach. */ @java.lang.Override - public long getAverageTargetCpaMicros() { - return averageTargetCpaMicros_; + public long getEligibleImpressionsFromLocationAssetStoreReach() { + return eligibleImpressionsFromLocationAssetStoreReach_; } /** *
-     * The average Target CPA, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
+     * Number of impressions in which the business location was shown or the
+     * location was used for targeting. This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 average_target_cpa_micros = 290; - * @param value The averageTargetCpaMicros to set. + * optional int64 eligible_impressions_from_location_asset_store_reach = 274; + * @param value The eligibleImpressionsFromLocationAssetStoreReach to set. * @return This builder for chaining. */ - public Builder setAverageTargetCpaMicros(long value) { + public Builder setEligibleImpressionsFromLocationAssetStoreReach(long value) { - averageTargetCpaMicros_ = value; - bitField3_ |= 0x40000000; + eligibleImpressionsFromLocationAssetStoreReach_ = value; + bitField4_ |= 0x08000000; onChanged(); return this; } /** *
-     * The average Target CPA, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tCPA).
+     * Number of impressions in which the business location was shown or the
+     * location was used for targeting. This measure is coming from Asset based
+     * location.
      * 
* - * optional int64 average_target_cpa_micros = 290; + * optional int64 eligible_impressions_from_location_asset_store_reach = 274; * @return This builder for chaining. */ - public Builder clearAverageTargetCpaMicros() { - bitField3_ = (bitField3_ & ~0x40000000); - averageTargetCpaMicros_ = 0L; + public Builder clearEligibleImpressionsFromLocationAssetStoreReach() { + bitField4_ = (bitField4_ & ~0x08000000); + eligibleImpressionsFromLocationAssetStoreReach_ = 0L; onChanged(); return this; } - private double averageTargetRoas_ ; + private double viewThroughConversionsFromLocationAssetClickToCall_ ; /** *
-     * The average Target ROAS, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
+     * Number of call button clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double average_target_roas = 250; - * @return Whether the averageTargetRoas field is set. + * optional double view_through_conversions_from_location_asset_click_to_call = 275; + * @return Whether the viewThroughConversionsFromLocationAssetClickToCall field is set. */ @java.lang.Override - public boolean hasAverageTargetRoas() { - return ((bitField3_ & 0x80000000) != 0); + public boolean hasViewThroughConversionsFromLocationAssetClickToCall() { + return ((bitField4_ & 0x10000000) != 0); } /** *
-     * The average Target ROAS, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
+     * Number of call button clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double average_target_roas = 250; - * @return The averageTargetRoas. + * optional double view_through_conversions_from_location_asset_click_to_call = 275; + * @return The viewThroughConversionsFromLocationAssetClickToCall. */ @java.lang.Override - public double getAverageTargetRoas() { - return averageTargetRoas_; + public double getViewThroughConversionsFromLocationAssetClickToCall() { + return viewThroughConversionsFromLocationAssetClickToCall_; } /** *
-     * The average Target ROAS, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
+     * Number of call button clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double average_target_roas = 250; - * @param value The averageTargetRoas to set. + * optional double view_through_conversions_from_location_asset_click_to_call = 275; + * @param value The viewThroughConversionsFromLocationAssetClickToCall to set. * @return This builder for chaining. */ - public Builder setAverageTargetRoas(double value) { + public Builder setViewThroughConversionsFromLocationAssetClickToCall(double value) { - averageTargetRoas_ = value; - bitField3_ |= 0x80000000; + viewThroughConversionsFromLocationAssetClickToCall_ = value; + bitField4_ |= 0x10000000; onChanged(); return this; } /** *
-     * The average Target ROAS, or unset if not available (for example, for
-     * campaigns that had traffic from portfolio bidding strategies or non-tROAS).
+     * Number of call button clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double average_target_roas = 250; + * optional double view_through_conversions_from_location_asset_click_to_call = 275; * @return This builder for chaining. */ - public Builder clearAverageTargetRoas() { - bitField3_ = (bitField3_ & ~0x80000000); - averageTargetRoas_ = 0D; + public Builder clearViewThroughConversionsFromLocationAssetClickToCall() { + bitField4_ = (bitField4_ & ~0x10000000); + viewThroughConversionsFromLocationAssetClickToCall_ = 0D; onChanged(); return this; } - private double topImpressionPercentage_ ; + private double viewThroughConversionsFromLocationAssetDirections_ ; /** *
-     * The percent of your ad impressions that are shown adjacent to the top
-     * organic search results.
+     * Number of driving directions clicks on any location surface after an
+     * impression. This measure is coming from Asset based location.
      * 
* - * optional double top_impression_percentage = 148; - * @return Whether the topImpressionPercentage field is set. + * optional double view_through_conversions_from_location_asset_directions = 276; + * @return Whether the viewThroughConversionsFromLocationAssetDirections field is set. */ @java.lang.Override - public boolean hasTopImpressionPercentage() { - return ((bitField4_ & 0x00000001) != 0); + public boolean hasViewThroughConversionsFromLocationAssetDirections() { + return ((bitField4_ & 0x20000000) != 0); } /** *
-     * The percent of your ad impressions that are shown adjacent to the top
-     * organic search results.
+     * Number of driving directions clicks on any location surface after an
+     * impression. This measure is coming from Asset based location.
      * 
* - * optional double top_impression_percentage = 148; - * @return The topImpressionPercentage. + * optional double view_through_conversions_from_location_asset_directions = 276; + * @return The viewThroughConversionsFromLocationAssetDirections. */ @java.lang.Override - public double getTopImpressionPercentage() { - return topImpressionPercentage_; + public double getViewThroughConversionsFromLocationAssetDirections() { + return viewThroughConversionsFromLocationAssetDirections_; } /** *
-     * The percent of your ad impressions that are shown adjacent to the top
-     * organic search results.
+     * Number of driving directions clicks on any location surface after an
+     * impression. This measure is coming from Asset based location.
      * 
* - * optional double top_impression_percentage = 148; - * @param value The topImpressionPercentage to set. + * optional double view_through_conversions_from_location_asset_directions = 276; + * @param value The viewThroughConversionsFromLocationAssetDirections to set. * @return This builder for chaining. */ - public Builder setTopImpressionPercentage(double value) { + public Builder setViewThroughConversionsFromLocationAssetDirections(double value) { - topImpressionPercentage_ = value; - bitField4_ |= 0x00000001; + viewThroughConversionsFromLocationAssetDirections_ = value; + bitField4_ |= 0x20000000; onChanged(); return this; } /** *
-     * The percent of your ad impressions that are shown adjacent to the top
-     * organic search results.
+     * Number of driving directions clicks on any location surface after an
+     * impression. This measure is coming from Asset based location.
      * 
* - * optional double top_impression_percentage = 148; + * optional double view_through_conversions_from_location_asset_directions = 276; * @return This builder for chaining. */ - public Builder clearTopImpressionPercentage() { - bitField4_ = (bitField4_ & ~0x00000001); - topImpressionPercentage_ = 0D; + public Builder clearViewThroughConversionsFromLocationAssetDirections() { + bitField4_ = (bitField4_ & ~0x20000000); + viewThroughConversionsFromLocationAssetDirections_ = 0D; onChanged(); return this; } - private double validAcceleratedMobilePagesClicksPercentage_ ; + private double viewThroughConversionsFromLocationAssetMenu_ ; /** *
-     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
-     * that reach a valid AMP page.
+     * Number of menu link clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; - * @return Whether the validAcceleratedMobilePagesClicksPercentage field is set. + * optional double view_through_conversions_from_location_asset_menu = 277; + * @return Whether the viewThroughConversionsFromLocationAssetMenu field is set. */ @java.lang.Override - public boolean hasValidAcceleratedMobilePagesClicksPercentage() { - return ((bitField4_ & 0x00000002) != 0); + public boolean hasViewThroughConversionsFromLocationAssetMenu() { + return ((bitField4_ & 0x40000000) != 0); } /** *
-     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
-     * that reach a valid AMP page.
+     * Number of menu link clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; - * @return The validAcceleratedMobilePagesClicksPercentage. + * optional double view_through_conversions_from_location_asset_menu = 277; + * @return The viewThroughConversionsFromLocationAssetMenu. */ @java.lang.Override - public double getValidAcceleratedMobilePagesClicksPercentage() { - return validAcceleratedMobilePagesClicksPercentage_; + public double getViewThroughConversionsFromLocationAssetMenu() { + return viewThroughConversionsFromLocationAssetMenu_; } /** *
-     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
-     * that reach a valid AMP page.
+     * Number of menu link clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; - * @param value The validAcceleratedMobilePagesClicksPercentage to set. + * optional double view_through_conversions_from_location_asset_menu = 277; + * @param value The viewThroughConversionsFromLocationAssetMenu to set. * @return This builder for chaining. */ - public Builder setValidAcceleratedMobilePagesClicksPercentage(double value) { + public Builder setViewThroughConversionsFromLocationAssetMenu(double value) { - validAcceleratedMobilePagesClicksPercentage_ = value; - bitField4_ |= 0x00000002; + viewThroughConversionsFromLocationAssetMenu_ = value; + bitField4_ |= 0x40000000; onChanged(); return this; } /** *
-     * The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages
-     * that reach a valid AMP page.
+     * Number of menu link clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double valid_accelerated_mobile_pages_clicks_percentage = 149; + * optional double view_through_conversions_from_location_asset_menu = 277; * @return This builder for chaining. */ - public Builder clearValidAcceleratedMobilePagesClicksPercentage() { - bitField4_ = (bitField4_ & ~0x00000002); - validAcceleratedMobilePagesClicksPercentage_ = 0D; + public Builder clearViewThroughConversionsFromLocationAssetMenu() { + bitField4_ = (bitField4_ & ~0x40000000); + viewThroughConversionsFromLocationAssetMenu_ = 0D; onChanged(); return this; } - private double valuePerAllConversions_ ; + private double viewThroughConversionsFromLocationAssetOrder_ ; /** *
-     * The value of all conversions divided by the number of all conversions.
+     * Number of order clicks on any location surface after an impression. This
+     * measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions = 150; - * @return Whether the valuePerAllConversions field is set. + * optional double view_through_conversions_from_location_asset_order = 278; + * @return Whether the viewThroughConversionsFromLocationAssetOrder field is set. */ @java.lang.Override - public boolean hasValuePerAllConversions() { - return ((bitField4_ & 0x00000004) != 0); + public boolean hasViewThroughConversionsFromLocationAssetOrder() { + return ((bitField4_ & 0x80000000) != 0); } /** *
-     * The value of all conversions divided by the number of all conversions.
+     * Number of order clicks on any location surface after an impression. This
+     * measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions = 150; - * @return The valuePerAllConversions. + * optional double view_through_conversions_from_location_asset_order = 278; + * @return The viewThroughConversionsFromLocationAssetOrder. */ @java.lang.Override - public double getValuePerAllConversions() { - return valuePerAllConversions_; + public double getViewThroughConversionsFromLocationAssetOrder() { + return viewThroughConversionsFromLocationAssetOrder_; } /** *
-     * The value of all conversions divided by the number of all conversions.
+     * Number of order clicks on any location surface after an impression. This
+     * measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions = 150; - * @param value The valuePerAllConversions to set. + * optional double view_through_conversions_from_location_asset_order = 278; + * @param value The viewThroughConversionsFromLocationAssetOrder to set. * @return This builder for chaining. */ - public Builder setValuePerAllConversions(double value) { + public Builder setViewThroughConversionsFromLocationAssetOrder(double value) { - valuePerAllConversions_ = value; - bitField4_ |= 0x00000004; + viewThroughConversionsFromLocationAssetOrder_ = value; + bitField4_ |= 0x80000000; onChanged(); return this; } /** *
-     * The value of all conversions divided by the number of all conversions.
+     * Number of order clicks on any location surface after an impression. This
+     * measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions = 150; + * optional double view_through_conversions_from_location_asset_order = 278; * @return This builder for chaining. */ - public Builder clearValuePerAllConversions() { - bitField4_ = (bitField4_ & ~0x00000004); - valuePerAllConversions_ = 0D; + public Builder clearViewThroughConversionsFromLocationAssetOrder() { + bitField4_ = (bitField4_ & ~0x80000000); + viewThroughConversionsFromLocationAssetOrder_ = 0D; onChanged(); return this; } - private double valuePerAllConversionsByConversionDate_ ; + private double viewThroughConversionsFromLocationAssetOtherEngagement_ ; /** *
-     * 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.
+     * Number of other types of local action clicks on any location surface after
+     * an impression. This measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions_by_conversion_date = 244; - * @return Whether the valuePerAllConversionsByConversionDate field is set. + * optional double view_through_conversions_from_location_asset_other_engagement = 279; + * @return Whether the viewThroughConversionsFromLocationAssetOtherEngagement field is set. */ @java.lang.Override - public boolean hasValuePerAllConversionsByConversionDate() { - return ((bitField4_ & 0x00000008) != 0); + public boolean hasViewThroughConversionsFromLocationAssetOtherEngagement() { + return ((bitField5_ & 0x00000001) != 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.
+     * Number of other types of local action clicks on any location surface after
+     * an impression. This measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions_by_conversion_date = 244; - * @return The valuePerAllConversionsByConversionDate. + * optional double view_through_conversions_from_location_asset_other_engagement = 279; + * @return The viewThroughConversionsFromLocationAssetOtherEngagement. */ @java.lang.Override - public double getValuePerAllConversionsByConversionDate() { - return valuePerAllConversionsByConversionDate_; + public double getViewThroughConversionsFromLocationAssetOtherEngagement() { + return viewThroughConversionsFromLocationAssetOtherEngagement_; } /** *
-     * 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.
+     * Number of other types of local action clicks on any location surface after
+     * an impression. This measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions_by_conversion_date = 244; - * @param value The valuePerAllConversionsByConversionDate to set. + * optional double view_through_conversions_from_location_asset_other_engagement = 279; + * @param value The viewThroughConversionsFromLocationAssetOtherEngagement to set. * @return This builder for chaining. */ - public Builder setValuePerAllConversionsByConversionDate(double value) { + public Builder setViewThroughConversionsFromLocationAssetOtherEngagement(double value) { - valuePerAllConversionsByConversionDate_ = value; - bitField4_ |= 0x00000008; + viewThroughConversionsFromLocationAssetOtherEngagement_ = value; + bitField5_ |= 0x00000001; 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.
+     * Number of other types of local action clicks on any location surface after
+     * an impression. This measure is coming from Asset based location.
      * 
* - * optional double value_per_all_conversions_by_conversion_date = 244; + * optional double view_through_conversions_from_location_asset_other_engagement = 279; * @return This builder for chaining. */ - public Builder clearValuePerAllConversionsByConversionDate() { - bitField4_ = (bitField4_ & ~0x00000008); - valuePerAllConversionsByConversionDate_ = 0D; + public Builder clearViewThroughConversionsFromLocationAssetOtherEngagement() { + bitField5_ = (bitField5_ & ~0x00000001); + viewThroughConversionsFromLocationAssetOtherEngagement_ = 0D; onChanged(); return this; } - private double valuePerConversion_ ; + private double viewThroughConversionsFromLocationAssetStoreVisits_ ; /** *
-     * 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.
+     * Estimated number of visits to the business after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversion = 151; - * @return Whether the valuePerConversion field is set. + * optional double view_through_conversions_from_location_asset_store_visits = 280; + * @return Whether the viewThroughConversionsFromLocationAssetStoreVisits field is set. */ @java.lang.Override - public boolean hasValuePerConversion() { - return ((bitField4_ & 0x00000010) != 0); + public boolean hasViewThroughConversionsFromLocationAssetStoreVisits() { + return ((bitField5_ & 0x00000002) != 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.
+     * Estimated number of visits to the business after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversion = 151; - * @return The valuePerConversion. + * optional double view_through_conversions_from_location_asset_store_visits = 280; + * @return The viewThroughConversionsFromLocationAssetStoreVisits. */ @java.lang.Override - public double getValuePerConversion() { - return valuePerConversion_; + public double getViewThroughConversionsFromLocationAssetStoreVisits() { + return viewThroughConversionsFromLocationAssetStoreVisits_; } /** *
-     * 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.
+     * Estimated number of visits to the business after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversion = 151; - * @param value The valuePerConversion to set. + * optional double view_through_conversions_from_location_asset_store_visits = 280; + * @param value The viewThroughConversionsFromLocationAssetStoreVisits to set. * @return This builder for chaining. */ - public Builder setValuePerConversion(double value) { + public Builder setViewThroughConversionsFromLocationAssetStoreVisits(double value) { - valuePerConversion_ = value; - bitField4_ |= 0x00000010; + viewThroughConversionsFromLocationAssetStoreVisits_ = value; + bitField5_ |= 0x00000002; 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.
+     * Estimated number of visits to the business after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversion = 151; + * optional double view_through_conversions_from_location_asset_store_visits = 280; * @return This builder for chaining. */ - public Builder clearValuePerConversion() { - bitField4_ = (bitField4_ & ~0x00000010); - valuePerConversion_ = 0D; + public Builder clearViewThroughConversionsFromLocationAssetStoreVisits() { + bitField5_ = (bitField5_ & ~0x00000002); + viewThroughConversionsFromLocationAssetStoreVisits_ = 0D; onChanged(); return this; } - private double valuePerConversionsByConversionDate_ ; + private double viewThroughConversionsFromLocationAssetWebsite_ ; /** *
-     * 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.
+     * Number of website URL clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversions_by_conversion_date = 245; - * @return Whether the valuePerConversionsByConversionDate field is set. + * optional double view_through_conversions_from_location_asset_website = 281; + * @return Whether the viewThroughConversionsFromLocationAssetWebsite field is set. */ @java.lang.Override - public boolean hasValuePerConversionsByConversionDate() { - return ((bitField4_ & 0x00000020) != 0); + public boolean hasViewThroughConversionsFromLocationAssetWebsite() { + return ((bitField5_ & 0x00000004) != 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.
+     * Number of website URL clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversions_by_conversion_date = 245; - * @return The valuePerConversionsByConversionDate. + * optional double view_through_conversions_from_location_asset_website = 281; + * @return The viewThroughConversionsFromLocationAssetWebsite. */ @java.lang.Override - public double getValuePerConversionsByConversionDate() { - return valuePerConversionsByConversionDate_; + public double getViewThroughConversionsFromLocationAssetWebsite() { + return viewThroughConversionsFromLocationAssetWebsite_; } /** *
-     * 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.
+     * Number of website URL clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversions_by_conversion_date = 245; - * @param value The valuePerConversionsByConversionDate to set. + * optional double view_through_conversions_from_location_asset_website = 281; + * @param value The viewThroughConversionsFromLocationAssetWebsite to set. * @return This builder for chaining. */ - public Builder setValuePerConversionsByConversionDate(double value) { + public Builder setViewThroughConversionsFromLocationAssetWebsite(double value) { - valuePerConversionsByConversionDate_ = value; - bitField4_ |= 0x00000020; + viewThroughConversionsFromLocationAssetWebsite_ = value; + bitField5_ |= 0x00000004; 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.
+     * Number of website URL clicks on any location surface after an impression.
+     * This measure is coming from Asset based location.
      * 
* - * optional double value_per_conversions_by_conversion_date = 245; + * optional double view_through_conversions_from_location_asset_website = 281; * @return This builder for chaining. */ - public Builder clearValuePerConversionsByConversionDate() { - bitField4_ = (bitField4_ & ~0x00000020); - valuePerConversionsByConversionDate_ = 0D; + public Builder clearViewThroughConversionsFromLocationAssetWebsite() { + bitField5_ = (bitField5_ & ~0x00000004); + viewThroughConversionsFromLocationAssetWebsite_ = 0D; onChanged(); return this; } - private double valuePerCurrentModelAttributedConversion_ ; + private double orders_ ; /** *
-     * 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.
+     * Orders is the total number of purchase conversions you received attributed
+     * to your ads.
+     * How it works: You report conversions with cart data for
+     * completed purchases on your website. If a conversion is attributed to
+     * previous interactions with your ads (clicks for text or Shopping ads, views
+     * for video ads etc.) it's counted as an order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order on your website. Even though they bought 2
+     * products, this would count as 1 order.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double value_per_current_model_attributed_conversion = 152; - * @return Whether the valuePerCurrentModelAttributedConversion field is set. + * optional double orders = 296; + * @return Whether the orders field is set. */ @java.lang.Override - public boolean hasValuePerCurrentModelAttributedConversion() { - return ((bitField4_ & 0x00000040) != 0); + public boolean hasOrders() { + return ((bitField5_ & 0x00000008) != 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.
+     * Orders is the total number of purchase conversions you received attributed
+     * to your ads.
+     * How it works: You report conversions with cart data for
+     * completed purchases on your website. If a conversion is attributed to
+     * previous interactions with your ads (clicks for text or Shopping ads, views
+     * for video ads etc.) it's counted as an order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order on your website. Even though they bought 2
+     * products, this would count as 1 order.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double value_per_current_model_attributed_conversion = 152; - * @return The valuePerCurrentModelAttributedConversion. + * optional double orders = 296; + * @return The orders. */ @java.lang.Override - public double getValuePerCurrentModelAttributedConversion() { - return valuePerCurrentModelAttributedConversion_; + public double getOrders() { + return orders_; } /** *
-     * 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.
+     * Orders is the total number of purchase conversions you received attributed
+     * to your ads.
+     * How it works: You report conversions with cart data for
+     * completed purchases on your website. If a conversion is attributed to
+     * previous interactions with your ads (clicks for text or Shopping ads, views
+     * for video ads etc.) it's counted as an order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order on your website. Even though they bought 2
+     * products, this would count as 1 order.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double value_per_current_model_attributed_conversion = 152; - * @param value The valuePerCurrentModelAttributedConversion to set. + * optional double orders = 296; + * @param value The orders to set. * @return This builder for chaining. */ - public Builder setValuePerCurrentModelAttributedConversion(double value) { + public Builder setOrders(double value) { - valuePerCurrentModelAttributedConversion_ = value; - bitField4_ |= 0x00000040; + orders_ = value; + bitField5_ |= 0x00000008; 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.
+     * Orders is the total number of purchase conversions you received attributed
+     * to your ads.
+     * How it works: You report conversions with cart data for
+     * completed purchases on your website. If a conversion is attributed to
+     * previous interactions with your ads (clicks for text or Shopping ads, views
+     * for video ads etc.) it's counted as an order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order on your website. Even though they bought 2
+     * products, this would count as 1 order.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double value_per_current_model_attributed_conversion = 152; + * optional double orders = 296; * @return This builder for chaining. */ - public Builder clearValuePerCurrentModelAttributedConversion() { - bitField4_ = (bitField4_ & ~0x00000040); - valuePerCurrentModelAttributedConversion_ = 0D; + public Builder clearOrders() { + bitField5_ = (bitField5_ & ~0x00000008); + orders_ = 0D; onChanged(); return this; } - private double videoQuartileP100Rate_ ; + private long averageOrderValueMicros_ ; /** *
-     * Percentage of impressions where the viewer watched all of your video.
+     * Average order value is the average revenue you made per order attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average order value is the total revenue from your orders
+     * divided by the total number of orders.
+     * Example: You received 3 orders which made $10, $15 and $20 worth of
+     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p100_rate = 132; - * @return Whether the videoQuartileP100Rate field is set. + * optional int64 average_order_value_micros = 297; + * @return Whether the averageOrderValueMicros field is set. */ @java.lang.Override - public boolean hasVideoQuartileP100Rate() { - return ((bitField4_ & 0x00000080) != 0); + public boolean hasAverageOrderValueMicros() { + return ((bitField5_ & 0x00000010) != 0); } /** *
-     * Percentage of impressions where the viewer watched all of your video.
+     * Average order value is the average revenue you made per order attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average order value is the total revenue from your orders
+     * divided by the total number of orders.
+     * Example: You received 3 orders which made $10, $15 and $20 worth of
+     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p100_rate = 132; - * @return The videoQuartileP100Rate. + * optional int64 average_order_value_micros = 297; + * @return The averageOrderValueMicros. */ @java.lang.Override - public double getVideoQuartileP100Rate() { - return videoQuartileP100Rate_; + public long getAverageOrderValueMicros() { + return averageOrderValueMicros_; } /** *
-     * Percentage of impressions where the viewer watched all of your video.
+     * Average order value is the average revenue you made per order attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average order value is the total revenue from your orders
+     * divided by the total number of orders.
+     * Example: You received 3 orders which made $10, $15 and $20 worth of
+     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p100_rate = 132; - * @param value The videoQuartileP100Rate to set. + * optional int64 average_order_value_micros = 297; + * @param value The averageOrderValueMicros to set. * @return This builder for chaining. */ - public Builder setVideoQuartileP100Rate(double value) { + public Builder setAverageOrderValueMicros(long value) { - videoQuartileP100Rate_ = value; - bitField4_ |= 0x00000080; + averageOrderValueMicros_ = value; + bitField5_ |= 0x00000010; onChanged(); return this; } /** *
-     * Percentage of impressions where the viewer watched all of your video.
+     * Average order value is the average revenue you made per order attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average order value is the total revenue from your orders
+     * divided by the total number of orders.
+     * Example: You received 3 orders which made $10, $15 and $20 worth of
+     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p100_rate = 132; + * optional int64 average_order_value_micros = 297; * @return This builder for chaining. */ - public Builder clearVideoQuartileP100Rate() { - bitField4_ = (bitField4_ & ~0x00000080); - videoQuartileP100Rate_ = 0D; + public Builder clearAverageOrderValueMicros() { + bitField5_ = (bitField5_ & ~0x00000010); + averageOrderValueMicros_ = 0L; onChanged(); return this; } - private double videoQuartileP25Rate_ ; + private double averageCartSize_ ; /** *
-     * Percentage of impressions where the viewer watched 25% of your video.
+     * Average cart size is the average number of products in each order
+     * attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average cart size is the total number of products sold
+     * divided by the total number of orders you received.
+     * Example: You received 2 orders, the first included 3 products and the
+     * second included 2. The average cart size is 2.5 products = (3+2)/2.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p25_rate = 133; - * @return Whether the videoQuartileP25Rate field is set. + * optional double average_cart_size = 298; + * @return Whether the averageCartSize field is set. */ @java.lang.Override - public boolean hasVideoQuartileP25Rate() { - return ((bitField4_ & 0x00000100) != 0); + public boolean hasAverageCartSize() { + return ((bitField5_ & 0x00000020) != 0); } /** *
-     * Percentage of impressions where the viewer watched 25% of your video.
+     * Average cart size is the average number of products in each order
+     * attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average cart size is the total number of products sold
+     * divided by the total number of orders you received.
+     * Example: You received 2 orders, the first included 3 products and the
+     * second included 2. The average cart size is 2.5 products = (3+2)/2.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p25_rate = 133; - * @return The videoQuartileP25Rate. + * optional double average_cart_size = 298; + * @return The averageCartSize. */ - @java.lang.Override - public double getVideoQuartileP25Rate() { - return videoQuartileP25Rate_; + @java.lang.Override + public double getAverageCartSize() { + return averageCartSize_; } /** *
-     * Percentage of impressions where the viewer watched 25% of your video.
+     * Average cart size is the average number of products in each order
+     * attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average cart size is the total number of products sold
+     * divided by the total number of orders you received.
+     * Example: You received 2 orders, the first included 3 products and the
+     * second included 2. The average cart size is 2.5 products = (3+2)/2.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p25_rate = 133; - * @param value The videoQuartileP25Rate to set. + * optional double average_cart_size = 298; + * @param value The averageCartSize to set. * @return This builder for chaining. */ - public Builder setVideoQuartileP25Rate(double value) { + public Builder setAverageCartSize(double value) { - videoQuartileP25Rate_ = value; - bitField4_ |= 0x00000100; + averageCartSize_ = value; + bitField5_ |= 0x00000020; onChanged(); return this; } /** *
-     * Percentage of impressions where the viewer watched 25% of your video.
+     * Average cart size is the average number of products in each order
+     * attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Average cart size is the total number of products sold
+     * divided by the total number of orders you received.
+     * Example: You received 2 orders, the first included 3 products and the
+     * second included 2. The average cart size is 2.5 products = (3+2)/2.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p25_rate = 133; + * optional double average_cart_size = 298; * @return This builder for chaining. */ - public Builder clearVideoQuartileP25Rate() { - bitField4_ = (bitField4_ & ~0x00000100); - videoQuartileP25Rate_ = 0D; + public Builder clearAverageCartSize() { + bitField5_ = (bitField5_ & ~0x00000020); + averageCartSize_ = 0D; onChanged(); return this; } - private double videoQuartileP50Rate_ ; + private long costOfGoodsSoldMicros_ ; /** *
-     * Percentage of impressions where the viewer watched 50% of your video.
+     * Cost of goods sold (COGS) is the total cost of the products you sold in
+     * orders attributed to your ads.
+     * How it works: You can add a cost of goods sold value to every product in
+     * Merchant Center. If you report conversions with cart data, the products you
+     * sold are matched with their cost of goods sold value and this can be used
+     * to calculate the gross profit you made on each order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cost of goods sold for this order
+     * is $8 = $3 + $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p50_rate = 134; - * @return Whether the videoQuartileP50Rate field is set. + * optional int64 cost_of_goods_sold_micros = 299; + * @return Whether the costOfGoodsSoldMicros field is set. */ @java.lang.Override - public boolean hasVideoQuartileP50Rate() { - return ((bitField4_ & 0x00000200) != 0); + public boolean hasCostOfGoodsSoldMicros() { + return ((bitField5_ & 0x00000040) != 0); } /** *
-     * Percentage of impressions where the viewer watched 50% of your video.
+     * Cost of goods sold (COGS) is the total cost of the products you sold in
+     * orders attributed to your ads.
+     * How it works: You can add a cost of goods sold value to every product in
+     * Merchant Center. If you report conversions with cart data, the products you
+     * sold are matched with their cost of goods sold value and this can be used
+     * to calculate the gross profit you made on each order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cost of goods sold for this order
+     * is $8 = $3 + $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p50_rate = 134; - * @return The videoQuartileP50Rate. + * optional int64 cost_of_goods_sold_micros = 299; + * @return The costOfGoodsSoldMicros. */ @java.lang.Override - public double getVideoQuartileP50Rate() { - return videoQuartileP50Rate_; + public long getCostOfGoodsSoldMicros() { + return costOfGoodsSoldMicros_; } /** *
-     * Percentage of impressions where the viewer watched 50% of your video.
+     * Cost of goods sold (COGS) is the total cost of the products you sold in
+     * orders attributed to your ads.
+     * How it works: You can add a cost of goods sold value to every product in
+     * Merchant Center. If you report conversions with cart data, the products you
+     * sold are matched with their cost of goods sold value and this can be used
+     * to calculate the gross profit you made on each order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cost of goods sold for this order
+     * is $8 = $3 + $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p50_rate = 134; - * @param value The videoQuartileP50Rate to set. + * optional int64 cost_of_goods_sold_micros = 299; + * @param value The costOfGoodsSoldMicros to set. * @return This builder for chaining. */ - public Builder setVideoQuartileP50Rate(double value) { + public Builder setCostOfGoodsSoldMicros(long value) { - videoQuartileP50Rate_ = value; - bitField4_ |= 0x00000200; + costOfGoodsSoldMicros_ = value; + bitField5_ |= 0x00000040; onChanged(); return this; } /** *
-     * Percentage of impressions where the viewer watched 50% of your video.
+     * Cost of goods sold (COGS) is the total cost of the products you sold in
+     * orders attributed to your ads.
+     * How it works: You can add a cost of goods sold value to every product in
+     * Merchant Center. If you report conversions with cart data, the products you
+     * sold are matched with their cost of goods sold value and this can be used
+     * to calculate the gross profit you made on each order.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cost of goods sold for this order
+     * is $8 = $3 + $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p50_rate = 134; + * optional int64 cost_of_goods_sold_micros = 299; * @return This builder for chaining. */ - public Builder clearVideoQuartileP50Rate() { - bitField4_ = (bitField4_ & ~0x00000200); - videoQuartileP50Rate_ = 0D; + public Builder clearCostOfGoodsSoldMicros() { + bitField5_ = (bitField5_ & ~0x00000040); + costOfGoodsSoldMicros_ = 0L; onChanged(); return this; } - private double videoQuartileP75Rate_ ; + private long grossProfitMicros_ ; /** *
-     * Percentage of impressions where the viewer watched 75% of your video.
+     * Gross profit is the profit you made from orders attributed to your ads
+     * minus the cost of goods sold (COGS).
+     * How it works: Gross profit is the revenue you made from sales attributed to
+     * your ads minus cost of goods sold. Gross profit calculations only include
+     * products that have a cost of goods sold value in Merchant Center.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
+     * the shirt has no cost of goods sold value. Gross profit for this order will
+     * only take into account the hat, so it's $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p75_rate = 135; - * @return Whether the videoQuartileP75Rate field is set. + * optional int64 gross_profit_micros = 300; + * @return Whether the grossProfitMicros field is set. */ @java.lang.Override - public boolean hasVideoQuartileP75Rate() { - return ((bitField4_ & 0x00000400) != 0); + public boolean hasGrossProfitMicros() { + return ((bitField5_ & 0x00000080) != 0); } /** *
-     * Percentage of impressions where the viewer watched 75% of your video.
+     * Gross profit is the profit you made from orders attributed to your ads
+     * minus the cost of goods sold (COGS).
+     * How it works: Gross profit is the revenue you made from sales attributed to
+     * your ads minus cost of goods sold. Gross profit calculations only include
+     * products that have a cost of goods sold value in Merchant Center.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
+     * the shirt has no cost of goods sold value. Gross profit for this order will
+     * only take into account the hat, so it's $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p75_rate = 135; - * @return The videoQuartileP75Rate. + * optional int64 gross_profit_micros = 300; + * @return The grossProfitMicros. */ @java.lang.Override - public double getVideoQuartileP75Rate() { - return videoQuartileP75Rate_; + public long getGrossProfitMicros() { + return grossProfitMicros_; } /** *
-     * Percentage of impressions where the viewer watched 75% of your video.
+     * Gross profit is the profit you made from orders attributed to your ads
+     * minus the cost of goods sold (COGS).
+     * How it works: Gross profit is the revenue you made from sales attributed to
+     * your ads minus cost of goods sold. Gross profit calculations only include
+     * products that have a cost of goods sold value in Merchant Center.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
+     * the shirt has no cost of goods sold value. Gross profit for this order will
+     * only take into account the hat, so it's $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p75_rate = 135; - * @param value The videoQuartileP75Rate to set. + * optional int64 gross_profit_micros = 300; + * @param value The grossProfitMicros to set. * @return This builder for chaining. */ - public Builder setVideoQuartileP75Rate(double value) { + public Builder setGrossProfitMicros(long value) { - videoQuartileP75Rate_ = value; - bitField4_ |= 0x00000400; + grossProfitMicros_ = value; + bitField5_ |= 0x00000080; onChanged(); return this; } /** *
-     * Percentage of impressions where the viewer watched 75% of your video.
+     * Gross profit is the profit you made from orders attributed to your ads
+     * minus the cost of goods sold (COGS).
+     * How it works: Gross profit is the revenue you made from sales attributed to
+     * your ads minus cost of goods sold. Gross profit calculations only include
+     * products that have a cost of goods sold value in Merchant Center.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
+     * the shirt has no cost of goods sold value. Gross profit for this order will
+     * only take into account the hat, so it's $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_quartile_p75_rate = 135; + * optional int64 gross_profit_micros = 300; * @return This builder for chaining. */ - public Builder clearVideoQuartileP75Rate() { - bitField4_ = (bitField4_ & ~0x00000400); - videoQuartileP75Rate_ = 0D; + public Builder clearGrossProfitMicros() { + bitField5_ = (bitField5_ & ~0x00000080); + grossProfitMicros_ = 0L; onChanged(); return this; } - private double videoTrueviewViewRate_ ; + private double grossProfitMargin_ ; /** *
-     * The number of TrueView views your video ad receives divided by its number
-     * of impressions, including thumbnail impressions for TrueView in-display
-     * ads.
+     * Gross profit margin is the percentage gross profit you made from orders
+     * attributed to your ads, after taking out the cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Gross profit margin is the gross profit you made divided
+     * by your total revenue and multiplied by 100%. Gross profit margin
+     * calculations only include products that have a cost of goods sold value in
+     * Merchant Center.
+     * Example: Someone bought a hat and a shirt in an order on your website. The
+     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
+     * priced $20 but has no cost of goods sold value. Gross profit margin for
+     * this order will only take into account the hat because it has a cost of
+     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_trueview_view_rate = 406; - * @return Whether the videoTrueviewViewRate field is set. + * optional double gross_profit_margin = 301; + * @return Whether the grossProfitMargin field is set. */ @java.lang.Override - public boolean hasVideoTrueviewViewRate() { - return ((bitField4_ & 0x00000800) != 0); + public boolean hasGrossProfitMargin() { + return ((bitField5_ & 0x00000100) != 0); } /** *
-     * The number of TrueView views your video ad receives divided by its number
-     * of impressions, including thumbnail impressions for TrueView in-display
-     * ads.
+     * Gross profit margin is the percentage gross profit you made from orders
+     * attributed to your ads, after taking out the cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Gross profit margin is the gross profit you made divided
+     * by your total revenue and multiplied by 100%. Gross profit margin
+     * calculations only include products that have a cost of goods sold value in
+     * Merchant Center.
+     * Example: Someone bought a hat and a shirt in an order on your website. The
+     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
+     * priced $20 but has no cost of goods sold value. Gross profit margin for
+     * this order will only take into account the hat because it has a cost of
+     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_trueview_view_rate = 406; - * @return The videoTrueviewViewRate. + * optional double gross_profit_margin = 301; + * @return The grossProfitMargin. */ @java.lang.Override - public double getVideoTrueviewViewRate() { - return videoTrueviewViewRate_; + public double getGrossProfitMargin() { + return grossProfitMargin_; } /** *
-     * The number of TrueView views your video ad receives divided by its number
-     * of impressions, including thumbnail impressions for TrueView in-display
-     * ads.
+     * Gross profit margin is the percentage gross profit you made from orders
+     * attributed to your ads, after taking out the cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Gross profit margin is the gross profit you made divided
+     * by your total revenue and multiplied by 100%. Gross profit margin
+     * calculations only include products that have a cost of goods sold value in
+     * Merchant Center.
+     * Example: Someone bought a hat and a shirt in an order on your website. The
+     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
+     * priced $20 but has no cost of goods sold value. Gross profit margin for
+     * this order will only take into account the hat because it has a cost of
+     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_trueview_view_rate = 406; - * @param value The videoTrueviewViewRate to set. + * optional double gross_profit_margin = 301; + * @param value The grossProfitMargin to set. * @return This builder for chaining. */ - public Builder setVideoTrueviewViewRate(double value) { + public Builder setGrossProfitMargin(double value) { - videoTrueviewViewRate_ = value; - bitField4_ |= 0x00000800; + grossProfitMargin_ = value; + bitField5_ |= 0x00000100; onChanged(); return this; } /** *
-     * The number of TrueView views your video ad receives divided by its number
-     * of impressions, including thumbnail impressions for TrueView in-display
-     * ads.
+     * Gross profit margin is the percentage gross profit you made from orders
+     * attributed to your ads, after taking out the cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Gross profit margin is the gross profit you made divided
+     * by your total revenue and multiplied by 100%. Gross profit margin
+     * calculations only include products that have a cost of goods sold value in
+     * Merchant Center.
+     * Example: Someone bought a hat and a shirt in an order on your website. The
+     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
+     * priced $20 but has no cost of goods sold value. Gross profit margin for
+     * this order will only take into account the hat because it has a cost of
+     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double video_trueview_view_rate = 406; + * optional double gross_profit_margin = 301; * @return This builder for chaining. */ - public Builder clearVideoTrueviewViewRate() { - bitField4_ = (bitField4_ & ~0x00000800); - videoTrueviewViewRate_ = 0D; + public Builder clearGrossProfitMargin() { + bitField5_ = (bitField5_ & ~0x00000100); + grossProfitMargin_ = 0D; onChanged(); return this; } - private long videoTrueviewViews_ ; + private long revenueMicros_ ; /** *
-     * The number of TrueView views your video ads received.
+     * Revenue is the total amount you made from orders attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Revenue is the total value of all the orders you received
+     * attributed to your ads, minus any discount.
+     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The entire order has a $5 discount. The revenue
+     * from this order is $25 = ($10 + $20) - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 video_trueview_views = 407; - * @return Whether the videoTrueviewViews field is set. + * optional int64 revenue_micros = 302; + * @return Whether the revenueMicros field is set. */ @java.lang.Override - public boolean hasVideoTrueviewViews() { - return ((bitField4_ & 0x00001000) != 0); + public boolean hasRevenueMicros() { + return ((bitField5_ & 0x00000200) != 0); } /** *
-     * The number of TrueView views your video ads received.
+     * Revenue is the total amount you made from orders attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Revenue is the total value of all the orders you received
+     * attributed to your ads, minus any discount.
+     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The entire order has a $5 discount. The revenue
+     * from this order is $25 = ($10 + $20) - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 video_trueview_views = 407; - * @return The videoTrueviewViews. + * optional int64 revenue_micros = 302; + * @return The revenueMicros. */ @java.lang.Override - public long getVideoTrueviewViews() { - return videoTrueviewViews_; + public long getRevenueMicros() { + return revenueMicros_; } /** *
-     * The number of TrueView views your video ads received.
+     * Revenue is the total amount you made from orders attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Revenue is the total value of all the orders you received
+     * attributed to your ads, minus any discount.
+     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The entire order has a $5 discount. The revenue
+     * from this order is $25 = ($10 + $20) - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 video_trueview_views = 407; - * @param value The videoTrueviewViews to set. + * optional int64 revenue_micros = 302; + * @param value The revenueMicros to set. * @return This builder for chaining. */ - public Builder setVideoTrueviewViews(long value) { + public Builder setRevenueMicros(long value) { - videoTrueviewViews_ = value; - bitField4_ |= 0x00001000; + revenueMicros_ = value; + bitField5_ |= 0x00000200; onChanged(); return this; } /** *
-     * The number of TrueView views your video ads received.
+     * Revenue is the total amount you made from orders attributed to your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Revenue is the total value of all the orders you received
+     * attributed to your ads, minus any discount.
+     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
+     * hat and a shirt in an order from your website. The hat is priced $10 and
+     * the shirt is priced $20. The entire order has a $5 discount. The revenue
+     * from this order is $25 = ($10 + $20) - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 video_trueview_views = 407; + * optional int64 revenue_micros = 302; * @return This builder for chaining. */ - public Builder clearVideoTrueviewViews() { - bitField4_ = (bitField4_ & ~0x00001000); - videoTrueviewViews_ = 0L; + public Builder clearRevenueMicros() { + bitField5_ = (bitField5_ & ~0x00000200); + revenueMicros_ = 0L; onChanged(); return this; } - private long viewThroughConversions_ ; + private double unitsSold_ ; /** *
-     * 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.
+     * Units sold is the total number of products sold from orders attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Units sold is the total number of products sold from all
+     * orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The units sold in this order is 3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 view_through_conversions = 155; - * @return Whether the viewThroughConversions field is set. + * optional double units_sold = 303; + * @return Whether the unitsSold field is set. */ @java.lang.Override - public boolean hasViewThroughConversions() { - return ((bitField4_ & 0x00002000) != 0); + public boolean hasUnitsSold() { + return ((bitField5_ & 0x00000400) != 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.
+     * Units sold is the total number of products sold from orders attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Units sold is the total number of products sold from all
+     * orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The units sold in this order is 3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 view_through_conversions = 155; - * @return The viewThroughConversions. + * optional double units_sold = 303; + * @return The unitsSold. */ @java.lang.Override - public long getViewThroughConversions() { - return viewThroughConversions_; + public double getUnitsSold() { + return unitsSold_; } /** *
-     * 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.
+     * Units sold is the total number of products sold from orders attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Units sold is the total number of products sold from all
+     * orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The units sold in this order is 3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 view_through_conversions = 155; - * @param value The viewThroughConversions to set. + * optional double units_sold = 303; + * @param value The unitsSold to set. * @return This builder for chaining. */ - public Builder setViewThroughConversions(long value) { + public Builder setUnitsSold(double value) { - viewThroughConversions_ = value; - bitField4_ |= 0x00002000; + unitsSold_ = value; + bitField5_ |= 0x00000400; 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.
+     * Units sold is the total number of products sold from orders attributed to
+     * your ads.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. Units sold is the total number of products sold from all
+     * orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The units sold in this order is 3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional int64 view_through_conversions = 155; + * optional double units_sold = 303; * @return This builder for chaining. */ - public Builder clearViewThroughConversions() { - bitField4_ = (bitField4_ & ~0x00002000); - viewThroughConversions_ = 0L; + public Builder clearUnitsSold() { + bitField5_ = (bitField5_ & ~0x00000400); + unitsSold_ = 0D; onChanged(); return this; } - private long skAdNetworkInstalls_ ; + private long crossSellCostOfGoodsSoldMicros_ ; /** *
-     * The number of iOS Store Kit Ad Network conversions.
+     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
+     * a result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
+     * the products sold that weren't advertised.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
+     * this order is $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 sk_ad_network_installs = 246; - * @return The skAdNetworkInstalls. + * optional int64 cross_sell_cost_of_goods_sold_micros = 304; + * @return Whether the crossSellCostOfGoodsSoldMicros field is set. + */ + @java.lang.Override + public boolean hasCrossSellCostOfGoodsSoldMicros() { + return ((bitField5_ & 0x00000800) != 0); + } + /** + *
+     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
+     * a result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
+     * the products sold that weren't advertised.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
+     * this order is $5.
+     * This metric is only available if you report conversions with cart data.
+     * 
+ * + * optional int64 cross_sell_cost_of_goods_sold_micros = 304; + * @return The crossSellCostOfGoodsSoldMicros. */ @java.lang.Override - public long getSkAdNetworkInstalls() { - return skAdNetworkInstalls_; + public long getCrossSellCostOfGoodsSoldMicros() { + return crossSellCostOfGoodsSoldMicros_; } /** *
-     * The number of iOS Store Kit Ad Network conversions.
+     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
+     * a result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
+     * the products sold that weren't advertised.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
+     * this order is $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 sk_ad_network_installs = 246; - * @param value The skAdNetworkInstalls to set. + * optional int64 cross_sell_cost_of_goods_sold_micros = 304; + * @param value The crossSellCostOfGoodsSoldMicros to set. * @return This builder for chaining. */ - public Builder setSkAdNetworkInstalls(long value) { + public Builder setCrossSellCostOfGoodsSoldMicros(long value) { - skAdNetworkInstalls_ = value; - bitField4_ |= 0x00004000; + crossSellCostOfGoodsSoldMicros_ = value; + bitField5_ |= 0x00000800; onChanged(); return this; } /** *
-     * The number of iOS Store Kit Ad Network conversions.
+     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
+     * a result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
+     * the products sold that weren't advertised.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
+     * this order is $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 sk_ad_network_installs = 246; + * optional int64 cross_sell_cost_of_goods_sold_micros = 304; * @return This builder for chaining. */ - public Builder clearSkAdNetworkInstalls() { - bitField4_ = (bitField4_ & ~0x00004000); - skAdNetworkInstalls_ = 0L; + public Builder clearCrossSellCostOfGoodsSoldMicros() { + bitField5_ = (bitField5_ & ~0x00000800); + crossSellCostOfGoodsSoldMicros_ = 0L; onChanged(); return this; } - private long skAdNetworkTotalConversions_ ; + private long crossSellGrossProfitMicros_ ; /** *
-     * The total number of iOS Store Kit Ad Network conversions.
+     * Cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the purchase is a sold
+     * product. If these products don't match then this is considered cross-sell.
+     * Cross-sell gross profit is the revenue you made from cross-sell attributed
+     * to your ads minus the cost of the goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
+     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 sk_ad_network_total_conversions = 292; - * @return The skAdNetworkTotalConversions. + * optional int64 cross_sell_gross_profit_micros = 305; + * @return Whether the crossSellGrossProfitMicros field is set. */ @java.lang.Override - public long getSkAdNetworkTotalConversions() { - return skAdNetworkTotalConversions_; + public boolean hasCrossSellGrossProfitMicros() { + return ((bitField5_ & 0x00001000) != 0); } /** *
-     * The total number of iOS Store Kit Ad Network conversions.
+     * Cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the purchase is a sold
+     * product. If these products don't match then this is considered cross-sell.
+     * Cross-sell gross profit is the revenue you made from cross-sell attributed
+     * to your ads minus the cost of the goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
+     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 sk_ad_network_total_conversions = 292; - * @param value The skAdNetworkTotalConversions to set. - * @return This builder for chaining. + * optional int64 cross_sell_gross_profit_micros = 305; + * @return The crossSellGrossProfitMicros. */ - public Builder setSkAdNetworkTotalConversions(long value) { - - skAdNetworkTotalConversions_ = value; - bitField4_ |= 0x00008000; - onChanged(); - return this; + @java.lang.Override + public long getCrossSellGrossProfitMicros() { + return crossSellGrossProfitMicros_; } /** *
-     * The total number of iOS Store Kit Ad Network conversions.
+     * Cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the purchase is a sold
+     * product. If these products don't match then this is considered cross-sell.
+     * Cross-sell gross profit is the revenue you made from cross-sell attributed
+     * to your ads minus the cost of the goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
+     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 sk_ad_network_total_conversions = 292; + * optional int64 cross_sell_gross_profit_micros = 305; + * @param value The crossSellGrossProfitMicros to set. * @return This builder for chaining. */ - public Builder clearSkAdNetworkTotalConversions() { - bitField4_ = (bitField4_ & ~0x00008000); - skAdNetworkTotalConversions_ = 0L; + public Builder setCrossSellGrossProfitMicros(long value) { + + crossSellGrossProfitMicros_ = value; + bitField5_ |= 0x00001000; onChanged(); return this; } - - private long publisherPurchasedClicks_ ; - /** - *
-     * Clicks from properties not owned by the publisher for which the traffic
-     * the publisher has paid for or acquired through incentivized activity
-     * 
- * - * int64 publisher_purchased_clicks = 264; - * @return The publisherPurchasedClicks. - */ - @java.lang.Override - public long getPublisherPurchasedClicks() { - return publisherPurchasedClicks_; - } /** *
-     * Clicks from properties not owned by the publisher for which the traffic
-     * the publisher has paid for or acquired through incentivized activity
+     * Cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the purchase is a sold
+     * product. If these products don't match then this is considered cross-sell.
+     * Cross-sell gross profit is the revenue you made from cross-sell attributed
+     * to your ads minus the cost of the goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
+     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_purchased_clicks = 264; - * @param value The publisherPurchasedClicks to set. + * optional int64 cross_sell_gross_profit_micros = 305; * @return This builder for chaining. */ - public Builder setPublisherPurchasedClicks(long value) { - - publisherPurchasedClicks_ = value; - bitField4_ |= 0x00010000; + public Builder clearCrossSellGrossProfitMicros() { + bitField5_ = (bitField5_ & ~0x00001000); + crossSellGrossProfitMicros_ = 0L; onChanged(); return this; } + + private long crossSellRevenueMicros_ ; /** *
-     * Clicks from properties not owned by the publisher for which the traffic
-     * the publisher has paid for or acquired through incentivized activity
+     * Cross-sell revenue is the total amount you made from products sold as a
+     * result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell revenue is the total value you made from
+     * cross-sell attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * cross-sell revenue of this order is $20.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_purchased_clicks = 264; - * @return This builder for chaining. + * optional int64 cross_sell_revenue_micros = 306; + * @return Whether the crossSellRevenueMicros field is set. */ - public Builder clearPublisherPurchasedClicks() { - bitField4_ = (bitField4_ & ~0x00010000); - publisherPurchasedClicks_ = 0L; - onChanged(); - return this; + @java.lang.Override + public boolean hasCrossSellRevenueMicros() { + return ((bitField5_ & 0x00002000) != 0); } - - private long publisherOrganicClicks_ ; /** *
-     * Clicks from properties for which the traffic the publisher has not paid
-     * for or acquired through incentivized activity
+     * Cross-sell revenue is the total amount you made from products sold as a
+     * result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell revenue is the total value you made from
+     * cross-sell attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * cross-sell revenue of this order is $20.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_organic_clicks = 265; - * @return The publisherOrganicClicks. + * optional int64 cross_sell_revenue_micros = 306; + * @return The crossSellRevenueMicros. */ @java.lang.Override - public long getPublisherOrganicClicks() { - return publisherOrganicClicks_; + public long getCrossSellRevenueMicros() { + return crossSellRevenueMicros_; } /** *
-     * Clicks from properties for which the traffic the publisher has not paid
-     * for or acquired through incentivized activity
+     * Cross-sell revenue is the total amount you made from products sold as a
+     * result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell revenue is the total value you made from
+     * cross-sell attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * cross-sell revenue of this order is $20.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_organic_clicks = 265; - * @param value The publisherOrganicClicks to set. + * optional int64 cross_sell_revenue_micros = 306; + * @param value The crossSellRevenueMicros to set. * @return This builder for chaining. */ - public Builder setPublisherOrganicClicks(long value) { + public Builder setCrossSellRevenueMicros(long value) { - publisherOrganicClicks_ = value; - bitField4_ |= 0x00020000; + crossSellRevenueMicros_ = value; + bitField5_ |= 0x00002000; onChanged(); return this; } /** *
-     * Clicks from properties for which the traffic the publisher has not paid
-     * for or acquired through incentivized activity
+     * Cross-sell revenue is the total amount you made from products sold as a
+     * result of advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell revenue is the total value you made from
+     * cross-sell attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * cross-sell revenue of this order is $20.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_organic_clicks = 265; + * optional int64 cross_sell_revenue_micros = 306; * @return This builder for chaining. */ - public Builder clearPublisherOrganicClicks() { - bitField4_ = (bitField4_ & ~0x00020000); - publisherOrganicClicks_ = 0L; + public Builder clearCrossSellRevenueMicros() { + bitField5_ = (bitField5_ & ~0x00002000); + crossSellRevenueMicros_ = 0L; onChanged(); return this; } - private long publisherUnknownClicks_ ; + private double crossSellUnitsSold_ ; /** *
-     * Clicks from traffic which is not identified as "Publisher Purchased" or
-     * "Publisher Organic"
+     * Cross-sell units sold is the total number of products sold as a result of
+     * advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell units sold is the total number of
+     * cross-sold products from all orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_unknown_clicks = 266; - * @return The publisherUnknownClicks. + * optional double cross_sell_units_sold = 307; + * @return Whether the crossSellUnitsSold field is set. */ @java.lang.Override - public long getPublisherUnknownClicks() { - return publisherUnknownClicks_; + public boolean hasCrossSellUnitsSold() { + return ((bitField5_ & 0x00004000) != 0); } /** *
-     * Clicks from traffic which is not identified as "Publisher Purchased" or
-     * "Publisher Organic"
+     * Cross-sell units sold is the total number of products sold as a result of
+     * advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell units sold is the total number of
+     * cross-sold products from all orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_unknown_clicks = 266; - * @param value The publisherUnknownClicks to set. + * optional double cross_sell_units_sold = 307; + * @return The crossSellUnitsSold. + */ + @java.lang.Override + public double getCrossSellUnitsSold() { + return crossSellUnitsSold_; + } + /** + *
+     * Cross-sell units sold is the total number of products sold as a result of
+     * advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell units sold is the total number of
+     * cross-sold products from all orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
+     * This metric is only available if you report conversions with cart data.
+     * 
+ * + * optional double cross_sell_units_sold = 307; + * @param value The crossSellUnitsSold to set. * @return This builder for chaining. */ - public Builder setPublisherUnknownClicks(long value) { + public Builder setCrossSellUnitsSold(double value) { - publisherUnknownClicks_ = value; - bitField4_ |= 0x00040000; + crossSellUnitsSold_ = value; + bitField5_ |= 0x00004000; onChanged(); return this; } /** *
-     * Clicks from traffic which is not identified as "Publisher Purchased" or
-     * "Publisher Organic"
+     * Cross-sell units sold is the total number of products sold as a result of
+     * advertising a different product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If these products don't match then this is
+     * considered cross-sell. Cross-sell units sold is the total number of
+     * cross-sold products from all orders attributed to your ads.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * int64 publisher_unknown_clicks = 266; + * optional double cross_sell_units_sold = 307; * @return This builder for chaining. */ - public Builder clearPublisherUnknownClicks() { - bitField4_ = (bitField4_ & ~0x00040000); - publisherUnknownClicks_ = 0L; + public Builder clearCrossSellUnitsSold() { + bitField5_ = (bitField5_ & ~0x00004000); + crossSellUnitsSold_ = 0D; onChanged(); return this; } - private double allConversionsFromLocationAssetClickToCall_ ; + private long leadCostOfGoodsSoldMicros_ ; /** *
-     * Number of call button clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead cost of goods sold (COGS) is the total cost of products sold as a
+     * result of advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with has an associated
+     * product (see Shopping Ads) then this product is considered the advertised
+     * product. Any product included in the order the customer places is a sold
+     * product. If the advertised and sold products match, then the cost of these
+     * goods is counted under lead cost of goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The lead cost of goods sold for this
+     * order is $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_click_to_call = 267; - * @return Whether the allConversionsFromLocationAssetClickToCall field is set. + * optional int64 lead_cost_of_goods_sold_micros = 308; + * @return Whether the leadCostOfGoodsSoldMicros field is set. */ @java.lang.Override - public boolean hasAllConversionsFromLocationAssetClickToCall() { - return ((bitField4_ & 0x00080000) != 0); + public boolean hasLeadCostOfGoodsSoldMicros() { + return ((bitField5_ & 0x00008000) != 0); } /** *
-     * Number of call button clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead cost of goods sold (COGS) is the total cost of products sold as a
+     * result of advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with has an associated
+     * product (see Shopping Ads) then this product is considered the advertised
+     * product. Any product included in the order the customer places is a sold
+     * product. If the advertised and sold products match, then the cost of these
+     * goods is counted under lead cost of goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The lead cost of goods sold for this
+     * order is $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_click_to_call = 267; - * @return The allConversionsFromLocationAssetClickToCall. + * optional int64 lead_cost_of_goods_sold_micros = 308; + * @return The leadCostOfGoodsSoldMicros. */ @java.lang.Override - public double getAllConversionsFromLocationAssetClickToCall() { - return allConversionsFromLocationAssetClickToCall_; + public long getLeadCostOfGoodsSoldMicros() { + return leadCostOfGoodsSoldMicros_; } /** *
-     * Number of call button clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead cost of goods sold (COGS) is the total cost of products sold as a
+     * result of advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with has an associated
+     * product (see Shopping Ads) then this product is considered the advertised
+     * product. Any product included in the order the customer places is a sold
+     * product. If the advertised and sold products match, then the cost of these
+     * goods is counted under lead cost of goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The lead cost of goods sold for this
+     * order is $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_click_to_call = 267; - * @param value The allConversionsFromLocationAssetClickToCall to set. + * optional int64 lead_cost_of_goods_sold_micros = 308; + * @param value The leadCostOfGoodsSoldMicros to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromLocationAssetClickToCall(double value) { + public Builder setLeadCostOfGoodsSoldMicros(long value) { - allConversionsFromLocationAssetClickToCall_ = value; - bitField4_ |= 0x00080000; + leadCostOfGoodsSoldMicros_ = value; + bitField5_ |= 0x00008000; onChanged(); return this; } /** *
-     * Number of call button clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead cost of goods sold (COGS) is the total cost of products sold as a
+     * result of advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with has an associated
+     * product (see Shopping Ads) then this product is considered the advertised
+     * product. Any product included in the order the customer places is a sold
+     * product. If the advertised and sold products match, then the cost of these
+     * goods is counted under lead cost of goods sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
+     * has a cost of goods sold value of $5. The lead cost of goods sold for this
+     * order is $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_click_to_call = 267; + * optional int64 lead_cost_of_goods_sold_micros = 308; * @return This builder for chaining. */ - public Builder clearAllConversionsFromLocationAssetClickToCall() { - bitField4_ = (bitField4_ & ~0x00080000); - allConversionsFromLocationAssetClickToCall_ = 0D; + public Builder clearLeadCostOfGoodsSoldMicros() { + bitField5_ = (bitField5_ & ~0x00008000); + leadCostOfGoodsSoldMicros_ = 0L; onChanged(); return this; } - private double allConversionsFromLocationAssetDirections_ ; + private long leadGrossProfitMicros_ ; /** *
-     * Number of driving directions clicks on any location surface after a
-     * chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * Lead gross profit is the profit you made from products sold as a result of
+     * advertising the same product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the revenue you made from these sales minus the cost of goods sold is your
+     * lead gross profit.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
+     * of $3. The lead gross profit of this order is $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_directions = 268; - * @return Whether the allConversionsFromLocationAssetDirections field is set. + * optional int64 lead_gross_profit_micros = 309; + * @return Whether the leadGrossProfitMicros field is set. */ @java.lang.Override - public boolean hasAllConversionsFromLocationAssetDirections() { - return ((bitField4_ & 0x00100000) != 0); + public boolean hasLeadGrossProfitMicros() { + return ((bitField5_ & 0x00010000) != 0); } /** *
-     * Number of driving directions clicks on any location surface after a
-     * chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * Lead gross profit is the profit you made from products sold as a result of
+     * advertising the same product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the revenue you made from these sales minus the cost of goods sold is your
+     * lead gross profit.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
+     * of $3. The lead gross profit of this order is $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_directions = 268; - * @return The allConversionsFromLocationAssetDirections. + * optional int64 lead_gross_profit_micros = 309; + * @return The leadGrossProfitMicros. */ - @java.lang.Override - public double getAllConversionsFromLocationAssetDirections() { - return allConversionsFromLocationAssetDirections_; + @java.lang.Override + public long getLeadGrossProfitMicros() { + return leadGrossProfitMicros_; } /** *
-     * Number of driving directions clicks on any location surface after a
-     * chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * Lead gross profit is the profit you made from products sold as a result of
+     * advertising the same product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the revenue you made from these sales minus the cost of goods sold is your
+     * lead gross profit.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
+     * of $3. The lead gross profit of this order is $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_directions = 268; - * @param value The allConversionsFromLocationAssetDirections to set. + * optional int64 lead_gross_profit_micros = 309; + * @param value The leadGrossProfitMicros to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromLocationAssetDirections(double value) { + public Builder setLeadGrossProfitMicros(long value) { - allConversionsFromLocationAssetDirections_ = value; - bitField4_ |= 0x00100000; + leadGrossProfitMicros_ = value; + bitField5_ |= 0x00010000; onChanged(); return this; } /** *
-     * Number of driving directions clicks on any location surface after a
-     * chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * Lead gross profit is the profit you made from products sold as a result of
+     * advertising the same product, minus cost of goods sold (COGS).
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the revenue you made from these sales minus the cost of goods sold is your
+     * lead gross profit.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
+     * of $3. The lead gross profit of this order is $7 = $10 - $3.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_directions = 268; + * optional int64 lead_gross_profit_micros = 309; * @return This builder for chaining. */ - public Builder clearAllConversionsFromLocationAssetDirections() { - bitField4_ = (bitField4_ & ~0x00100000); - allConversionsFromLocationAssetDirections_ = 0D; + public Builder clearLeadGrossProfitMicros() { + bitField5_ = (bitField5_ & ~0x00010000); + leadGrossProfitMicros_ = 0L; onChanged(); return this; } - private double allConversionsFromLocationAssetMenu_ ; + private long leadRevenueMicros_ ; /** *
-     * Number of menu link clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead revenue is the total amount you made from products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total value you made from the sales of these products is shown under
+     * lead revenue.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * lead revenue of this order is $10.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_menu = 269; - * @return Whether the allConversionsFromLocationAssetMenu field is set. + * optional int64 lead_revenue_micros = 310; + * @return Whether the leadRevenueMicros field is set. */ @java.lang.Override - public boolean hasAllConversionsFromLocationAssetMenu() { - return ((bitField4_ & 0x00200000) != 0); + public boolean hasLeadRevenueMicros() { + return ((bitField5_ & 0x00020000) != 0); } /** *
-     * Number of menu link clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead revenue is the total amount you made from products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total value you made from the sales of these products is shown under
+     * lead revenue.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * lead revenue of this order is $10.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_menu = 269; - * @return The allConversionsFromLocationAssetMenu. + * optional int64 lead_revenue_micros = 310; + * @return The leadRevenueMicros. */ @java.lang.Override - public double getAllConversionsFromLocationAssetMenu() { - return allConversionsFromLocationAssetMenu_; + public long getLeadRevenueMicros() { + return leadRevenueMicros_; } /** *
-     * Number of menu link clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead revenue is the total amount you made from products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total value you made from the sales of these products is shown under
+     * lead revenue.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * lead revenue of this order is $10.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_menu = 269; - * @param value The allConversionsFromLocationAssetMenu to set. + * optional int64 lead_revenue_micros = 310; + * @param value The leadRevenueMicros to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromLocationAssetMenu(double value) { + public Builder setLeadRevenueMicros(long value) { - allConversionsFromLocationAssetMenu_ = value; - bitField4_ |= 0x00200000; + leadRevenueMicros_ = value; + bitField5_ |= 0x00020000; onChanged(); return this; } /** *
-     * Number of menu link clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead revenue is the total amount you made from products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total value you made from the sales of these products is shown under
+     * lead revenue.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
+     * lead revenue of this order is $10.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_menu = 269; + * optional int64 lead_revenue_micros = 310; * @return This builder for chaining. */ - public Builder clearAllConversionsFromLocationAssetMenu() { - bitField4_ = (bitField4_ & ~0x00200000); - allConversionsFromLocationAssetMenu_ = 0D; + public Builder clearLeadRevenueMicros() { + bitField5_ = (bitField5_ & ~0x00020000); + leadRevenueMicros_ = 0L; onChanged(); return this; } - private double allConversionsFromLocationAssetOrder_ ; + private double leadUnitsSold_ ; /** *
-     * Number of order clicks on any location surface after a chargeable ad event
-     * (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead units sold is the total number of products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total number of these products sold is shown under lead units sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The lead units sold in this order is 1.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_order = 270; - * @return Whether the allConversionsFromLocationAssetOrder field is set. + * optional double lead_units_sold = 311; + * @return Whether the leadUnitsSold field is set. */ @java.lang.Override - public boolean hasAllConversionsFromLocationAssetOrder() { - return ((bitField4_ & 0x00400000) != 0); + public boolean hasLeadUnitsSold() { + return ((bitField5_ & 0x00040000) != 0); } /** *
-     * Number of order clicks on any location surface after a chargeable ad event
-     * (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead units sold is the total number of products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total number of these products sold is shown under lead units sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The lead units sold in this order is 1.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_order = 270; - * @return The allConversionsFromLocationAssetOrder. + * optional double lead_units_sold = 311; + * @return The leadUnitsSold. */ @java.lang.Override - public double getAllConversionsFromLocationAssetOrder() { - return allConversionsFromLocationAssetOrder_; + public double getLeadUnitsSold() { + return leadUnitsSold_; } /** *
-     * Number of order clicks on any location surface after a chargeable ad event
-     * (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead units sold is the total number of products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total number of these products sold is shown under lead units sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The lead units sold in this order is 1.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_order = 270; - * @param value The allConversionsFromLocationAssetOrder to set. + * optional double lead_units_sold = 311; + * @param value The leadUnitsSold to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromLocationAssetOrder(double value) { + public Builder setLeadUnitsSold(double value) { - allConversionsFromLocationAssetOrder_ = value; - bitField4_ |= 0x00400000; + leadUnitsSold_ = value; + bitField5_ |= 0x00040000; onChanged(); return this; } /** *
-     * Number of order clicks on any location surface after a chargeable ad event
-     * (click or impression). This measure is coming from Asset based
-     * location.
+     * Lead units sold is the total number of products sold as a result of
+     * advertising the same product.
+     * How it works: You report conversions with cart data for completed purchases
+     * on your website. If the ad that was interacted with before the purchase has
+     * an associated product (see Shopping Ads) then this product is considered
+     * the advertised product. Any product included in the order the customer
+     * places is a sold product. If the advertised and sold products match, then
+     * the total number of these products sold is shown under lead units sold.
+     * Example: Someone clicked on a Shopping ad for a hat then bought the same
+     * hat, a shirt and a jacket. The lead units sold in this order is 1.
+     * This metric is only available if you report conversions with cart data.
      * 
* - * optional double all_conversions_from_location_asset_order = 270; + * optional double lead_units_sold = 311; * @return This builder for chaining. */ - public Builder clearAllConversionsFromLocationAssetOrder() { - bitField4_ = (bitField4_ & ~0x00400000); - allConversionsFromLocationAssetOrder_ = 0D; + public Builder clearLeadUnitsSold() { + bitField5_ = (bitField5_ & ~0x00040000); + leadUnitsSold_ = 0D; onChanged(); return this; } - private double allConversionsFromLocationAssetOtherEngagement_ ; + private long uniqueUsers_ ; /** *
-     * Number of other types of local action clicks on any location surface after
-     * a chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * The number of unique users who saw your ad during the requested time
+     * period. This metric cannot be aggregated, and can only be requested for
+     * date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_other_engagement = 271; - * @return Whether the allConversionsFromLocationAssetOtherEngagement field is set. + * optional int64 unique_users = 319; + * @return Whether the uniqueUsers field is set. */ @java.lang.Override - public boolean hasAllConversionsFromLocationAssetOtherEngagement() { - return ((bitField4_ & 0x00800000) != 0); + public boolean hasUniqueUsers() { + return ((bitField5_ & 0x00080000) != 0); } /** *
-     * Number of other types of local action clicks on any location surface after
-     * a chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * The number of unique users who saw your ad during the requested time
+     * period. This metric cannot be aggregated, and can only be requested for
+     * date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_other_engagement = 271; - * @return The allConversionsFromLocationAssetOtherEngagement. + * optional int64 unique_users = 319; + * @return The uniqueUsers. */ @java.lang.Override - public double getAllConversionsFromLocationAssetOtherEngagement() { - return allConversionsFromLocationAssetOtherEngagement_; + public long getUniqueUsers() { + return uniqueUsers_; } /** *
-     * Number of other types of local action clicks on any location surface after
-     * a chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * The number of unique users who saw your ad during the requested time
+     * period. This metric cannot be aggregated, and can only be requested for
+     * date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_other_engagement = 271; - * @param value The allConversionsFromLocationAssetOtherEngagement to set. + * optional int64 unique_users = 319; + * @param value The uniqueUsers to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromLocationAssetOtherEngagement(double value) { + public Builder setUniqueUsers(long value) { - allConversionsFromLocationAssetOtherEngagement_ = value; - bitField4_ |= 0x00800000; + uniqueUsers_ = value; + bitField5_ |= 0x00080000; onChanged(); return this; } /** *
-     * Number of other types of local action clicks on any location surface after
-     * a chargeable ad event (click or impression). This measure is coming
-     * from Asset based location.
+     * The number of unique users who saw your ad during the requested time
+     * period. This metric cannot be aggregated, and can only be requested for
+     * date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_other_engagement = 271; + * optional int64 unique_users = 319; * @return This builder for chaining. */ - public Builder clearAllConversionsFromLocationAssetOtherEngagement() { - bitField4_ = (bitField4_ & ~0x00800000); - allConversionsFromLocationAssetOtherEngagement_ = 0D; + public Builder clearUniqueUsers() { + bitField5_ = (bitField5_ & ~0x00080000); + uniqueUsers_ = 0L; onChanged(); return this; } - private double allConversionsFromLocationAssetStoreVisits_ ; + private double averageImpressionFrequencyPerUser_ ; /** *
-     * Estimated number of visits to the business after a chargeable
-     * ad event (click or impression). This measure is coming from Asset
-     * based location.
+     * The average number of times a unique user saw your ad during the requested
+     * time period. This metric cannot be aggregated, and can only be requested
+     * for date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_store_visits = 272; - * @return Whether the allConversionsFromLocationAssetStoreVisits field is set. + * optional double average_impression_frequency_per_user = 320; + * @return Whether the averageImpressionFrequencyPerUser field is set. */ @java.lang.Override - public boolean hasAllConversionsFromLocationAssetStoreVisits() { - return ((bitField4_ & 0x01000000) != 0); + public boolean hasAverageImpressionFrequencyPerUser() { + return ((bitField5_ & 0x00100000) != 0); } /** *
-     * Estimated number of visits to the business after a chargeable
-     * ad event (click or impression). This measure is coming from Asset
-     * based location.
+     * The average number of times a unique user saw your ad during the requested
+     * time period. This metric cannot be aggregated, and can only be requested
+     * for date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_store_visits = 272; - * @return The allConversionsFromLocationAssetStoreVisits. + * optional double average_impression_frequency_per_user = 320; + * @return The averageImpressionFrequencyPerUser. */ @java.lang.Override - public double getAllConversionsFromLocationAssetStoreVisits() { - return allConversionsFromLocationAssetStoreVisits_; + public double getAverageImpressionFrequencyPerUser() { + return averageImpressionFrequencyPerUser_; } /** *
-     * Estimated number of visits to the business after a chargeable
-     * ad event (click or impression). This measure is coming from Asset
-     * based location.
+     * The average number of times a unique user saw your ad during the requested
+     * time period. This metric cannot be aggregated, and can only be requested
+     * for date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_store_visits = 272; - * @param value The allConversionsFromLocationAssetStoreVisits to set. + * optional double average_impression_frequency_per_user = 320; + * @param value The averageImpressionFrequencyPerUser to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromLocationAssetStoreVisits(double value) { + public Builder setAverageImpressionFrequencyPerUser(double value) { - allConversionsFromLocationAssetStoreVisits_ = value; - bitField4_ |= 0x01000000; + averageImpressionFrequencyPerUser_ = value; + bitField5_ |= 0x00100000; onChanged(); return this; } /** *
-     * Estimated number of visits to the business after a chargeable
-     * ad event (click or impression). This measure is coming from Asset
-     * based location.
+     * The average number of times a unique user saw your ad during the requested
+     * time period. This metric cannot be aggregated, and can only be requested
+     * for date ranges of 92 days or less. This metric is available for following
+     * campaign types - Display, Video, Discovery and App.
      * 
* - * optional double all_conversions_from_location_asset_store_visits = 272; + * optional double average_impression_frequency_per_user = 320; * @return This builder for chaining. */ - public Builder clearAllConversionsFromLocationAssetStoreVisits() { - bitField4_ = (bitField4_ & ~0x01000000); - allConversionsFromLocationAssetStoreVisits_ = 0D; + public Builder clearAverageImpressionFrequencyPerUser() { + bitField5_ = (bitField5_ & ~0x00100000); + averageImpressionFrequencyPerUser_ = 0D; onChanged(); return this; } - private double allConversionsFromLocationAssetWebsite_ ; + private long linkedEntitiesCount_ ; /** *
-     * Number of website URL clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Number of linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double all_conversions_from_location_asset_website = 273; - * @return Whether the allConversionsFromLocationAssetWebsite field is set. + * optional int64 linked_entities_count = 341; + * @return Whether the linkedEntitiesCount field is set. */ @java.lang.Override - public boolean hasAllConversionsFromLocationAssetWebsite() { - return ((bitField4_ & 0x02000000) != 0); + public boolean hasLinkedEntitiesCount() { + return ((bitField5_ & 0x00200000) != 0); } /** *
-     * Number of website URL clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Number of linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double all_conversions_from_location_asset_website = 273; - * @return The allConversionsFromLocationAssetWebsite. + * optional int64 linked_entities_count = 341; + * @return The linkedEntitiesCount. */ @java.lang.Override - public double getAllConversionsFromLocationAssetWebsite() { - return allConversionsFromLocationAssetWebsite_; + public long getLinkedEntitiesCount() { + return linkedEntitiesCount_; } /** *
-     * Number of website URL clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Number of linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double all_conversions_from_location_asset_website = 273; - * @param value The allConversionsFromLocationAssetWebsite to set. + * optional int64 linked_entities_count = 341; + * @param value The linkedEntitiesCount to set. * @return This builder for chaining. */ - public Builder setAllConversionsFromLocationAssetWebsite(double value) { + public Builder setLinkedEntitiesCount(long value) { - allConversionsFromLocationAssetWebsite_ = value; - bitField4_ |= 0x02000000; + linkedEntitiesCount_ = value; + bitField5_ |= 0x00200000; onChanged(); return this; } /** *
-     * Number of website URL clicks on any location surface after a chargeable ad
-     * event (click or impression). This measure is coming from Asset based
-     * location.
+     * Number of linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double all_conversions_from_location_asset_website = 273; + * optional int64 linked_entities_count = 341; * @return This builder for chaining. */ - public Builder clearAllConversionsFromLocationAssetWebsite() { - bitField4_ = (bitField4_ & ~0x02000000); - allConversionsFromLocationAssetWebsite_ = 0D; + public Builder clearLinkedEntitiesCount() { + bitField5_ = (bitField5_ & ~0x00200000); + linkedEntitiesCount_ = 0L; onChanged(); return this; } - private long eligibleImpressionsFromLocationAssetStoreReach_ ; + private com.google.protobuf.LazyStringArrayList linkedSampleEntities_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureLinkedSampleEntitiesIsMutable() { + if (!linkedSampleEntities_.isModifiable()) { + linkedSampleEntities_ = new com.google.protobuf.LazyStringArrayList(linkedSampleEntities_); + } + bitField5_ |= 0x00400000; + } /** *
-     * Number of impressions in which the business location was shown or the
-     * location was used for targeting. This measure is coming from Asset based
-     * location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional int64 eligible_impressions_from_location_asset_store_reach = 274; - * @return Whether the eligibleImpressionsFromLocationAssetStoreReach field is set. + * repeated string linked_sample_entities = 342; + * @return A list containing the linkedSampleEntities. */ - @java.lang.Override - public boolean hasEligibleImpressionsFromLocationAssetStoreReach() { - return ((bitField4_ & 0x04000000) != 0); + public com.google.protobuf.ProtocolStringList + getLinkedSampleEntitiesList() { + linkedSampleEntities_.makeImmutable(); + return linkedSampleEntities_; } /** *
-     * Number of impressions in which the business location was shown or the
-     * location was used for targeting. This measure is coming from Asset based
-     * location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional int64 eligible_impressions_from_location_asset_store_reach = 274; - * @return The eligibleImpressionsFromLocationAssetStoreReach. + * repeated string linked_sample_entities = 342; + * @return The count of linkedSampleEntities. */ - @java.lang.Override - public long getEligibleImpressionsFromLocationAssetStoreReach() { - return eligibleImpressionsFromLocationAssetStoreReach_; + public int getLinkedSampleEntitiesCount() { + return linkedSampleEntities_.size(); } /** *
-     * Number of impressions in which the business location was shown or the
-     * location was used for targeting. This measure is coming from Asset based
-     * location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional int64 eligible_impressions_from_location_asset_store_reach = 274; - * @param value The eligibleImpressionsFromLocationAssetStoreReach to set. - * @return This builder for chaining. + * repeated string linked_sample_entities = 342; + * @param index The index of the element to return. + * @return The linkedSampleEntities at the given index. */ - public Builder setEligibleImpressionsFromLocationAssetStoreReach(long value) { - - eligibleImpressionsFromLocationAssetStoreReach_ = value; - bitField4_ |= 0x04000000; - onChanged(); - return this; + public java.lang.String getLinkedSampleEntities(int index) { + return linkedSampleEntities_.get(index); } /** *
-     * Number of impressions in which the business location was shown or the
-     * location was used for targeting. This measure is coming from Asset based
-     * location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * 
+ * + * repeated string linked_sample_entities = 342; + * @param index The index of the value to return. + * @return The bytes of the linkedSampleEntities at the given index. + */ + public com.google.protobuf.ByteString + getLinkedSampleEntitiesBytes(int index) { + return linkedSampleEntities_.getByteString(index); + } + /** + *
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional int64 eligible_impressions_from_location_asset_store_reach = 274; + * repeated string linked_sample_entities = 342; + * @param index The index to set the value at. + * @param value The linkedSampleEntities to set. * @return This builder for chaining. */ - public Builder clearEligibleImpressionsFromLocationAssetStoreReach() { - bitField4_ = (bitField4_ & ~0x04000000); - eligibleImpressionsFromLocationAssetStoreReach_ = 0L; + public Builder setLinkedSampleEntities( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureLinkedSampleEntitiesIsMutable(); + linkedSampleEntities_.set(index, value); + bitField5_ |= 0x00400000; onChanged(); return this; } - - private double viewThroughConversionsFromLocationAssetClickToCall_ ; /** *
-     * Number of call button clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double view_through_conversions_from_location_asset_click_to_call = 275; - * @return Whether the viewThroughConversionsFromLocationAssetClickToCall field is set. + * repeated string linked_sample_entities = 342; + * @param value The linkedSampleEntities to add. + * @return This builder for chaining. */ - @java.lang.Override - public boolean hasViewThroughConversionsFromLocationAssetClickToCall() { - return ((bitField4_ & 0x08000000) != 0); + public Builder addLinkedSampleEntities( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureLinkedSampleEntitiesIsMutable(); + linkedSampleEntities_.add(value); + bitField5_ |= 0x00400000; + onChanged(); + return this; } /** *
-     * Number of call button clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double view_through_conversions_from_location_asset_click_to_call = 275; - * @return The viewThroughConversionsFromLocationAssetClickToCall. + * repeated string linked_sample_entities = 342; + * @param values The linkedSampleEntities to add. + * @return This builder for chaining. */ - @java.lang.Override - public double getViewThroughConversionsFromLocationAssetClickToCall() { - return viewThroughConversionsFromLocationAssetClickToCall_; + public Builder addAllLinkedSampleEntities( + java.lang.Iterable values) { + ensureLinkedSampleEntitiesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, linkedSampleEntities_); + bitField5_ |= 0x00400000; + onChanged(); + return this; } /** *
-     * Number of call button clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double view_through_conversions_from_location_asset_click_to_call = 275; - * @param value The viewThroughConversionsFromLocationAssetClickToCall to set. + * repeated string linked_sample_entities = 342; * @return This builder for chaining. */ - public Builder setViewThroughConversionsFromLocationAssetClickToCall(double value) { - - viewThroughConversionsFromLocationAssetClickToCall_ = value; - bitField4_ |= 0x08000000; + public Builder clearLinkedSampleEntities() { + linkedSampleEntities_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField5_ = (bitField5_ & ~0x00400000);; onChanged(); return this; } /** *
-     * Number of call button clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * A list of up to 20 sample linked resources in which the asset is used.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
      * 
* - * optional double view_through_conversions_from_location_asset_click_to_call = 275; + * repeated string linked_sample_entities = 342; + * @param value The bytes of the linkedSampleEntities to add. * @return This builder for chaining. */ - public Builder clearViewThroughConversionsFromLocationAssetClickToCall() { - bitField4_ = (bitField4_ & ~0x08000000); - viewThroughConversionsFromLocationAssetClickToCall_ = 0D; + public Builder addLinkedSampleEntitiesBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureLinkedSampleEntitiesIsMutable(); + linkedSampleEntities_.add(value); + bitField5_ |= 0x00400000; onChanged(); return this; } - private double viewThroughConversionsFromLocationAssetDirections_ ; + private long assetPinnedTotalCount_ ; /** *
-     * Number of driving directions clicks on any location surface after an
-     * impression. This measure is coming from Asset based location.
+     * Number of total usages in which the asset is pinned.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_directions = 276; - * @return Whether the viewThroughConversionsFromLocationAssetDirections field is set. + * optional int64 asset_pinned_total_count = 348; + * @return Whether the assetPinnedTotalCount field is set. */ @java.lang.Override - public boolean hasViewThroughConversionsFromLocationAssetDirections() { - return ((bitField4_ & 0x10000000) != 0); + public boolean hasAssetPinnedTotalCount() { + return ((bitField5_ & 0x00800000) != 0); } /** *
-     * Number of driving directions clicks on any location surface after an
-     * impression. This measure is coming from Asset based location.
+     * Number of total usages in which the asset is pinned.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_directions = 276; - * @return The viewThroughConversionsFromLocationAssetDirections. + * optional int64 asset_pinned_total_count = 348; + * @return The assetPinnedTotalCount. */ @java.lang.Override - public double getViewThroughConversionsFromLocationAssetDirections() { - return viewThroughConversionsFromLocationAssetDirections_; + public long getAssetPinnedTotalCount() { + return assetPinnedTotalCount_; } /** *
-     * Number of driving directions clicks on any location surface after an
-     * impression. This measure is coming from Asset based location.
+     * Number of total usages in which the asset is pinned.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_directions = 276; - * @param value The viewThroughConversionsFromLocationAssetDirections to set. + * optional int64 asset_pinned_total_count = 348; + * @param value The assetPinnedTotalCount to set. * @return This builder for chaining. */ - public Builder setViewThroughConversionsFromLocationAssetDirections(double value) { + public Builder setAssetPinnedTotalCount(long value) { - viewThroughConversionsFromLocationAssetDirections_ = value; - bitField4_ |= 0x10000000; + assetPinnedTotalCount_ = value; + bitField5_ |= 0x00800000; onChanged(); return this; } /** *
-     * Number of driving directions clicks on any location surface after an
-     * impression. This measure is coming from Asset based location.
+     * Number of total usages in which the asset is pinned.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_directions = 276; + * optional int64 asset_pinned_total_count = 348; * @return This builder for chaining. */ - public Builder clearViewThroughConversionsFromLocationAssetDirections() { - bitField4_ = (bitField4_ & ~0x10000000); - viewThroughConversionsFromLocationAssetDirections_ = 0D; + public Builder clearAssetPinnedTotalCount() { + bitField5_ = (bitField5_ & ~0x00800000); + assetPinnedTotalCount_ = 0L; onChanged(); return this; } - private double viewThroughConversionsFromLocationAssetMenu_ ; + private long assetPinnedAsHeadlinePositionOneCount_ ; /** *
-     * Number of menu link clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_menu = 277; - * @return Whether the viewThroughConversionsFromLocationAssetMenu field is set. + * optional int64 asset_pinned_as_headline_position_one_count = 349; + * @return Whether the assetPinnedAsHeadlinePositionOneCount field is set. */ @java.lang.Override - public boolean hasViewThroughConversionsFromLocationAssetMenu() { - return ((bitField4_ & 0x20000000) != 0); + public boolean hasAssetPinnedAsHeadlinePositionOneCount() { + return ((bitField5_ & 0x01000000) != 0); } /** *
-     * Number of menu link clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_menu = 277; - * @return The viewThroughConversionsFromLocationAssetMenu. + * optional int64 asset_pinned_as_headline_position_one_count = 349; + * @return The assetPinnedAsHeadlinePositionOneCount. */ @java.lang.Override - public double getViewThroughConversionsFromLocationAssetMenu() { - return viewThroughConversionsFromLocationAssetMenu_; + public long getAssetPinnedAsHeadlinePositionOneCount() { + return assetPinnedAsHeadlinePositionOneCount_; } /** *
-     * Number of menu link clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_menu = 277; - * @param value The viewThroughConversionsFromLocationAssetMenu to set. + * optional int64 asset_pinned_as_headline_position_one_count = 349; + * @param value The assetPinnedAsHeadlinePositionOneCount to set. * @return This builder for chaining. */ - public Builder setViewThroughConversionsFromLocationAssetMenu(double value) { + public Builder setAssetPinnedAsHeadlinePositionOneCount(long value) { - viewThroughConversionsFromLocationAssetMenu_ = value; - bitField4_ |= 0x20000000; + assetPinnedAsHeadlinePositionOneCount_ = value; + bitField5_ |= 0x01000000; onChanged(); return this; } /** *
-     * Number of menu link clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_menu = 277; + * optional int64 asset_pinned_as_headline_position_one_count = 349; * @return This builder for chaining. */ - public Builder clearViewThroughConversionsFromLocationAssetMenu() { - bitField4_ = (bitField4_ & ~0x20000000); - viewThroughConversionsFromLocationAssetMenu_ = 0D; + public Builder clearAssetPinnedAsHeadlinePositionOneCount() { + bitField5_ = (bitField5_ & ~0x01000000); + assetPinnedAsHeadlinePositionOneCount_ = 0L; onChanged(); return this; } - private double viewThroughConversionsFromLocationAssetOrder_ ; + private long assetPinnedAsHeadlinePositionTwoCount_ ; /** *
-     * Number of order clicks on any location surface after an impression. This
-     * measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_order = 278; - * @return Whether the viewThroughConversionsFromLocationAssetOrder field is set. + * optional int64 asset_pinned_as_headline_position_two_count = 350; + * @return Whether the assetPinnedAsHeadlinePositionTwoCount field is set. */ @java.lang.Override - public boolean hasViewThroughConversionsFromLocationAssetOrder() { - return ((bitField4_ & 0x40000000) != 0); + public boolean hasAssetPinnedAsHeadlinePositionTwoCount() { + return ((bitField5_ & 0x02000000) != 0); } /** *
-     * Number of order clicks on any location surface after an impression. This
-     * measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_order = 278; - * @return The viewThroughConversionsFromLocationAssetOrder. + * optional int64 asset_pinned_as_headline_position_two_count = 350; + * @return The assetPinnedAsHeadlinePositionTwoCount. */ @java.lang.Override - public double getViewThroughConversionsFromLocationAssetOrder() { - return viewThroughConversionsFromLocationAssetOrder_; + public long getAssetPinnedAsHeadlinePositionTwoCount() { + return assetPinnedAsHeadlinePositionTwoCount_; } /** *
-     * Number of order clicks on any location surface after an impression. This
-     * measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_order = 278; - * @param value The viewThroughConversionsFromLocationAssetOrder to set. + * optional int64 asset_pinned_as_headline_position_two_count = 350; + * @param value The assetPinnedAsHeadlinePositionTwoCount to set. * @return This builder for chaining. */ - public Builder setViewThroughConversionsFromLocationAssetOrder(double value) { + public Builder setAssetPinnedAsHeadlinePositionTwoCount(long value) { - viewThroughConversionsFromLocationAssetOrder_ = value; - bitField4_ |= 0x40000000; + assetPinnedAsHeadlinePositionTwoCount_ = value; + bitField5_ |= 0x02000000; onChanged(); return this; } /** *
-     * Number of order clicks on any location surface after an impression. This
-     * measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_order = 278; + * optional int64 asset_pinned_as_headline_position_two_count = 350; * @return This builder for chaining. */ - public Builder clearViewThroughConversionsFromLocationAssetOrder() { - bitField4_ = (bitField4_ & ~0x40000000); - viewThroughConversionsFromLocationAssetOrder_ = 0D; + public Builder clearAssetPinnedAsHeadlinePositionTwoCount() { + bitField5_ = (bitField5_ & ~0x02000000); + assetPinnedAsHeadlinePositionTwoCount_ = 0L; onChanged(); return this; } - private double viewThroughConversionsFromLocationAssetOtherEngagement_ ; + private long assetPinnedAsHeadlinePositionThreeCount_ ; /** *
-     * Number of other types of local action clicks on any location surface after
-     * an impression. This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 3.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_other_engagement = 279; - * @return Whether the viewThroughConversionsFromLocationAssetOtherEngagement field is set. + * optional int64 asset_pinned_as_headline_position_three_count = 351; + * @return Whether the assetPinnedAsHeadlinePositionThreeCount field is set. */ @java.lang.Override - public boolean hasViewThroughConversionsFromLocationAssetOtherEngagement() { - return ((bitField4_ & 0x80000000) != 0); + public boolean hasAssetPinnedAsHeadlinePositionThreeCount() { + return ((bitField5_ & 0x04000000) != 0); } /** *
-     * Number of other types of local action clicks on any location surface after
-     * an impression. This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 3.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_other_engagement = 279; - * @return The viewThroughConversionsFromLocationAssetOtherEngagement. + * optional int64 asset_pinned_as_headline_position_three_count = 351; + * @return The assetPinnedAsHeadlinePositionThreeCount. */ @java.lang.Override - public double getViewThroughConversionsFromLocationAssetOtherEngagement() { - return viewThroughConversionsFromLocationAssetOtherEngagement_; + public long getAssetPinnedAsHeadlinePositionThreeCount() { + return assetPinnedAsHeadlinePositionThreeCount_; } /** *
-     * Number of other types of local action clicks on any location surface after
-     * an impression. This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 3.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_other_engagement = 279; - * @param value The viewThroughConversionsFromLocationAssetOtherEngagement to set. + * optional int64 asset_pinned_as_headline_position_three_count = 351; + * @param value The assetPinnedAsHeadlinePositionThreeCount to set. * @return This builder for chaining. */ - public Builder setViewThroughConversionsFromLocationAssetOtherEngagement(double value) { + public Builder setAssetPinnedAsHeadlinePositionThreeCount(long value) { - viewThroughConversionsFromLocationAssetOtherEngagement_ = value; - bitField4_ |= 0x80000000; + assetPinnedAsHeadlinePositionThreeCount_ = value; + bitField5_ |= 0x04000000; onChanged(); return this; } /** *
-     * Number of other types of local action clicks on any location surface after
-     * an impression. This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to headline 3.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_other_engagement = 279; + * optional int64 asset_pinned_as_headline_position_three_count = 351; * @return This builder for chaining. */ - public Builder clearViewThroughConversionsFromLocationAssetOtherEngagement() { - bitField4_ = (bitField4_ & ~0x80000000); - viewThroughConversionsFromLocationAssetOtherEngagement_ = 0D; + public Builder clearAssetPinnedAsHeadlinePositionThreeCount() { + bitField5_ = (bitField5_ & ~0x04000000); + assetPinnedAsHeadlinePositionThreeCount_ = 0L; onChanged(); return this; } - private double viewThroughConversionsFromLocationAssetStoreVisits_ ; + private long assetPinnedAsDescriptionPositionOneCount_ ; /** *
-     * Estimated number of visits to the business after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_store_visits = 280; - * @return Whether the viewThroughConversionsFromLocationAssetStoreVisits field is set. + * optional int64 asset_pinned_as_description_position_one_count = 352; + * @return Whether the assetPinnedAsDescriptionPositionOneCount field is set. */ @java.lang.Override - public boolean hasViewThroughConversionsFromLocationAssetStoreVisits() { - return ((bitField5_ & 0x00000001) != 0); + public boolean hasAssetPinnedAsDescriptionPositionOneCount() { + return ((bitField5_ & 0x08000000) != 0); } /** *
-     * Estimated number of visits to the business after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_store_visits = 280; - * @return The viewThroughConversionsFromLocationAssetStoreVisits. + * optional int64 asset_pinned_as_description_position_one_count = 352; + * @return The assetPinnedAsDescriptionPositionOneCount. */ @java.lang.Override - public double getViewThroughConversionsFromLocationAssetStoreVisits() { - return viewThroughConversionsFromLocationAssetStoreVisits_; + public long getAssetPinnedAsDescriptionPositionOneCount() { + return assetPinnedAsDescriptionPositionOneCount_; } /** *
-     * Estimated number of visits to the business after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_store_visits = 280; - * @param value The viewThroughConversionsFromLocationAssetStoreVisits to set. + * optional int64 asset_pinned_as_description_position_one_count = 352; + * @param value The assetPinnedAsDescriptionPositionOneCount to set. * @return This builder for chaining. */ - public Builder setViewThroughConversionsFromLocationAssetStoreVisits(double value) { + public Builder setAssetPinnedAsDescriptionPositionOneCount(long value) { - viewThroughConversionsFromLocationAssetStoreVisits_ = value; - bitField5_ |= 0x00000001; + assetPinnedAsDescriptionPositionOneCount_ = value; + bitField5_ |= 0x08000000; onChanged(); return this; } /** *
-     * Estimated number of visits to the business after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 1.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_store_visits = 280; + * optional int64 asset_pinned_as_description_position_one_count = 352; * @return This builder for chaining. */ - public Builder clearViewThroughConversionsFromLocationAssetStoreVisits() { - bitField5_ = (bitField5_ & ~0x00000001); - viewThroughConversionsFromLocationAssetStoreVisits_ = 0D; + public Builder clearAssetPinnedAsDescriptionPositionOneCount() { + bitField5_ = (bitField5_ & ~0x08000000); + assetPinnedAsDescriptionPositionOneCount_ = 0L; onChanged(); return this; } - private double viewThroughConversionsFromLocationAssetWebsite_ ; + private long assetPinnedAsDescriptionPositionTwoCount_ ; /** *
-     * Number of website URL clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_website = 281; - * @return Whether the viewThroughConversionsFromLocationAssetWebsite field is set. + * optional int64 asset_pinned_as_description_position_two_count = 353; + * @return Whether the assetPinnedAsDescriptionPositionTwoCount field is set. */ @java.lang.Override - public boolean hasViewThroughConversionsFromLocationAssetWebsite() { - return ((bitField5_ & 0x00000002) != 0); + public boolean hasAssetPinnedAsDescriptionPositionTwoCount() { + return ((bitField5_ & 0x10000000) != 0); } /** *
-     * Number of website URL clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_website = 281; - * @return The viewThroughConversionsFromLocationAssetWebsite. + * optional int64 asset_pinned_as_description_position_two_count = 353; + * @return The assetPinnedAsDescriptionPositionTwoCount. */ @java.lang.Override - public double getViewThroughConversionsFromLocationAssetWebsite() { - return viewThroughConversionsFromLocationAssetWebsite_; + public long getAssetPinnedAsDescriptionPositionTwoCount() { + return assetPinnedAsDescriptionPositionTwoCount_; } /** *
-     * Number of website URL clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_website = 281; - * @param value The viewThroughConversionsFromLocationAssetWebsite to set. + * optional int64 asset_pinned_as_description_position_two_count = 353; + * @param value The assetPinnedAsDescriptionPositionTwoCount to set. * @return This builder for chaining. */ - public Builder setViewThroughConversionsFromLocationAssetWebsite(double value) { + public Builder setAssetPinnedAsDescriptionPositionTwoCount(long value) { - viewThroughConversionsFromLocationAssetWebsite_ = value; - bitField5_ |= 0x00000002; + assetPinnedAsDescriptionPositionTwoCount_ = value; + bitField5_ |= 0x10000000; onChanged(); return this; } /** *
-     * Number of website URL clicks on any location surface after an impression.
-     * This measure is coming from Asset based location.
+     * Number of entities in which the asset is pinned to description 2.
+     * This metric can only be selected with ChannelAggregateAssetView and
+     * CampaignAggregateAssetView.
+     * This metric is only supported in Search channel.
      * 
* - * optional double view_through_conversions_from_location_asset_website = 281; + * optional int64 asset_pinned_as_description_position_two_count = 353; * @return This builder for chaining. */ - public Builder clearViewThroughConversionsFromLocationAssetWebsite() { - bitField5_ = (bitField5_ & ~0x00000002); - viewThroughConversionsFromLocationAssetWebsite_ = 0D; + public Builder clearAssetPinnedAsDescriptionPositionTwoCount() { + bitField5_ = (bitField5_ & ~0x10000000); + assetPinnedAsDescriptionPositionTwoCount_ = 0L; onChanged(); return this; } - private double orders_ ; + private double storeVisitsLastClickModelAttributedConversions_ ; /** *
-     * Orders is the total number of purchase conversions you received attributed
-     * to your ads.
-     * How it works: You report conversions with cart data for
-     * completed purchases on your website. If a conversion is attributed to
-     * previous interactions with your ads (clicks for text or Shopping ads, views
-     * for video ads etc.) it's counted as an order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order on your website. Even though they bought 2
-     * products, this would count as 1 order.
-     * This metric is only available if you report conversions with cart data.
+     * The amount of business visits attributed by the last click model.
      * 
* - * optional double orders = 296; - * @return Whether the orders field is set. + * optional double store_visits_last_click_model_attributed_conversions = 365; + * @return Whether the storeVisitsLastClickModelAttributedConversions field is set. */ @java.lang.Override - public boolean hasOrders() { - return ((bitField5_ & 0x00000004) != 0); + public boolean hasStoreVisitsLastClickModelAttributedConversions() { + return ((bitField5_ & 0x20000000) != 0); } /** *
-     * Orders is the total number of purchase conversions you received attributed
-     * to your ads.
-     * How it works: You report conversions with cart data for
-     * completed purchases on your website. If a conversion is attributed to
-     * previous interactions with your ads (clicks for text or Shopping ads, views
-     * for video ads etc.) it's counted as an order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order on your website. Even though they bought 2
-     * products, this would count as 1 order.
-     * This metric is only available if you report conversions with cart data.
+     * The amount of business visits attributed by the last click model.
      * 
* - * optional double orders = 296; - * @return The orders. + * optional double store_visits_last_click_model_attributed_conversions = 365; + * @return The storeVisitsLastClickModelAttributedConversions. */ @java.lang.Override - public double getOrders() { - return orders_; + public double getStoreVisitsLastClickModelAttributedConversions() { + return storeVisitsLastClickModelAttributedConversions_; } /** *
-     * Orders is the total number of purchase conversions you received attributed
-     * to your ads.
-     * How it works: You report conversions with cart data for
-     * completed purchases on your website. If a conversion is attributed to
-     * previous interactions with your ads (clicks for text or Shopping ads, views
-     * for video ads etc.) it's counted as an order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order on your website. Even though they bought 2
-     * products, this would count as 1 order.
-     * This metric is only available if you report conversions with cart data.
+     * The amount of business visits attributed by the last click model.
      * 
* - * optional double orders = 296; - * @param value The orders to set. + * optional double store_visits_last_click_model_attributed_conversions = 365; + * @param value The storeVisitsLastClickModelAttributedConversions to set. * @return This builder for chaining. */ - public Builder setOrders(double value) { + public Builder setStoreVisitsLastClickModelAttributedConversions(double value) { - orders_ = value; - bitField5_ |= 0x00000004; + storeVisitsLastClickModelAttributedConversions_ = value; + bitField5_ |= 0x20000000; onChanged(); return this; } /** *
-     * Orders is the total number of purchase conversions you received attributed
-     * to your ads.
-     * How it works: You report conversions with cart data for
-     * completed purchases on your website. If a conversion is attributed to
-     * previous interactions with your ads (clicks for text or Shopping ads, views
-     * for video ads etc.) it's counted as an order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order on your website. Even though they bought 2
-     * products, this would count as 1 order.
-     * This metric is only available if you report conversions with cart data.
+     * The amount of business visits attributed by the last click model.
      * 
* - * optional double orders = 296; + * optional double store_visits_last_click_model_attributed_conversions = 365; * @return This builder for chaining. */ - public Builder clearOrders() { - bitField5_ = (bitField5_ & ~0x00000004); - orders_ = 0D; + public Builder clearStoreVisitsLastClickModelAttributedConversions() { + bitField5_ = (bitField5_ & ~0x20000000); + storeVisitsLastClickModelAttributedConversions_ = 0D; onChanged(); return this; } - private long averageOrderValueMicros_ ; + private double resultsConversionsPurchase_ ; /** *
-     * Average order value is the average revenue you made per order attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average order value is the total revenue from your orders
-     * divided by the total number of orders.
-     * Example: You received 3 orders which made $10, $15 and $20 worth of
-     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
-     * This metric is only available if you report conversions with cart data.
+     * The purchase conversion stats for the unified goals results.
      * 
* - * optional int64 average_order_value_micros = 297; - * @return Whether the averageOrderValueMicros field is set. + * optional double results_conversions_purchase = 366; + * @return Whether the resultsConversionsPurchase field is set. */ @java.lang.Override - public boolean hasAverageOrderValueMicros() { - return ((bitField5_ & 0x00000008) != 0); + public boolean hasResultsConversionsPurchase() { + return ((bitField5_ & 0x40000000) != 0); } /** *
-     * Average order value is the average revenue you made per order attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average order value is the total revenue from your orders
-     * divided by the total number of orders.
-     * Example: You received 3 orders which made $10, $15 and $20 worth of
-     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
-     * This metric is only available if you report conversions with cart data.
+     * The purchase conversion stats for the unified goals results.
      * 
* - * optional int64 average_order_value_micros = 297; - * @return The averageOrderValueMicros. + * optional double results_conversions_purchase = 366; + * @return The resultsConversionsPurchase. */ @java.lang.Override - public long getAverageOrderValueMicros() { - return averageOrderValueMicros_; + public double getResultsConversionsPurchase() { + return resultsConversionsPurchase_; } /** *
-     * Average order value is the average revenue you made per order attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average order value is the total revenue from your orders
-     * divided by the total number of orders.
-     * Example: You received 3 orders which made $10, $15 and $20 worth of
-     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
-     * This metric is only available if you report conversions with cart data.
+     * The purchase conversion stats for the unified goals results.
      * 
* - * optional int64 average_order_value_micros = 297; - * @param value The averageOrderValueMicros to set. + * optional double results_conversions_purchase = 366; + * @param value The resultsConversionsPurchase to set. * @return This builder for chaining. */ - public Builder setAverageOrderValueMicros(long value) { + public Builder setResultsConversionsPurchase(double value) { - averageOrderValueMicros_ = value; - bitField5_ |= 0x00000008; + resultsConversionsPurchase_ = value; + bitField5_ |= 0x40000000; onChanged(); return this; } /** *
-     * Average order value is the average revenue you made per order attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average order value is the total revenue from your orders
-     * divided by the total number of orders.
-     * Example: You received 3 orders which made $10, $15 and $20 worth of
-     * revenue. The average order value is $15 = ($10 + $15 + $20)/3.
-     * This metric is only available if you report conversions with cart data.
+     * The purchase conversion stats for the unified goals results.
      * 
* - * optional int64 average_order_value_micros = 297; + * optional double results_conversions_purchase = 366; * @return This builder for chaining. */ - public Builder clearAverageOrderValueMicros() { - bitField5_ = (bitField5_ & ~0x00000008); - averageOrderValueMicros_ = 0L; + public Builder clearResultsConversionsPurchase() { + bitField5_ = (bitField5_ & ~0x40000000); + resultsConversionsPurchase_ = 0D; onChanged(); return this; } - private double averageCartSize_ ; + private double videoTrueviewViewRateInFeed_ ; /** *
-     * Average cart size is the average number of products in each order
-     * attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average cart size is the total number of products sold
-     * divided by the total number of orders you received.
-     * Example: You received 2 orders, the first included 3 products and the
-     * second included 2. The average cart size is 2.5 products = (3+2)/2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-feed formats.
      * 
* - * optional double average_cart_size = 298; - * @return Whether the averageCartSize field is set. + * optional double video_trueview_view_rate_in_feed = 408; + * @return Whether the videoTrueviewViewRateInFeed field is set. */ @java.lang.Override - public boolean hasAverageCartSize() { - return ((bitField5_ & 0x00000010) != 0); + public boolean hasVideoTrueviewViewRateInFeed() { + return ((bitField5_ & 0x80000000) != 0); } /** *
-     * Average cart size is the average number of products in each order
-     * attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average cart size is the total number of products sold
-     * divided by the total number of orders you received.
-     * Example: You received 2 orders, the first included 3 products and the
-     * second included 2. The average cart size is 2.5 products = (3+2)/2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-feed formats.
      * 
* - * optional double average_cart_size = 298; - * @return The averageCartSize. + * optional double video_trueview_view_rate_in_feed = 408; + * @return The videoTrueviewViewRateInFeed. */ @java.lang.Override - public double getAverageCartSize() { - return averageCartSize_; + public double getVideoTrueviewViewRateInFeed() { + return videoTrueviewViewRateInFeed_; } /** *
-     * Average cart size is the average number of products in each order
-     * attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average cart size is the total number of products sold
-     * divided by the total number of orders you received.
-     * Example: You received 2 orders, the first included 3 products and the
-     * second included 2. The average cart size is 2.5 products = (3+2)/2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-feed formats.
      * 
* - * optional double average_cart_size = 298; - * @param value The averageCartSize to set. + * optional double video_trueview_view_rate_in_feed = 408; + * @param value The videoTrueviewViewRateInFeed to set. * @return This builder for chaining. */ - public Builder setAverageCartSize(double value) { + public Builder setVideoTrueviewViewRateInFeed(double value) { - averageCartSize_ = value; - bitField5_ |= 0x00000010; + videoTrueviewViewRateInFeed_ = value; + bitField5_ |= 0x80000000; onChanged(); return this; } /** *
-     * Average cart size is the average number of products in each order
-     * attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Average cart size is the total number of products sold
-     * divided by the total number of orders you received.
-     * Example: You received 2 orders, the first included 3 products and the
-     * second included 2. The average cart size is 2.5 products = (3+2)/2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-feed formats.
      * 
* - * optional double average_cart_size = 298; + * optional double video_trueview_view_rate_in_feed = 408; * @return This builder for chaining. */ - public Builder clearAverageCartSize() { - bitField5_ = (bitField5_ & ~0x00000010); - averageCartSize_ = 0D; + public Builder clearVideoTrueviewViewRateInFeed() { + bitField5_ = (bitField5_ & ~0x80000000); + videoTrueviewViewRateInFeed_ = 0D; onChanged(); return this; } - private long costOfGoodsSoldMicros_ ; + private double videoTrueviewViewRateInStream_ ; /** *
-     * Cost of goods sold (COGS) is the total cost of the products you sold in
-     * orders attributed to your ads.
-     * How it works: You can add a cost of goods sold value to every product in
-     * Merchant Center. If you report conversions with cart data, the products you
-     * sold are matched with their cost of goods sold value and this can be used
-     * to calculate the gross profit you made on each order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cost of goods sold for this order
-     * is $8 = $3 + $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-stream formats.
      * 
* - * optional int64 cost_of_goods_sold_micros = 299; - * @return Whether the costOfGoodsSoldMicros field is set. + * optional double video_trueview_view_rate_in_stream = 409; + * @return Whether the videoTrueviewViewRateInStream field is set. */ @java.lang.Override - public boolean hasCostOfGoodsSoldMicros() { - return ((bitField5_ & 0x00000020) != 0); + public boolean hasVideoTrueviewViewRateInStream() { + return ((bitField6_ & 0x00000001) != 0); } /** *
-     * Cost of goods sold (COGS) is the total cost of the products you sold in
-     * orders attributed to your ads.
-     * How it works: You can add a cost of goods sold value to every product in
-     * Merchant Center. If you report conversions with cart data, the products you
-     * sold are matched with their cost of goods sold value and this can be used
-     * to calculate the gross profit you made on each order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cost of goods sold for this order
-     * is $8 = $3 + $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-stream formats.
      * 
* - * optional int64 cost_of_goods_sold_micros = 299; - * @return The costOfGoodsSoldMicros. + * optional double video_trueview_view_rate_in_stream = 409; + * @return The videoTrueviewViewRateInStream. */ @java.lang.Override - public long getCostOfGoodsSoldMicros() { - return costOfGoodsSoldMicros_; + public double getVideoTrueviewViewRateInStream() { + return videoTrueviewViewRateInStream_; } /** *
-     * Cost of goods sold (COGS) is the total cost of the products you sold in
-     * orders attributed to your ads.
-     * How it works: You can add a cost of goods sold value to every product in
-     * Merchant Center. If you report conversions with cart data, the products you
-     * sold are matched with their cost of goods sold value and this can be used
-     * to calculate the gross profit you made on each order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cost of goods sold for this order
-     * is $8 = $3 + $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-stream formats.
      * 
* - * optional int64 cost_of_goods_sold_micros = 299; - * @param value The costOfGoodsSoldMicros to set. + * optional double video_trueview_view_rate_in_stream = 409; + * @param value The videoTrueviewViewRateInStream to set. * @return This builder for chaining. */ - public Builder setCostOfGoodsSoldMicros(long value) { + public Builder setVideoTrueviewViewRateInStream(double value) { - costOfGoodsSoldMicros_ = value; - bitField5_ |= 0x00000020; + videoTrueviewViewRateInStream_ = value; + bitField6_ |= 0x00000001; onChanged(); return this; } /** *
-     * Cost of goods sold (COGS) is the total cost of the products you sold in
-     * orders attributed to your ads.
-     * How it works: You can add a cost of goods sold value to every product in
-     * Merchant Center. If you report conversions with cart data, the products you
-     * sold are matched with their cost of goods sold value and this can be used
-     * to calculate the gross profit you made on each order.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cost of goods sold for this order
-     * is $8 = $3 + $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for in-stream formats.
      * 
* - * optional int64 cost_of_goods_sold_micros = 299; + * optional double video_trueview_view_rate_in_stream = 409; * @return This builder for chaining. */ - public Builder clearCostOfGoodsSoldMicros() { - bitField5_ = (bitField5_ & ~0x00000020); - costOfGoodsSoldMicros_ = 0L; + public Builder clearVideoTrueviewViewRateInStream() { + bitField6_ = (bitField6_ & ~0x00000001); + videoTrueviewViewRateInStream_ = 0D; onChanged(); return this; } - private long grossProfitMicros_ ; + private double videoTrueviewViewRateShorts_ ; /** *
-     * Gross profit is the profit you made from orders attributed to your ads
-     * minus the cost of goods sold (COGS).
-     * How it works: Gross profit is the revenue you made from sales attributed to
-     * your ads minus cost of goods sold. Gross profit calculations only include
-     * products that have a cost of goods sold value in Merchant Center.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
-     * the shirt has no cost of goods sold value. Gross profit for this order will
-     * only take into account the hat, so it's $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for Shorts ads.
      * 
* - * optional int64 gross_profit_micros = 300; - * @return Whether the grossProfitMicros field is set. + * optional double video_trueview_view_rate_shorts = 410; + * @return Whether the videoTrueviewViewRateShorts field is set. */ @java.lang.Override - public boolean hasGrossProfitMicros() { - return ((bitField5_ & 0x00000040) != 0); + public boolean hasVideoTrueviewViewRateShorts() { + return ((bitField6_ & 0x00000002) != 0); } /** *
-     * Gross profit is the profit you made from orders attributed to your ads
-     * minus the cost of goods sold (COGS).
-     * How it works: Gross profit is the revenue you made from sales attributed to
-     * your ads minus cost of goods sold. Gross profit calculations only include
-     * products that have a cost of goods sold value in Merchant Center.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
-     * the shirt has no cost of goods sold value. Gross profit for this order will
-     * only take into account the hat, so it's $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for Shorts ads.
      * 
* - * optional int64 gross_profit_micros = 300; - * @return The grossProfitMicros. + * optional double video_trueview_view_rate_shorts = 410; + * @return The videoTrueviewViewRateShorts. */ @java.lang.Override - public long getGrossProfitMicros() { - return grossProfitMicros_; + public double getVideoTrueviewViewRateShorts() { + return videoTrueviewViewRateShorts_; } /** *
-     * Gross profit is the profit you made from orders attributed to your ads
-     * minus the cost of goods sold (COGS).
-     * How it works: Gross profit is the revenue you made from sales attributed to
-     * your ads minus cost of goods sold. Gross profit calculations only include
-     * products that have a cost of goods sold value in Merchant Center.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
-     * the shirt has no cost of goods sold value. Gross profit for this order will
-     * only take into account the hat, so it's $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for Shorts ads.
      * 
* - * optional int64 gross_profit_micros = 300; - * @param value The grossProfitMicros to set. + * optional double video_trueview_view_rate_shorts = 410; + * @param value The videoTrueviewViewRateShorts to set. * @return This builder for chaining. */ - public Builder setGrossProfitMicros(long value) { + public Builder setVideoTrueviewViewRateShorts(double value) { - grossProfitMicros_ = value; - bitField5_ |= 0x00000040; + videoTrueviewViewRateShorts_ = value; + bitField6_ |= 0x00000002; onChanged(); return this; } /** *
-     * Gross profit is the profit you made from orders attributed to your ads
-     * minus the cost of goods sold (COGS).
-     * How it works: Gross profit is the revenue you made from sales attributed to
-     * your ads minus cost of goods sold. Gross profit calculations only include
-     * products that have a cost of goods sold value in Merchant Center.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The hat has a cost of goods sold value of $3, but
-     * the shirt has no cost of goods sold value. Gross profit for this order will
-     * only take into account the hat, so it's $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The number of TrueView views divided by number of impressions that can
+     * potentially lead to TrueView views for Shorts ads.
      * 
* - * optional int64 gross_profit_micros = 300; + * optional double video_trueview_view_rate_shorts = 410; * @return This builder for chaining. */ - public Builder clearGrossProfitMicros() { - bitField5_ = (bitField5_ & ~0x00000040); - grossProfitMicros_ = 0L; + public Builder clearVideoTrueviewViewRateShorts() { + bitField6_ = (bitField6_ & ~0x00000002); + videoTrueviewViewRateShorts_ = 0D; onChanged(); return this; } - private double grossProfitMargin_ ; + private long coviewedImpressions_ ; /** *
-     * Gross profit margin is the percentage gross profit you made from orders
-     * attributed to your ads, after taking out the cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Gross profit margin is the gross profit you made divided
-     * by your total revenue and multiplied by 100%. Gross profit margin
-     * calculations only include products that have a cost of goods sold value in
-     * Merchant Center.
-     * Example: Someone bought a hat and a shirt in an order on your website. The
-     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
-     * priced $20 but has no cost of goods sold value. Gross profit margin for
-     * this order will only take into account the hat because it has a cost of
-     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
-     * This metric is only available if you report conversions with cart data.
+     * All co-viewed impressions represent the total number of people who saw your
+     * ad. This includes people who are signed into their Google Account, as well
+     * as other people who are watching the same ad on a connected TV. This metric
+     * is only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * all coviewed impressions.
      * 
* - * optional double gross_profit_margin = 301; - * @return Whether the grossProfitMargin field is set. + * optional int64 coviewed_impressions = 380; + * @return Whether the coviewedImpressions field is set. */ @java.lang.Override - public boolean hasGrossProfitMargin() { - return ((bitField5_ & 0x00000080) != 0); + public boolean hasCoviewedImpressions() { + return ((bitField6_ & 0x00000004) != 0); } /** *
-     * Gross profit margin is the percentage gross profit you made from orders
-     * attributed to your ads, after taking out the cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Gross profit margin is the gross profit you made divided
-     * by your total revenue and multiplied by 100%. Gross profit margin
-     * calculations only include products that have a cost of goods sold value in
-     * Merchant Center.
-     * Example: Someone bought a hat and a shirt in an order on your website. The
-     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
-     * priced $20 but has no cost of goods sold value. Gross profit margin for
-     * this order will only take into account the hat because it has a cost of
-     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
-     * This metric is only available if you report conversions with cart data.
+     * All co-viewed impressions represent the total number of people who saw your
+     * ad. This includes people who are signed into their Google Account, as well
+     * as other people who are watching the same ad on a connected TV. This metric
+     * is only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * all coviewed impressions.
      * 
* - * optional double gross_profit_margin = 301; - * @return The grossProfitMargin. + * optional int64 coviewed_impressions = 380; + * @return The coviewedImpressions. */ @java.lang.Override - public double getGrossProfitMargin() { - return grossProfitMargin_; + public long getCoviewedImpressions() { + return coviewedImpressions_; } /** *
-     * Gross profit margin is the percentage gross profit you made from orders
-     * attributed to your ads, after taking out the cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Gross profit margin is the gross profit you made divided
-     * by your total revenue and multiplied by 100%. Gross profit margin
-     * calculations only include products that have a cost of goods sold value in
-     * Merchant Center.
-     * Example: Someone bought a hat and a shirt in an order on your website. The
-     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
-     * priced $20 but has no cost of goods sold value. Gross profit margin for
-     * this order will only take into account the hat because it has a cost of
-     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
-     * This metric is only available if you report conversions with cart data.
+     * All co-viewed impressions represent the total number of people who saw your
+     * ad. This includes people who are signed into their Google Account, as well
+     * as other people who are watching the same ad on a connected TV. This metric
+     * is only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * all coviewed impressions.
      * 
* - * optional double gross_profit_margin = 301; - * @param value The grossProfitMargin to set. + * optional int64 coviewed_impressions = 380; + * @param value The coviewedImpressions to set. * @return This builder for chaining. */ - public Builder setGrossProfitMargin(double value) { + public Builder setCoviewedImpressions(long value) { - grossProfitMargin_ = value; - bitField5_ |= 0x00000080; + coviewedImpressions_ = value; + bitField6_ |= 0x00000004; onChanged(); return this; } /** *
-     * Gross profit margin is the percentage gross profit you made from orders
-     * attributed to your ads, after taking out the cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Gross profit margin is the gross profit you made divided
-     * by your total revenue and multiplied by 100%. Gross profit margin
-     * calculations only include products that have a cost of goods sold value in
-     * Merchant Center.
-     * Example: Someone bought a hat and a shirt in an order on your website. The
-     * hat is priced $10 and has a cost of goods sold value of $3. The shirt is
-     * priced $20 but has no cost of goods sold value. Gross profit margin for
-     * this order will only take into account the hat because it has a cost of
-     * goods sold value, so it's 70% = ($10 - $3)/$10 x 100%.
-     * This metric is only available if you report conversions with cart data.
+     * All co-viewed impressions represent the total number of people who saw your
+     * ad. This includes people who are signed into their Google Account, as well
+     * as other people who are watching the same ad on a connected TV. This metric
+     * is only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * all coviewed impressions.
      * 
* - * optional double gross_profit_margin = 301; + * optional int64 coviewed_impressions = 380; * @return This builder for chaining. */ - public Builder clearGrossProfitMargin() { - bitField5_ = (bitField5_ & ~0x00000080); - grossProfitMargin_ = 0D; + public Builder clearCoviewedImpressions() { + bitField6_ = (bitField6_ & ~0x00000004); + coviewedImpressions_ = 0L; onChanged(); return this; } - private long revenueMicros_ ; + private long primaryImpressions_ ; /** *
-     * Revenue is the total amount you made from orders attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Revenue is the total value of all the orders you received
-     * attributed to your ads, minus any discount.
-     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The entire order has a $5 discount. The revenue
-     * from this order is $25 = ($10 + $20) - $5.
-     * This metric is only available if you report conversions with cart data.
+     * Primary impression is counted each time your ad is served. This metric is
+     * only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * primary impressions.
      * 
* - * optional int64 revenue_micros = 302; - * @return Whether the revenueMicros field is set. + * optional int64 primary_impressions = 381; + * @return Whether the primaryImpressions field is set. */ @java.lang.Override - public boolean hasRevenueMicros() { - return ((bitField5_ & 0x00000100) != 0); + public boolean hasPrimaryImpressions() { + return ((bitField6_ & 0x00000008) != 0); } /** *
-     * Revenue is the total amount you made from orders attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Revenue is the total value of all the orders you received
-     * attributed to your ads, minus any discount.
-     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The entire order has a $5 discount. The revenue
-     * from this order is $25 = ($10 + $20) - $5.
-     * This metric is only available if you report conversions with cart data.
+     * Primary impression is counted each time your ad is served. This metric is
+     * only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * primary impressions.
      * 
* - * optional int64 revenue_micros = 302; - * @return The revenueMicros. + * optional int64 primary_impressions = 381; + * @return The primaryImpressions. */ @java.lang.Override - public long getRevenueMicros() { - return revenueMicros_; + public long getPrimaryImpressions() { + return primaryImpressions_; } /** *
-     * Revenue is the total amount you made from orders attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Revenue is the total value of all the orders you received
-     * attributed to your ads, minus any discount.
-     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The entire order has a $5 discount. The revenue
-     * from this order is $25 = ($10 + $20) - $5.
-     * This metric is only available if you report conversions with cart data.
+     * Primary impression is counted each time your ad is served. This metric is
+     * only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * primary impressions.
      * 
* - * optional int64 revenue_micros = 302; - * @param value The revenueMicros to set. + * optional int64 primary_impressions = 381; + * @param value The primaryImpressions to set. * @return This builder for chaining. */ - public Builder setRevenueMicros(long value) { + public Builder setPrimaryImpressions(long value) { - revenueMicros_ = value; - bitField5_ |= 0x00000100; + primaryImpressions_ = value; + bitField6_ |= 0x00000008; onChanged(); return this; } /** *
-     * Revenue is the total amount you made from orders attributed to your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Revenue is the total value of all the orders you received
-     * attributed to your ads, minus any discount.
-     * Example: Someone clicked on a Shopping ad  for a hat then bought the same
-     * hat and a shirt in an order from your website. The hat is priced $10 and
-     * the shirt is priced $20. The entire order has a $5 discount. The revenue
-     * from this order is $25 = ($10 + $20) - $5.
-     * This metric is only available if you report conversions with cart data.
+     * Primary impression is counted each time your ad is served. This metric is
+     * only available for the Campaign resource with adjusted_age_range and
+     * adjusted_gender segments. These segmentations are mandatory to get the
+     * primary impressions.
      * 
* - * optional int64 revenue_micros = 302; + * optional int64 primary_impressions = 381; * @return This builder for chaining. */ - public Builder clearRevenueMicros() { - bitField5_ = (bitField5_ & ~0x00000100); - revenueMicros_ = 0L; + public Builder clearPrimaryImpressions() { + bitField6_ = (bitField6_ & ~0x00000008); + primaryImpressions_ = 0L; onChanged(); return this; } - private double unitsSold_ ; + private double platformComparableConversionsFromInteractionsRate_ ; /** *
-     * Units sold is the total number of products sold from orders attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Units sold is the total number of products sold from all
-     * orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The units sold in this order is 3.
-     * This metric is only available if you report conversions with cart data.
+     * Platform comparable 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 for 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 units_sold = 303; - * @return Whether the unitsSold field is set. + * optional double platform_comparable_conversions_from_interactions_rate = 382; + * @return Whether the platformComparableConversionsFromInteractionsRate field is set. */ @java.lang.Override - public boolean hasUnitsSold() { - return ((bitField5_ & 0x00000200) != 0); + public boolean hasPlatformComparableConversionsFromInteractionsRate() { + return ((bitField6_ & 0x00000010) != 0); } /** *
-     * Units sold is the total number of products sold from orders attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Units sold is the total number of products sold from all
-     * orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The units sold in this order is 3.
-     * This metric is only available if you report conversions with cart data.
+     * Platform comparable 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 for 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 units_sold = 303; - * @return The unitsSold. + * optional double platform_comparable_conversions_from_interactions_rate = 382; + * @return The platformComparableConversionsFromInteractionsRate. */ @java.lang.Override - public double getUnitsSold() { - return unitsSold_; + public double getPlatformComparableConversionsFromInteractionsRate() { + return platformComparableConversionsFromInteractionsRate_; } /** *
-     * Units sold is the total number of products sold from orders attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Units sold is the total number of products sold from all
-     * orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The units sold in this order is 3.
-     * This metric is only available if you report conversions with cart data.
+     * Platform comparable 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 for 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 units_sold = 303; - * @param value The unitsSold to set. + * optional double platform_comparable_conversions_from_interactions_rate = 382; + * @param value The platformComparableConversionsFromInteractionsRate to set. * @return This builder for chaining. */ - public Builder setUnitsSold(double value) { + public Builder setPlatformComparableConversionsFromInteractionsRate(double value) { - unitsSold_ = value; - bitField5_ |= 0x00000200; + platformComparableConversionsFromInteractionsRate_ = value; + bitField6_ |= 0x00000010; onChanged(); return this; } /** *
-     * Units sold is the total number of products sold from orders attributed to
-     * your ads.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. Units sold is the total number of products sold from all
-     * orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The units sold in this order is 3.
-     * This metric is only available if you report conversions with cart data.
+     * Platform comparable 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 for 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 units_sold = 303; + * optional double platform_comparable_conversions_from_interactions_rate = 382; * @return This builder for chaining. */ - public Builder clearUnitsSold() { - bitField5_ = (bitField5_ & ~0x00000200); - unitsSold_ = 0D; + public Builder clearPlatformComparableConversionsFromInteractionsRate() { + bitField6_ = (bitField6_ & ~0x00000010); + platformComparableConversionsFromInteractionsRate_ = 0D; onChanged(); return this; } - private long crossSellCostOfGoodsSoldMicros_ ; + private double platformComparableConversions_ ; /** *
-     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
-     * a result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
-     * the products sold that weren't advertised.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
-     * this order is $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. This only includes
+     * conversion actions for 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 int64 cross_sell_cost_of_goods_sold_micros = 304; - * @return Whether the crossSellCostOfGoodsSoldMicros field is set. + * optional double platform_comparable_conversions = 383; + * @return Whether the platformComparableConversions field is set. */ @java.lang.Override - public boolean hasCrossSellCostOfGoodsSoldMicros() { - return ((bitField5_ & 0x00000400) != 0); + public boolean hasPlatformComparableConversions() { + return ((bitField6_ & 0x00000020) != 0); } /** *
-     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
-     * a result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
-     * the products sold that weren't advertised.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
-     * this order is $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. This only includes
+     * conversion actions for 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 int64 cross_sell_cost_of_goods_sold_micros = 304; - * @return The crossSellCostOfGoodsSoldMicros. + * optional double platform_comparable_conversions = 383; + * @return The platformComparableConversions. */ @java.lang.Override - public long getCrossSellCostOfGoodsSoldMicros() { - return crossSellCostOfGoodsSoldMicros_; + public double getPlatformComparableConversions() { + return platformComparableConversions_; } /** *
-     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
-     * a result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
-     * the products sold that weren't advertised.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
-     * this order is $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. This only includes
+     * conversion actions for 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 int64 cross_sell_cost_of_goods_sold_micros = 304; - * @param value The crossSellCostOfGoodsSoldMicros to set. + * optional double platform_comparable_conversions = 383; + * @param value The platformComparableConversions to set. * @return This builder for chaining. */ - public Builder setCrossSellCostOfGoodsSoldMicros(long value) { + public Builder setPlatformComparableConversions(double value) { - crossSellCostOfGoodsSoldMicros_ = value; - bitField5_ |= 0x00000400; + platformComparableConversions_ = value; + bitField6_ |= 0x00000020; onChanged(); return this; } /** *
-     * Cross-sell cost of goods sold (COGS) is the total cost of products sold as
-     * a result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell cost of goods sold is the total cost of
-     * the products sold that weren't advertised.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The cross-sell cost of goods sold for
-     * this order is $5.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. This only includes
+     * conversion actions for 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 int64 cross_sell_cost_of_goods_sold_micros = 304; + * optional double platform_comparable_conversions = 383; * @return This builder for chaining. */ - public Builder clearCrossSellCostOfGoodsSoldMicros() { - bitField5_ = (bitField5_ & ~0x00000400); - crossSellCostOfGoodsSoldMicros_ = 0L; + public Builder clearPlatformComparableConversions() { + bitField6_ = (bitField6_ & ~0x00000020); + platformComparableConversions_ = 0D; onChanged(); return this; } - private long crossSellGrossProfitMicros_ ; + private double platformComparableConversionsValue_ ; /** *
-     * Cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the purchase is a sold
-     * product. If these products don't match then this is considered cross-sell.
-     * Cross-sell gross profit is the revenue you made from cross-sell attributed
-     * to your ads minus the cost of the goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
-     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable 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 int64 cross_sell_gross_profit_micros = 305; - * @return Whether the crossSellGrossProfitMicros field is set. + * optional double platform_comparable_conversions_value = 384; + * @return Whether the platformComparableConversionsValue field is set. */ @java.lang.Override - public boolean hasCrossSellGrossProfitMicros() { - return ((bitField5_ & 0x00000800) != 0); + public boolean hasPlatformComparableConversionsValue() { + return ((bitField6_ & 0x00000040) != 0); } /** *
-     * Cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the purchase is a sold
-     * product. If these products don't match then this is considered cross-sell.
-     * Cross-sell gross profit is the revenue you made from cross-sell attributed
-     * to your ads minus the cost of the goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
-     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable 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 int64 cross_sell_gross_profit_micros = 305; - * @return The crossSellGrossProfitMicros. + * optional double platform_comparable_conversions_value = 384; + * @return The platformComparableConversionsValue. */ @java.lang.Override - public long getCrossSellGrossProfitMicros() { - return crossSellGrossProfitMicros_; + public double getPlatformComparableConversionsValue() { + return platformComparableConversionsValue_; } /** *
-     * Cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the purchase is a sold
-     * product. If these products don't match then this is considered cross-sell.
-     * Cross-sell gross profit is the revenue you made from cross-sell attributed
-     * to your ads minus the cost of the goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
-     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable 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 int64 cross_sell_gross_profit_micros = 305; - * @param value The crossSellGrossProfitMicros to set. + * optional double platform_comparable_conversions_value = 384; + * @param value The platformComparableConversionsValue to set. * @return This builder for chaining. */ - public Builder setCrossSellGrossProfitMicros(long value) { + public Builder setPlatformComparableConversionsValue(double value) { - crossSellGrossProfitMicros_ = value; - bitField5_ |= 0x00000800; + platformComparableConversionsValue_ = value; + bitField6_ |= 0x00000040; onChanged(); return this; } /** *
-     * Cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the purchase is a sold
-     * product. If these products don't match then this is considered cross-sell.
-     * Cross-sell gross profit is the revenue you made from cross-sell attributed
-     * to your ads minus the cost of the goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The shirt is priced $20 and has a cost of goods sold value
-     * of $5. The cross-sell gross profit of this order is $15 = $20 - $5.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable 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 int64 cross_sell_gross_profit_micros = 305; + * optional double platform_comparable_conversions_value = 384; * @return This builder for chaining. */ - public Builder clearCrossSellGrossProfitMicros() { - bitField5_ = (bitField5_ & ~0x00000800); - crossSellGrossProfitMicros_ = 0L; + public Builder clearPlatformComparableConversionsValue() { + bitField6_ = (bitField6_ & ~0x00000040); + platformComparableConversionsValue_ = 0D; onChanged(); return this; } - private long crossSellRevenueMicros_ ; + private double platformComparableConversionsValuePerCost_ ; /** *
-     * Cross-sell revenue is the total amount you made from products sold as a
-     * result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell revenue is the total value you made from
-     * cross-sell attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * cross-sell revenue of this order is $20.
-     * This metric is only available if you report conversions with cart data.
+     * The value of conversions divided by the cost of ad interactions. This only
+     * includes conversion actions for 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 int64 cross_sell_revenue_micros = 306; - * @return Whether the crossSellRevenueMicros field is set. + * optional double platform_comparable_conversions_value_per_cost = 385; + * @return Whether the platformComparableConversionsValuePerCost field is set. */ @java.lang.Override - public boolean hasCrossSellRevenueMicros() { - return ((bitField5_ & 0x00001000) != 0); + public boolean hasPlatformComparableConversionsValuePerCost() { + return ((bitField6_ & 0x00000080) != 0); } /** *
-     * Cross-sell revenue is the total amount you made from products sold as a
-     * result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell revenue is the total value you made from
-     * cross-sell attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * cross-sell revenue of this order is $20.
-     * This metric is only available if you report conversions with cart data.
+     * The value of conversions divided by the cost of ad interactions. This only
+     * includes conversion actions for 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 int64 cross_sell_revenue_micros = 306; - * @return The crossSellRevenueMicros. + * optional double platform_comparable_conversions_value_per_cost = 385; + * @return The platformComparableConversionsValuePerCost. */ @java.lang.Override - public long getCrossSellRevenueMicros() { - return crossSellRevenueMicros_; + public double getPlatformComparableConversionsValuePerCost() { + return platformComparableConversionsValuePerCost_; } /** *
-     * Cross-sell revenue is the total amount you made from products sold as a
-     * result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell revenue is the total value you made from
-     * cross-sell attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * cross-sell revenue of this order is $20.
-     * This metric is only available if you report conversions with cart data.
+     * The value of conversions divided by the cost of ad interactions. This only
+     * includes conversion actions for 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 int64 cross_sell_revenue_micros = 306; - * @param value The crossSellRevenueMicros to set. + * optional double platform_comparable_conversions_value_per_cost = 385; + * @param value The platformComparableConversionsValuePerCost to set. * @return This builder for chaining. */ - public Builder setCrossSellRevenueMicros(long value) { + public Builder setPlatformComparableConversionsValuePerCost(double value) { - crossSellRevenueMicros_ = value; - bitField5_ |= 0x00001000; + platformComparableConversionsValuePerCost_ = value; + bitField6_ |= 0x00000080; onChanged(); return this; } /** *
-     * Cross-sell revenue is the total amount you made from products sold as a
-     * result of advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell revenue is the total value you made from
-     * cross-sell attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * cross-sell revenue of this order is $20.
-     * This metric is only available if you report conversions with cart data.
+     * The value of conversions divided by the cost of ad interactions. This only
+     * includes conversion actions for 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 int64 cross_sell_revenue_micros = 306; + * optional double platform_comparable_conversions_value_per_cost = 385; * @return This builder for chaining. */ - public Builder clearCrossSellRevenueMicros() { - bitField5_ = (bitField5_ & ~0x00001000); - crossSellRevenueMicros_ = 0L; + public Builder clearPlatformComparableConversionsValuePerCost() { + bitField6_ = (bitField6_ & ~0x00000080); + platformComparableConversionsValuePerCost_ = 0D; onChanged(); return this; } - private double crossSellUnitsSold_ ; + private double platformComparableConversionsByConversionDate_ ; /** *
-     * Cross-sell units sold is the total number of products sold as a result of
-     * advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell units sold is the total number of
-     * cross-sold products from all orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. When this metric is
+     * segmented by date, the values in the date segment represent the conversion
+     * date. This only includes conversion actions for 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 cross_sell_units_sold = 307; - * @return Whether the crossSellUnitsSold field is set. + * optional double platform_comparable_conversions_by_conversion_date = 386; + * @return Whether the platformComparableConversionsByConversionDate field is set. */ @java.lang.Override - public boolean hasCrossSellUnitsSold() { - return ((bitField5_ & 0x00002000) != 0); + public boolean hasPlatformComparableConversionsByConversionDate() { + return ((bitField6_ & 0x00000100) != 0); } /** *
-     * Cross-sell units sold is the total number of products sold as a result of
-     * advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell units sold is the total number of
-     * cross-sold products from all orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. When this metric is
+     * segmented by date, the values in the date segment represent the conversion
+     * date. This only includes conversion actions for 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 cross_sell_units_sold = 307; - * @return The crossSellUnitsSold. + * optional double platform_comparable_conversions_by_conversion_date = 386; + * @return The platformComparableConversionsByConversionDate. */ @java.lang.Override - public double getCrossSellUnitsSold() { - return crossSellUnitsSold_; + public double getPlatformComparableConversionsByConversionDate() { + return platformComparableConversionsByConversionDate_; } /** *
-     * Cross-sell units sold is the total number of products sold as a result of
-     * advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell units sold is the total number of
-     * cross-sold products from all orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. When this metric is
+     * segmented by date, the values in the date segment represent the conversion
+     * date. This only includes conversion actions for 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 cross_sell_units_sold = 307; - * @param value The crossSellUnitsSold to set. + * optional double platform_comparable_conversions_by_conversion_date = 386; + * @param value The platformComparableConversionsByConversionDate to set. * @return This builder for chaining. */ - public Builder setCrossSellUnitsSold(double value) { + public Builder setPlatformComparableConversionsByConversionDate(double value) { - crossSellUnitsSold_ = value; - bitField5_ |= 0x00002000; + platformComparableConversionsByConversionDate_ = value; + bitField6_ |= 0x00000100; onChanged(); return this; } /** *
-     * Cross-sell units sold is the total number of products sold as a result of
-     * advertising a different product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If these products don't match then this is
-     * considered cross-sell. Cross-sell units sold is the total number of
-     * cross-sold products from all orders attributed to your ads.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The cross-sell units sold in this order is 2.
-     * This metric is only available if you report conversions with cart data.
+     * The number of platform comparable conversions. When this metric is
+     * segmented by date, the values in the date segment represent the conversion
+     * date. This only includes conversion actions for 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 cross_sell_units_sold = 307; + * optional double platform_comparable_conversions_by_conversion_date = 386; * @return This builder for chaining. */ - public Builder clearCrossSellUnitsSold() { - bitField5_ = (bitField5_ & ~0x00002000); - crossSellUnitsSold_ = 0D; + public Builder clearPlatformComparableConversionsByConversionDate() { + bitField6_ = (bitField6_ & ~0x00000100); + platformComparableConversionsByConversionDate_ = 0D; onChanged(); return this; } - private long leadCostOfGoodsSoldMicros_ ; + private double platformComparableConversionsValueByConversionDate_ ; /** *
-     * Lead cost of goods sold (COGS) is the total cost of products sold as a
-     * result of advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with has an associated
-     * product (see Shopping Ads) then this product is considered the advertised
-     * product. Any product included in the order the customer places is a sold
-     * product. If the advertised and sold products match, then the cost of these
-     * goods is counted under lead cost of goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The lead cost of goods sold for this
-     * order is $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions. When this metric is segmented
+     * by date, the values in the date segment represent the conversion date. This
+     * only includes conversion actions for 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 int64 lead_cost_of_goods_sold_micros = 308; - * @return Whether the leadCostOfGoodsSoldMicros field is set. + * optional double platform_comparable_conversions_value_by_conversion_date = 387; + * @return Whether the platformComparableConversionsValueByConversionDate field is set. */ @java.lang.Override - public boolean hasLeadCostOfGoodsSoldMicros() { - return ((bitField5_ & 0x00004000) != 0); + public boolean hasPlatformComparableConversionsValueByConversionDate() { + return ((bitField6_ & 0x00000200) != 0); } /** *
-     * Lead cost of goods sold (COGS) is the total cost of products sold as a
-     * result of advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with has an associated
-     * product (see Shopping Ads) then this product is considered the advertised
-     * product. Any product included in the order the customer places is a sold
-     * product. If the advertised and sold products match, then the cost of these
-     * goods is counted under lead cost of goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The lead cost of goods sold for this
-     * order is $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions. When this metric is segmented
+     * by date, the values in the date segment represent the conversion date. This
+     * only includes conversion actions for 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 int64 lead_cost_of_goods_sold_micros = 308; - * @return The leadCostOfGoodsSoldMicros. + * optional double platform_comparable_conversions_value_by_conversion_date = 387; + * @return The platformComparableConversionsValueByConversionDate. */ @java.lang.Override - public long getLeadCostOfGoodsSoldMicros() { - return leadCostOfGoodsSoldMicros_; + public double getPlatformComparableConversionsValueByConversionDate() { + return platformComparableConversionsValueByConversionDate_; } /** *
-     * Lead cost of goods sold (COGS) is the total cost of products sold as a
-     * result of advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with has an associated
-     * product (see Shopping Ads) then this product is considered the advertised
-     * product. Any product included in the order the customer places is a sold
-     * product. If the advertised and sold products match, then the cost of these
-     * goods is counted under lead cost of goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The lead cost of goods sold for this
-     * order is $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions. When this metric is segmented
+     * by date, the values in the date segment represent the conversion date. This
+     * only includes conversion actions for 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 int64 lead_cost_of_goods_sold_micros = 308; - * @param value The leadCostOfGoodsSoldMicros to set. + * optional double platform_comparable_conversions_value_by_conversion_date = 387; + * @param value The platformComparableConversionsValueByConversionDate to set. * @return This builder for chaining. */ - public Builder setLeadCostOfGoodsSoldMicros(long value) { + public Builder setPlatformComparableConversionsValueByConversionDate(double value) { - leadCostOfGoodsSoldMicros_ = value; - bitField5_ |= 0x00004000; + platformComparableConversionsValueByConversionDate_ = value; + bitField6_ |= 0x00000200; onChanged(); return this; } /** *
-     * Lead cost of goods sold (COGS) is the total cost of products sold as a
-     * result of advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with has an associated
-     * product (see Shopping Ads) then this product is considered the advertised
-     * product. Any product included in the order the customer places is a sold
-     * product. If the advertised and sold products match, then the cost of these
-     * goods is counted under lead cost of goods sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat has a cost of goods sold value of $3, the shirt
-     * has a cost of goods sold value of $5. The lead cost of goods sold for this
-     * order is $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions. When this metric is segmented
+     * by date, the values in the date segment represent the conversion date. This
+     * only includes conversion actions for 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 int64 lead_cost_of_goods_sold_micros = 308; + * optional double platform_comparable_conversions_value_by_conversion_date = 387; * @return This builder for chaining. */ - public Builder clearLeadCostOfGoodsSoldMicros() { - bitField5_ = (bitField5_ & ~0x00004000); - leadCostOfGoodsSoldMicros_ = 0L; + public Builder clearPlatformComparableConversionsValueByConversionDate() { + bitField6_ = (bitField6_ & ~0x00000200); + platformComparableConversionsValueByConversionDate_ = 0D; onChanged(); return this; } - private long leadGrossProfitMicros_ ; + private double platformComparableConversionsFromInteractionsValuePerInteraction_ ; /** *
-     * Lead gross profit is the profit you made from products sold as a result of
-     * advertising the same product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the revenue you made from these sales minus the cost of goods sold is your
-     * lead gross profit.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
-     * of $3. The lead gross profit of this order is $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions from interactions divided by
+     * the number of ad interactions. This only includes conversion actions for
+     * 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 int64 lead_gross_profit_micros = 309; - * @return Whether the leadGrossProfitMicros field is set. + * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; + * @return Whether the platformComparableConversionsFromInteractionsValuePerInteraction field is set. */ @java.lang.Override - public boolean hasLeadGrossProfitMicros() { - return ((bitField5_ & 0x00008000) != 0); + public boolean hasPlatformComparableConversionsFromInteractionsValuePerInteraction() { + return ((bitField6_ & 0x00000400) != 0); } /** *
-     * Lead gross profit is the profit you made from products sold as a result of
-     * advertising the same product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the revenue you made from these sales minus the cost of goods sold is your
-     * lead gross profit.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
-     * of $3. The lead gross profit of this order is $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions from interactions divided by
+     * the number of ad interactions. This only includes conversion actions for
+     * 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 int64 lead_gross_profit_micros = 309; - * @return The leadGrossProfitMicros. + * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; + * @return The platformComparableConversionsFromInteractionsValuePerInteraction. */ @java.lang.Override - public long getLeadGrossProfitMicros() { - return leadGrossProfitMicros_; + public double getPlatformComparableConversionsFromInteractionsValuePerInteraction() { + return platformComparableConversionsFromInteractionsValuePerInteraction_; } /** *
-     * Lead gross profit is the profit you made from products sold as a result of
-     * advertising the same product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the revenue you made from these sales minus the cost of goods sold is your
-     * lead gross profit.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
-     * of $3. The lead gross profit of this order is $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions from interactions divided by
+     * the number of ad interactions. This only includes conversion actions for
+     * 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 int64 lead_gross_profit_micros = 309; - * @param value The leadGrossProfitMicros to set. + * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; + * @param value The platformComparableConversionsFromInteractionsValuePerInteraction to set. * @return This builder for chaining. */ - public Builder setLeadGrossProfitMicros(long value) { + public Builder setPlatformComparableConversionsFromInteractionsValuePerInteraction(double value) { - leadGrossProfitMicros_ = value; - bitField5_ |= 0x00008000; + platformComparableConversionsFromInteractionsValuePerInteraction_ = value; + bitField6_ |= 0x00000400; onChanged(); return this; } /** *
-     * Lead gross profit is the profit you made from products sold as a result of
-     * advertising the same product, minus cost of goods sold (COGS).
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the revenue you made from these sales minus the cost of goods sold is your
-     * lead gross profit.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and has a cost of goods sold value
-     * of $3. The lead gross profit of this order is $7 = $10 - $3.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions from interactions divided by
+     * the number of ad interactions. This only includes conversion actions for
+     * 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 int64 lead_gross_profit_micros = 309; + * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; * @return This builder for chaining. */ - public Builder clearLeadGrossProfitMicros() { - bitField5_ = (bitField5_ & ~0x00008000); - leadGrossProfitMicros_ = 0L; + public Builder clearPlatformComparableConversionsFromInteractionsValuePerInteraction() { + bitField6_ = (bitField6_ & ~0x00000400); + platformComparableConversionsFromInteractionsValuePerInteraction_ = 0D; onChanged(); return this; } - private long leadRevenueMicros_ ; + private double costPerPlatformComparableConversion_ ; /** *
-     * Lead revenue is the total amount you made from products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total value you made from the sales of these products is shown under
-     * lead revenue.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * lead revenue of this order is $10.
-     * This metric is only available if you report conversions with cart data.
+     * The cost of ad interactions divided by the number of platform comparable
+     * conversions. This only includes conversion actions for 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 int64 lead_revenue_micros = 310; - * @return Whether the leadRevenueMicros field is set. + * optional double cost_per_platform_comparable_conversion = 389; + * @return Whether the costPerPlatformComparableConversion field is set. */ @java.lang.Override - public boolean hasLeadRevenueMicros() { - return ((bitField5_ & 0x00010000) != 0); + public boolean hasCostPerPlatformComparableConversion() { + return ((bitField6_ & 0x00000800) != 0); } /** *
-     * Lead revenue is the total amount you made from products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total value you made from the sales of these products is shown under
-     * lead revenue.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * lead revenue of this order is $10.
-     * This metric is only available if you report conversions with cart data.
+     * The cost of ad interactions divided by the number of platform comparable
+     * conversions. This only includes conversion actions for 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 int64 lead_revenue_micros = 310; - * @return The leadRevenueMicros. + * optional double cost_per_platform_comparable_conversion = 389; + * @return The costPerPlatformComparableConversion. */ @java.lang.Override - public long getLeadRevenueMicros() { - return leadRevenueMicros_; + public double getCostPerPlatformComparableConversion() { + return costPerPlatformComparableConversion_; } /** *
-     * Lead revenue is the total amount you made from products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total value you made from the sales of these products is shown under
-     * lead revenue.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * lead revenue of this order is $10.
-     * This metric is only available if you report conversions with cart data.
+     * The cost of ad interactions divided by the number of platform comparable
+     * conversions. This only includes conversion actions for 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 int64 lead_revenue_micros = 310; - * @param value The leadRevenueMicros to set. + * optional double cost_per_platform_comparable_conversion = 389; + * @param value The costPerPlatformComparableConversion to set. * @return This builder for chaining. */ - public Builder setLeadRevenueMicros(long value) { + public Builder setCostPerPlatformComparableConversion(double value) { - leadRevenueMicros_ = value; - bitField5_ |= 0x00010000; + costPerPlatformComparableConversion_ = value; + bitField6_ |= 0x00000800; onChanged(); return this; } /** *
-     * Lead revenue is the total amount you made from products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total value you made from the sales of these products is shown under
-     * lead revenue.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat and a shirt. The hat is priced $10 and the shirt is priced $20. The
-     * lead revenue of this order is $10.
-     * This metric is only available if you report conversions with cart data.
+     * The cost of ad interactions divided by the number of platform comparable
+     * conversions. This only includes conversion actions for 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 int64 lead_revenue_micros = 310; + * optional double cost_per_platform_comparable_conversion = 389; * @return This builder for chaining. */ - public Builder clearLeadRevenueMicros() { - bitField5_ = (bitField5_ & ~0x00010000); - leadRevenueMicros_ = 0L; + public Builder clearCostPerPlatformComparableConversion() { + bitField6_ = (bitField6_ & ~0x00000800); + costPerPlatformComparableConversion_ = 0D; onChanged(); return this; } - private double leadUnitsSold_ ; + private double valuePerPlatformComparableConversion_ ; /** *
-     * Lead units sold is the total number of products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total number of these products sold is shown under lead units sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The lead units sold in this order is 1.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. This only includes conversion actions for
+     * 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 lead_units_sold = 311; - * @return Whether the leadUnitsSold field is set. + * optional double value_per_platform_comparable_conversion = 390; + * @return Whether the valuePerPlatformComparableConversion field is set. */ @java.lang.Override - public boolean hasLeadUnitsSold() { - return ((bitField5_ & 0x00020000) != 0); + public boolean hasValuePerPlatformComparableConversion() { + return ((bitField6_ & 0x00001000) != 0); } /** *
-     * Lead units sold is the total number of products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total number of these products sold is shown under lead units sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The lead units sold in this order is 1.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. This only includes conversion actions for
+     * 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 lead_units_sold = 311; - * @return The leadUnitsSold. + * optional double value_per_platform_comparable_conversion = 390; + * @return The valuePerPlatformComparableConversion. */ @java.lang.Override - public double getLeadUnitsSold() { - return leadUnitsSold_; + public double getValuePerPlatformComparableConversion() { + return valuePerPlatformComparableConversion_; } /** *
-     * Lead units sold is the total number of products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total number of these products sold is shown under lead units sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The lead units sold in this order is 1.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. This only includes conversion actions for
+     * 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 lead_units_sold = 311; - * @param value The leadUnitsSold to set. + * optional double value_per_platform_comparable_conversion = 390; + * @param value The valuePerPlatformComparableConversion to set. * @return This builder for chaining. */ - public Builder setLeadUnitsSold(double value) { + public Builder setValuePerPlatformComparableConversion(double value) { - leadUnitsSold_ = value; - bitField5_ |= 0x00020000; + valuePerPlatformComparableConversion_ = value; + bitField6_ |= 0x00001000; onChanged(); return this; } /** *
-     * Lead units sold is the total number of products sold as a result of
-     * advertising the same product.
-     * How it works: You report conversions with cart data for completed purchases
-     * on your website. If the ad that was interacted with before the purchase has
-     * an associated product (see Shopping Ads) then this product is considered
-     * the advertised product. Any product included in the order the customer
-     * places is a sold product. If the advertised and sold products match, then
-     * the total number of these products sold is shown under lead units sold.
-     * Example: Someone clicked on a Shopping ad for a hat then bought the same
-     * hat, a shirt and a jacket. The lead units sold in this order is 1.
-     * This metric is only available if you report conversions with cart data.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. This only includes conversion actions for
+     * 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 lead_units_sold = 311; + * optional double value_per_platform_comparable_conversion = 390; * @return This builder for chaining. */ - public Builder clearLeadUnitsSold() { - bitField5_ = (bitField5_ & ~0x00020000); - leadUnitsSold_ = 0D; + public Builder clearValuePerPlatformComparableConversion() { + bitField6_ = (bitField6_ & ~0x00001000); + valuePerPlatformComparableConversion_ = 0D; onChanged(); return this; } - private long uniqueUsers_ ; + private double valuePerPlatformComparableConversionsByConversionDate_ ; /** *
-     * The number of unique users who saw your ad during the requested time
-     * period. This metric cannot be aggregated, and can only be requested for
-     * date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. When this metric is segmented by date, the
+     * values in the date segment represent the conversion date. This only
+     * includes conversion actions for 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 int64 unique_users = 319; - * @return Whether the uniqueUsers field is set. + * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; + * @return Whether the valuePerPlatformComparableConversionsByConversionDate field is set. */ @java.lang.Override - public boolean hasUniqueUsers() { - return ((bitField5_ & 0x00040000) != 0); + public boolean hasValuePerPlatformComparableConversionsByConversionDate() { + return ((bitField6_ & 0x00002000) != 0); } /** *
-     * The number of unique users who saw your ad during the requested time
-     * period. This metric cannot be aggregated, and can only be requested for
-     * date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. When this metric is segmented by date, the
+     * values in the date segment represent the conversion date. This only
+     * includes conversion actions for 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 int64 unique_users = 319; - * @return The uniqueUsers. + * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; + * @return The valuePerPlatformComparableConversionsByConversionDate. */ @java.lang.Override - public long getUniqueUsers() { - return uniqueUsers_; + public double getValuePerPlatformComparableConversionsByConversionDate() { + return valuePerPlatformComparableConversionsByConversionDate_; } /** *
-     * The number of unique users who saw your ad during the requested time
-     * period. This metric cannot be aggregated, and can only be requested for
-     * date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. When this metric is segmented by date, the
+     * values in the date segment represent the conversion date. This only
+     * includes conversion actions for 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 int64 unique_users = 319; - * @param value The uniqueUsers to set. + * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; + * @param value The valuePerPlatformComparableConversionsByConversionDate to set. * @return This builder for chaining. */ - public Builder setUniqueUsers(long value) { + public Builder setValuePerPlatformComparableConversionsByConversionDate(double value) { - uniqueUsers_ = value; - bitField5_ |= 0x00040000; + valuePerPlatformComparableConversionsByConversionDate_ = value; + bitField6_ |= 0x00002000; onChanged(); return this; } /** *
-     * The number of unique users who saw your ad during the requested time
-     * period. This metric cannot be aggregated, and can only be requested for
-     * date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The value of platform comparable conversions divided by the number of
+     * platform comparable conversions. When this metric is segmented by date, the
+     * values in the date segment represent the conversion date. This only
+     * includes conversion actions for 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 int64 unique_users = 319; + * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; * @return This builder for chaining. */ - public Builder clearUniqueUsers() { - bitField5_ = (bitField5_ & ~0x00040000); - uniqueUsers_ = 0L; + public Builder clearValuePerPlatformComparableConversionsByConversionDate() { + bitField6_ = (bitField6_ & ~0x00002000); + valuePerPlatformComparableConversionsByConversionDate_ = 0D; onChanged(); return this; } - private double averageImpressionFrequencyPerUser_ ; + private double costConvertedCurrencyPerPlatformComparableConversion_ ; /** *
-     * The average number of times a unique user saw your ad during the requested
-     * time period. This metric cannot be aggregated, and can only be requested
-     * for date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The cost of the platform comparable conversion in the currency of the
+     * authorized customer.
      * 
* - * optional double average_impression_frequency_per_user = 320; - * @return Whether the averageImpressionFrequencyPerUser field is set. + * optional double cost_converted_currency_per_platform_comparable_conversion = 392; + * @return Whether the costConvertedCurrencyPerPlatformComparableConversion field is set. */ @java.lang.Override - public boolean hasAverageImpressionFrequencyPerUser() { - return ((bitField5_ & 0x00080000) != 0); + public boolean hasCostConvertedCurrencyPerPlatformComparableConversion() { + return ((bitField6_ & 0x00004000) != 0); } /** *
-     * The average number of times a unique user saw your ad during the requested
-     * time period. This metric cannot be aggregated, and can only be requested
-     * for date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The cost of the platform comparable conversion in the currency of the
+     * authorized customer.
      * 
* - * optional double average_impression_frequency_per_user = 320; - * @return The averageImpressionFrequencyPerUser. + * optional double cost_converted_currency_per_platform_comparable_conversion = 392; + * @return The costConvertedCurrencyPerPlatformComparableConversion. */ @java.lang.Override - public double getAverageImpressionFrequencyPerUser() { - return averageImpressionFrequencyPerUser_; + public double getCostConvertedCurrencyPerPlatformComparableConversion() { + return costConvertedCurrencyPerPlatformComparableConversion_; } /** *
-     * The average number of times a unique user saw your ad during the requested
-     * time period. This metric cannot be aggregated, and can only be requested
-     * for date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The cost of the platform comparable conversion in the currency of the
+     * authorized customer.
      * 
* - * optional double average_impression_frequency_per_user = 320; - * @param value The averageImpressionFrequencyPerUser to set. + * optional double cost_converted_currency_per_platform_comparable_conversion = 392; + * @param value The costConvertedCurrencyPerPlatformComparableConversion to set. * @return This builder for chaining. */ - public Builder setAverageImpressionFrequencyPerUser(double value) { + public Builder setCostConvertedCurrencyPerPlatformComparableConversion(double value) { - averageImpressionFrequencyPerUser_ = value; - bitField5_ |= 0x00080000; + costConvertedCurrencyPerPlatformComparableConversion_ = value; + bitField6_ |= 0x00004000; onChanged(); return this; } /** *
-     * The average number of times a unique user saw your ad during the requested
-     * time period. This metric cannot be aggregated, and can only be requested
-     * for date ranges of 92 days or less. This metric is available for following
-     * campaign types - Display, Video, Discovery and App.
+     * The cost of the platform comparable conversion in the currency of the
+     * authorized customer.
      * 
* - * optional double average_impression_frequency_per_user = 320; + * optional double cost_converted_currency_per_platform_comparable_conversion = 392; * @return This builder for chaining. */ - public Builder clearAverageImpressionFrequencyPerUser() { - bitField5_ = (bitField5_ & ~0x00080000); - averageImpressionFrequencyPerUser_ = 0D; + public Builder clearCostConvertedCurrencyPerPlatformComparableConversion() { + bitField6_ = (bitField6_ & ~0x00004000); + costConvertedCurrencyPerPlatformComparableConversion_ = 0D; onChanged(); return this; } - private long linkedEntitiesCount_ ; + private long uniqueUsersTwoPlus_ ; /** *
-     * Number of linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad two
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 linked_entities_count = 341; - * @return Whether the linkedEntitiesCount field is set. + * optional int64 unique_users_two_plus = 393; + * @return Whether the uniqueUsersTwoPlus field is set. */ @java.lang.Override - public boolean hasLinkedEntitiesCount() { - return ((bitField5_ & 0x00100000) != 0); + public boolean hasUniqueUsersTwoPlus() { + return ((bitField6_ & 0x00008000) != 0); } /** *
-     * Number of linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad two
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 linked_entities_count = 341; - * @return The linkedEntitiesCount. + * optional int64 unique_users_two_plus = 393; + * @return The uniqueUsersTwoPlus. */ @java.lang.Override - public long getLinkedEntitiesCount() { - return linkedEntitiesCount_; + public long getUniqueUsersTwoPlus() { + return uniqueUsersTwoPlus_; } /** *
-     * Number of linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad two
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 linked_entities_count = 341; - * @param value The linkedEntitiesCount to set. + * optional int64 unique_users_two_plus = 393; + * @param value The uniqueUsersTwoPlus to set. * @return This builder for chaining. */ - public Builder setLinkedEntitiesCount(long value) { + public Builder setUniqueUsersTwoPlus(long value) { - linkedEntitiesCount_ = value; - bitField5_ |= 0x00100000; + uniqueUsersTwoPlus_ = value; + bitField6_ |= 0x00008000; onChanged(); return this; } /** *
-     * Number of linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad two
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 linked_entities_count = 341; + * optional int64 unique_users_two_plus = 393; * @return This builder for chaining. */ - public Builder clearLinkedEntitiesCount() { - bitField5_ = (bitField5_ & ~0x00100000); - linkedEntitiesCount_ = 0L; + public Builder clearUniqueUsersTwoPlus() { + bitField6_ = (bitField6_ & ~0x00008000); + uniqueUsersTwoPlus_ = 0L; onChanged(); return this; } - private com.google.protobuf.LazyStringArrayList linkedSampleEntities_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - private void ensureLinkedSampleEntitiesIsMutable() { - if (!linkedSampleEntities_.isModifiable()) { - linkedSampleEntities_ = new com.google.protobuf.LazyStringArrayList(linkedSampleEntities_); - } - bitField5_ |= 0x00200000; - } - /** - *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * 
- * - * repeated string linked_sample_entities = 342; - * @return A list containing the linkedSampleEntities. - */ - public com.google.protobuf.ProtocolStringList - getLinkedSampleEntitiesList() { - linkedSampleEntities_.makeImmutable(); - return linkedSampleEntities_; - } + private long uniqueUsersThreePlus_ ; /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad
+     * three or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; - * @return The count of linkedSampleEntities. + * optional int64 unique_users_three_plus = 394; + * @return Whether the uniqueUsersThreePlus field is set. */ - public int getLinkedSampleEntitiesCount() { - return linkedSampleEntities_.size(); + @java.lang.Override + public boolean hasUniqueUsersThreePlus() { + return ((bitField6_ & 0x00010000) != 0); } /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad
+     * three or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; - * @param index The index of the element to return. - * @return The linkedSampleEntities at the given index. + * optional int64 unique_users_three_plus = 394; + * @return The uniqueUsersThreePlus. */ - public java.lang.String getLinkedSampleEntities(int index) { - return linkedSampleEntities_.get(index); + @java.lang.Override + public long getUniqueUsersThreePlus() { + return uniqueUsersThreePlus_; } /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad
+     * three or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; - * @param index The index of the value to return. - * @return The bytes of the linkedSampleEntities at the given index. + * optional int64 unique_users_three_plus = 394; + * @param value The uniqueUsersThreePlus to set. + * @return This builder for chaining. */ - public com.google.protobuf.ByteString - getLinkedSampleEntitiesBytes(int index) { - return linkedSampleEntities_.getByteString(index); + public Builder setUniqueUsersThreePlus(long value) { + + uniqueUsersThreePlus_ = value; + bitField6_ |= 0x00010000; + onChanged(); + return this; } /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad
+     * three or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; - * @param index The index to set the value at. - * @param value The linkedSampleEntities to set. + * optional int64 unique_users_three_plus = 394; * @return This builder for chaining. */ - public Builder setLinkedSampleEntities( - int index, java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureLinkedSampleEntitiesIsMutable(); - linkedSampleEntities_.set(index, value); - bitField5_ |= 0x00200000; + public Builder clearUniqueUsersThreePlus() { + bitField6_ = (bitField6_ & ~0x00010000); + uniqueUsersThreePlus_ = 0L; onChanged(); return this; } + + private long uniqueUsersFourPlus_ ; /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad four
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; - * @param value The linkedSampleEntities to add. - * @return This builder for chaining. + * optional int64 unique_users_four_plus = 395; + * @return Whether the uniqueUsersFourPlus field is set. */ - public Builder addLinkedSampleEntities( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureLinkedSampleEntitiesIsMutable(); - linkedSampleEntities_.add(value); - bitField5_ |= 0x00200000; - onChanged(); - return this; + @java.lang.Override + public boolean hasUniqueUsersFourPlus() { + return ((bitField6_ & 0x00020000) != 0); } /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad four
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; - * @param values The linkedSampleEntities to add. - * @return This builder for chaining. + * optional int64 unique_users_four_plus = 395; + * @return The uniqueUsersFourPlus. */ - public Builder addAllLinkedSampleEntities( - java.lang.Iterable values) { - ensureLinkedSampleEntitiesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, linkedSampleEntities_); - bitField5_ |= 0x00200000; - onChanged(); - return this; + @java.lang.Override + public long getUniqueUsersFourPlus() { + return uniqueUsersFourPlus_; } /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad four
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; + * optional int64 unique_users_four_plus = 395; + * @param value The uniqueUsersFourPlus to set. * @return This builder for chaining. */ - public Builder clearLinkedSampleEntities() { - linkedSampleEntities_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - bitField5_ = (bitField5_ & ~0x00200000);; + public Builder setUniqueUsersFourPlus(long value) { + + uniqueUsersFourPlus_ = value; + bitField6_ |= 0x00020000; onChanged(); return this; } /** *
-     * A list of up to 20 sample linked resources in which the asset is used.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
+     * This metric counts the unique individuals who were shown your video ad four
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * repeated string linked_sample_entities = 342; - * @param value The bytes of the linkedSampleEntities to add. + * optional int64 unique_users_four_plus = 395; * @return This builder for chaining. */ - public Builder addLinkedSampleEntitiesBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - ensureLinkedSampleEntitiesIsMutable(); - linkedSampleEntities_.add(value); - bitField5_ |= 0x00200000; + public Builder clearUniqueUsersFourPlus() { + bitField6_ = (bitField6_ & ~0x00020000); + uniqueUsersFourPlus_ = 0L; onChanged(); return this; } - private long assetPinnedTotalCount_ ; + private long uniqueUsersFivePlus_ ; /** *
-     * Number of total usages in which the asset is pinned.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad five
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_total_count = 348; - * @return Whether the assetPinnedTotalCount field is set. + * optional int64 unique_users_five_plus = 396; + * @return Whether the uniqueUsersFivePlus field is set. */ @java.lang.Override - public boolean hasAssetPinnedTotalCount() { - return ((bitField5_ & 0x00400000) != 0); + public boolean hasUniqueUsersFivePlus() { + return ((bitField6_ & 0x00040000) != 0); } /** *
-     * Number of total usages in which the asset is pinned.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad five
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_total_count = 348; - * @return The assetPinnedTotalCount. + * optional int64 unique_users_five_plus = 396; + * @return The uniqueUsersFivePlus. */ @java.lang.Override - public long getAssetPinnedTotalCount() { - return assetPinnedTotalCount_; + public long getUniqueUsersFivePlus() { + return uniqueUsersFivePlus_; } /** *
-     * Number of total usages in which the asset is pinned.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad five
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_total_count = 348; - * @param value The assetPinnedTotalCount to set. + * optional int64 unique_users_five_plus = 396; + * @param value The uniqueUsersFivePlus to set. * @return This builder for chaining. */ - public Builder setAssetPinnedTotalCount(long value) { + public Builder setUniqueUsersFivePlus(long value) { - assetPinnedTotalCount_ = value; - bitField5_ |= 0x00400000; + uniqueUsersFivePlus_ = value; + bitField6_ |= 0x00040000; onChanged(); return this; } /** *
-     * Number of total usages in which the asset is pinned.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad five
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_total_count = 348; + * optional int64 unique_users_five_plus = 396; * @return This builder for chaining. */ - public Builder clearAssetPinnedTotalCount() { - bitField5_ = (bitField5_ & ~0x00400000); - assetPinnedTotalCount_ = 0L; + public Builder clearUniqueUsersFivePlus() { + bitField6_ = (bitField6_ & ~0x00040000); + uniqueUsersFivePlus_ = 0L; onChanged(); return this; } - private long assetPinnedAsHeadlinePositionOneCount_ ; + private long uniqueUsersTenPlus_ ; /** *
-     * Number of entities in which the asset is pinned to headline 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad ten
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_as_headline_position_one_count = 349; - * @return Whether the assetPinnedAsHeadlinePositionOneCount field is set. + * optional int64 unique_users_ten_plus = 397; + * @return Whether the uniqueUsersTenPlus field is set. */ @java.lang.Override - public boolean hasAssetPinnedAsHeadlinePositionOneCount() { - return ((bitField5_ & 0x00800000) != 0); + public boolean hasUniqueUsersTenPlus() { + return ((bitField6_ & 0x00080000) != 0); } /** *
-     * Number of entities in which the asset is pinned to headline 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad ten
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_as_headline_position_one_count = 349; - * @return The assetPinnedAsHeadlinePositionOneCount. + * optional int64 unique_users_ten_plus = 397; + * @return The uniqueUsersTenPlus. */ @java.lang.Override - public long getAssetPinnedAsHeadlinePositionOneCount() { - return assetPinnedAsHeadlinePositionOneCount_; + public long getUniqueUsersTenPlus() { + return uniqueUsersTenPlus_; } /** *
-     * Number of entities in which the asset is pinned to headline 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad ten
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_as_headline_position_one_count = 349; - * @param value The assetPinnedAsHeadlinePositionOneCount to set. + * optional int64 unique_users_ten_plus = 397; + * @param value The uniqueUsersTenPlus to set. * @return This builder for chaining. */ - public Builder setAssetPinnedAsHeadlinePositionOneCount(long value) { + public Builder setUniqueUsersTenPlus(long value) { - assetPinnedAsHeadlinePositionOneCount_ = value; - bitField5_ |= 0x00800000; + uniqueUsersTenPlus_ = value; + bitField6_ |= 0x00080000; onChanged(); return this; } /** *
-     * Number of entities in which the asset is pinned to headline 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * This metric counts the unique individuals who were shown your video ad ten
+     * or more times within the selected date range. This metric cannot be
+     * aggregated, and can only be requested for date ranges of 31 days or less.
      * 
* - * optional int64 asset_pinned_as_headline_position_one_count = 349; + * optional int64 unique_users_ten_plus = 397; * @return This builder for chaining. */ - public Builder clearAssetPinnedAsHeadlinePositionOneCount() { - bitField5_ = (bitField5_ & ~0x00800000); - assetPinnedAsHeadlinePositionOneCount_ = 0L; + public Builder clearUniqueUsersTenPlus() { + bitField6_ = (bitField6_ & ~0x00080000); + uniqueUsersTenPlus_ = 0L; onChanged(); return this; } - private long assetPinnedAsHeadlinePositionTwoCount_ ; + private double valueAdjustment_ ; /** *
-     * Number of entities in which the asset is pinned to headline 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from biddable conversions in all
+     * conversion categories.
      * 
* - * optional int64 asset_pinned_as_headline_position_two_count = 350; - * @return Whether the assetPinnedAsHeadlinePositionTwoCount field is set. + * optional double value_adjustment = 398; + * @return Whether the valueAdjustment field is set. */ @java.lang.Override - public boolean hasAssetPinnedAsHeadlinePositionTwoCount() { - return ((bitField5_ & 0x01000000) != 0); + public boolean hasValueAdjustment() { + return ((bitField6_ & 0x00100000) != 0); } /** *
-     * Number of entities in which the asset is pinned to headline 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from biddable conversions in all
+     * conversion categories.
      * 
* - * optional int64 asset_pinned_as_headline_position_two_count = 350; - * @return The assetPinnedAsHeadlinePositionTwoCount. + * optional double value_adjustment = 398; + * @return The valueAdjustment. */ @java.lang.Override - public long getAssetPinnedAsHeadlinePositionTwoCount() { - return assetPinnedAsHeadlinePositionTwoCount_; + public double getValueAdjustment() { + return valueAdjustment_; } /** *
-     * Number of entities in which the asset is pinned to headline 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from biddable conversions in all
+     * conversion categories.
      * 
* - * optional int64 asset_pinned_as_headline_position_two_count = 350; - * @param value The assetPinnedAsHeadlinePositionTwoCount to set. + * optional double value_adjustment = 398; + * @param value The valueAdjustment to set. * @return This builder for chaining. */ - public Builder setAssetPinnedAsHeadlinePositionTwoCount(long value) { + public Builder setValueAdjustment(double value) { - assetPinnedAsHeadlinePositionTwoCount_ = value; - bitField5_ |= 0x01000000; + valueAdjustment_ = value; + bitField6_ |= 0x00100000; onChanged(); return this; } /** *
-     * Number of entities in which the asset is pinned to headline 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from biddable conversions in all
+     * conversion categories.
      * 
* - * optional int64 asset_pinned_as_headline_position_two_count = 350; + * optional double value_adjustment = 398; * @return This builder for chaining. */ - public Builder clearAssetPinnedAsHeadlinePositionTwoCount() { - bitField5_ = (bitField5_ & ~0x01000000); - assetPinnedAsHeadlinePositionTwoCount_ = 0L; + public Builder clearValueAdjustment() { + bitField6_ = (bitField6_ & ~0x00100000); + valueAdjustment_ = 0D; onChanged(); return this; } - private long assetPinnedAsHeadlinePositionThreeCount_ ; + private double allValueAdjustment_ ; /** *
-     * Number of entities in which the asset is pinned to headline 3.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from all conversions in all conversion
+     * categories.
      * 
- * - * optional int64 asset_pinned_as_headline_position_three_count = 351; - * @return Whether the assetPinnedAsHeadlinePositionThreeCount field is set. + * + * optional double all_value_adjustment = 399; + * @return Whether the allValueAdjustment field is set. */ @java.lang.Override - public boolean hasAssetPinnedAsHeadlinePositionThreeCount() { - return ((bitField5_ & 0x02000000) != 0); + public boolean hasAllValueAdjustment() { + return ((bitField6_ & 0x00200000) != 0); } /** *
-     * Number of entities in which the asset is pinned to headline 3.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from all conversions in all conversion
+     * categories.
      * 
* - * optional int64 asset_pinned_as_headline_position_three_count = 351; - * @return The assetPinnedAsHeadlinePositionThreeCount. + * optional double all_value_adjustment = 399; + * @return The allValueAdjustment. */ @java.lang.Override - public long getAssetPinnedAsHeadlinePositionThreeCount() { - return assetPinnedAsHeadlinePositionThreeCount_; + public double getAllValueAdjustment() { + return allValueAdjustment_; } /** *
-     * Number of entities in which the asset is pinned to headline 3.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from all conversions in all conversion
+     * categories.
      * 
* - * optional int64 asset_pinned_as_headline_position_three_count = 351; - * @param value The assetPinnedAsHeadlinePositionThreeCount to set. + * optional double all_value_adjustment = 399; + * @param value The allValueAdjustment to set. * @return This builder for chaining. */ - public Builder setAssetPinnedAsHeadlinePositionThreeCount(long value) { + public Builder setAllValueAdjustment(double value) { - assetPinnedAsHeadlinePositionThreeCount_ = value; - bitField5_ |= 0x02000000; + allValueAdjustment_ = value; + bitField6_ |= 0x00200000; onChanged(); return this; } /** *
-     * Number of entities in which the asset is pinned to headline 3.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * The conversion value rule adjustment from all conversions in all conversion
+     * categories.
      * 
* - * optional int64 asset_pinned_as_headline_position_three_count = 351; + * optional double all_value_adjustment = 399; * @return This builder for chaining. */ - public Builder clearAssetPinnedAsHeadlinePositionThreeCount() { - bitField5_ = (bitField5_ & ~0x02000000); - assetPinnedAsHeadlinePositionThreeCount_ = 0L; + public Builder clearAllValueAdjustment() { + bitField6_ = (bitField6_ & ~0x00200000); + allValueAdjustment_ = 0D; onChanged(); return this; } - private long assetPinnedAsDescriptionPositionOneCount_ ; + private long clicksUniqueQueryClusters_ ; /** *
-     * Number of entities in which the asset is pinned to description 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for clicks.
      * 
* - * optional int64 asset_pinned_as_description_position_one_count = 352; - * @return Whether the assetPinnedAsDescriptionPositionOneCount field is set. + * optional int64 clicks_unique_query_clusters = 400; + * @return Whether the clicksUniqueQueryClusters field is set. */ @java.lang.Override - public boolean hasAssetPinnedAsDescriptionPositionOneCount() { - return ((bitField5_ & 0x04000000) != 0); + public boolean hasClicksUniqueQueryClusters() { + return ((bitField6_ & 0x00400000) != 0); } /** *
-     * Number of entities in which the asset is pinned to description 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for clicks.
      * 
* - * optional int64 asset_pinned_as_description_position_one_count = 352; - * @return The assetPinnedAsDescriptionPositionOneCount. + * optional int64 clicks_unique_query_clusters = 400; + * @return The clicksUniqueQueryClusters. */ @java.lang.Override - public long getAssetPinnedAsDescriptionPositionOneCount() { - return assetPinnedAsDescriptionPositionOneCount_; + public long getClicksUniqueQueryClusters() { + return clicksUniqueQueryClusters_; } /** *
-     * Number of entities in which the asset is pinned to description 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for clicks.
      * 
* - * optional int64 asset_pinned_as_description_position_one_count = 352; - * @param value The assetPinnedAsDescriptionPositionOneCount to set. + * optional int64 clicks_unique_query_clusters = 400; + * @param value The clicksUniqueQueryClusters to set. * @return This builder for chaining. */ - public Builder setAssetPinnedAsDescriptionPositionOneCount(long value) { + public Builder setClicksUniqueQueryClusters(long value) { - assetPinnedAsDescriptionPositionOneCount_ = value; - bitField5_ |= 0x04000000; + clicksUniqueQueryClusters_ = value; + bitField6_ |= 0x00400000; onChanged(); return this; } /** *
-     * Number of entities in which the asset is pinned to description 1.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for clicks.
      * 
* - * optional int64 asset_pinned_as_description_position_one_count = 352; + * optional int64 clicks_unique_query_clusters = 400; * @return This builder for chaining. */ - public Builder clearAssetPinnedAsDescriptionPositionOneCount() { - bitField5_ = (bitField5_ & ~0x04000000); - assetPinnedAsDescriptionPositionOneCount_ = 0L; + public Builder clearClicksUniqueQueryClusters() { + bitField6_ = (bitField6_ & ~0x00400000); + clicksUniqueQueryClusters_ = 0L; onChanged(); return this; } - private long assetPinnedAsDescriptionPositionTwoCount_ ; + private long conversionsUniqueQueryClusters_ ; /** *
-     * Number of entities in which the asset is pinned to description 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for conversions.
      * 
* - * optional int64 asset_pinned_as_description_position_two_count = 353; - * @return Whether the assetPinnedAsDescriptionPositionTwoCount field is set. + * optional int64 conversions_unique_query_clusters = 401; + * @return Whether the conversionsUniqueQueryClusters field is set. */ @java.lang.Override - public boolean hasAssetPinnedAsDescriptionPositionTwoCount() { - return ((bitField5_ & 0x08000000) != 0); + public boolean hasConversionsUniqueQueryClusters() { + return ((bitField6_ & 0x00800000) != 0); } /** *
-     * Number of entities in which the asset is pinned to description 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for conversions.
      * 
* - * optional int64 asset_pinned_as_description_position_two_count = 353; - * @return The assetPinnedAsDescriptionPositionTwoCount. + * optional int64 conversions_unique_query_clusters = 401; + * @return The conversionsUniqueQueryClusters. */ @java.lang.Override - public long getAssetPinnedAsDescriptionPositionTwoCount() { - return assetPinnedAsDescriptionPositionTwoCount_; + public long getConversionsUniqueQueryClusters() { + return conversionsUniqueQueryClusters_; } /** *
-     * Number of entities in which the asset is pinned to description 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for conversions.
      * 
* - * optional int64 asset_pinned_as_description_position_two_count = 353; - * @param value The assetPinnedAsDescriptionPositionTwoCount to set. + * optional int64 conversions_unique_query_clusters = 401; + * @param value The conversionsUniqueQueryClusters to set. * @return This builder for chaining. */ - public Builder setAssetPinnedAsDescriptionPositionTwoCount(long value) { + public Builder setConversionsUniqueQueryClusters(long value) { - assetPinnedAsDescriptionPositionTwoCount_ = value; - bitField5_ |= 0x08000000; + conversionsUniqueQueryClusters_ = value; + bitField6_ |= 0x00800000; onChanged(); return this; } /** *
-     * Number of entities in which the asset is pinned to description 2.
-     * This metric can only be selected with ChannelAggregateAssetView and
-     * CampaignAggregateAssetView.
-     * This metric is only supported in Search channel.
+     * Unique query intent cluster count for conversions.
      * 
* - * optional int64 asset_pinned_as_description_position_two_count = 353; + * optional int64 conversions_unique_query_clusters = 401; * @return This builder for chaining. */ - public Builder clearAssetPinnedAsDescriptionPositionTwoCount() { - bitField5_ = (bitField5_ & ~0x08000000); - assetPinnedAsDescriptionPositionTwoCount_ = 0L; + public Builder clearConversionsUniqueQueryClusters() { + bitField6_ = (bitField6_ & ~0x00800000); + conversionsUniqueQueryClusters_ = 0L; onChanged(); return this; } - private double storeVisitsLastClickModelAttributedConversions_ ; + private long impressionsUniqueQueryClusters_ ; /** *
-     * The amount of business visits attributed by the last click model.
+     * Unique query intent cluster count for impressions.
      * 
* - * optional double store_visits_last_click_model_attributed_conversions = 365; - * @return Whether the storeVisitsLastClickModelAttributedConversions field is set. + * optional int64 impressions_unique_query_clusters = 402; + * @return Whether the impressionsUniqueQueryClusters field is set. */ @java.lang.Override - public boolean hasStoreVisitsLastClickModelAttributedConversions() { - return ((bitField5_ & 0x10000000) != 0); + public boolean hasImpressionsUniqueQueryClusters() { + return ((bitField6_ & 0x01000000) != 0); } /** *
-     * The amount of business visits attributed by the last click model.
+     * Unique query intent cluster count for impressions.
      * 
* - * optional double store_visits_last_click_model_attributed_conversions = 365; - * @return The storeVisitsLastClickModelAttributedConversions. + * optional int64 impressions_unique_query_clusters = 402; + * @return The impressionsUniqueQueryClusters. */ @java.lang.Override - public double getStoreVisitsLastClickModelAttributedConversions() { - return storeVisitsLastClickModelAttributedConversions_; + public long getImpressionsUniqueQueryClusters() { + return impressionsUniqueQueryClusters_; } /** *
-     * The amount of business visits attributed by the last click model.
+     * Unique query intent cluster count for impressions.
      * 
* - * optional double store_visits_last_click_model_attributed_conversions = 365; - * @param value The storeVisitsLastClickModelAttributedConversions to set. + * optional int64 impressions_unique_query_clusters = 402; + * @param value The impressionsUniqueQueryClusters to set. * @return This builder for chaining. */ - public Builder setStoreVisitsLastClickModelAttributedConversions(double value) { + public Builder setImpressionsUniqueQueryClusters(long value) { - storeVisitsLastClickModelAttributedConversions_ = value; - bitField5_ |= 0x10000000; + impressionsUniqueQueryClusters_ = value; + bitField6_ |= 0x01000000; onChanged(); return this; } /** *
-     * The amount of business visits attributed by the last click model.
+     * Unique query intent cluster count for impressions.
      * 
* - * optional double store_visits_last_click_model_attributed_conversions = 365; + * optional int64 impressions_unique_query_clusters = 402; * @return This builder for chaining. */ - public Builder clearStoreVisitsLastClickModelAttributedConversions() { - bitField5_ = (bitField5_ & ~0x10000000); - storeVisitsLastClickModelAttributedConversions_ = 0D; + public Builder clearImpressionsUniqueQueryClusters() { + bitField6_ = (bitField6_ & ~0x01000000); + impressionsUniqueQueryClusters_ = 0L; onChanged(); return this; } - private double resultsConversionsPurchase_ ; + private long videoWatchTimeDurationMillis_ ; /** *
-     * The purchase conversion stats for the unified goals results.
+     * Total watch time duration in milliseconds for video impressions that
+     * started playing. For a small percentage of impressions, we may not be able
+     * to measure the watch time accurately. In such cases, we adjust the total
+     * time to account for any unmeasured time by applying the average watch time
+     * of impressions that were measured.
      * 
* - * optional double results_conversions_purchase = 366; - * @return Whether the resultsConversionsPurchase field is set. + * optional int64 video_watch_time_duration_millis = 403; + * @return Whether the videoWatchTimeDurationMillis field is set. */ @java.lang.Override - public boolean hasResultsConversionsPurchase() { - return ((bitField5_ & 0x20000000) != 0); + public boolean hasVideoWatchTimeDurationMillis() { + return ((bitField6_ & 0x02000000) != 0); } /** *
-     * The purchase conversion stats for the unified goals results.
+     * Total watch time duration in milliseconds for video impressions that
+     * started playing. For a small percentage of impressions, we may not be able
+     * to measure the watch time accurately. In such cases, we adjust the total
+     * time to account for any unmeasured time by applying the average watch time
+     * of impressions that were measured.
      * 
* - * optional double results_conversions_purchase = 366; - * @return The resultsConversionsPurchase. + * optional int64 video_watch_time_duration_millis = 403; + * @return The videoWatchTimeDurationMillis. */ @java.lang.Override - public double getResultsConversionsPurchase() { - return resultsConversionsPurchase_; + public long getVideoWatchTimeDurationMillis() { + return videoWatchTimeDurationMillis_; } /** *
-     * The purchase conversion stats for the unified goals results.
+     * Total watch time duration in milliseconds for video impressions that
+     * started playing. For a small percentage of impressions, we may not be able
+     * to measure the watch time accurately. In such cases, we adjust the total
+     * time to account for any unmeasured time by applying the average watch time
+     * of impressions that were measured.
      * 
* - * optional double results_conversions_purchase = 366; - * @param value The resultsConversionsPurchase to set. + * optional int64 video_watch_time_duration_millis = 403; + * @param value The videoWatchTimeDurationMillis to set. * @return This builder for chaining. */ - public Builder setResultsConversionsPurchase(double value) { + public Builder setVideoWatchTimeDurationMillis(long value) { - resultsConversionsPurchase_ = value; - bitField5_ |= 0x20000000; + videoWatchTimeDurationMillis_ = value; + bitField6_ |= 0x02000000; onChanged(); return this; } /** *
-     * The purchase conversion stats for the unified goals results.
+     * Total watch time duration in milliseconds for video impressions that
+     * started playing. For a small percentage of impressions, we may not be able
+     * to measure the watch time accurately. In such cases, we adjust the total
+     * time to account for any unmeasured time by applying the average watch time
+     * of impressions that were measured.
      * 
* - * optional double results_conversions_purchase = 366; + * optional int64 video_watch_time_duration_millis = 403; * @return This builder for chaining. */ - public Builder clearResultsConversionsPurchase() { - bitField5_ = (bitField5_ & ~0x20000000); - resultsConversionsPurchase_ = 0D; + public Builder clearVideoWatchTimeDurationMillis() { + bitField6_ = (bitField6_ & ~0x02000000); + videoWatchTimeDurationMillis_ = 0L; onChanged(); return this; } - private double videoTrueviewViewRateInFeed_ ; + private long averageVideoWatchTimeDurationMillis_ ; /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-feed formats.
+     * Average video watch time duration in milliseconds for video impressions
+     * that started playing.
      * 
* - * optional double video_trueview_view_rate_in_feed = 408; - * @return Whether the videoTrueviewViewRateInFeed field is set. + * optional int64 average_video_watch_time_duration_millis = 404; + * @return Whether the averageVideoWatchTimeDurationMillis field is set. */ @java.lang.Override - public boolean hasVideoTrueviewViewRateInFeed() { - return ((bitField5_ & 0x40000000) != 0); + public boolean hasAverageVideoWatchTimeDurationMillis() { + return ((bitField6_ & 0x04000000) != 0); } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-feed formats.
+     * Average video watch time duration in milliseconds for video impressions
+     * that started playing.
      * 
* - * optional double video_trueview_view_rate_in_feed = 408; - * @return The videoTrueviewViewRateInFeed. + * optional int64 average_video_watch_time_duration_millis = 404; + * @return The averageVideoWatchTimeDurationMillis. */ @java.lang.Override - public double getVideoTrueviewViewRateInFeed() { - return videoTrueviewViewRateInFeed_; + public long getAverageVideoWatchTimeDurationMillis() { + return averageVideoWatchTimeDurationMillis_; } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-feed formats.
+     * Average video watch time duration in milliseconds for video impressions
+     * that started playing.
      * 
* - * optional double video_trueview_view_rate_in_feed = 408; - * @param value The videoTrueviewViewRateInFeed to set. + * optional int64 average_video_watch_time_duration_millis = 404; + * @param value The averageVideoWatchTimeDurationMillis to set. * @return This builder for chaining. */ - public Builder setVideoTrueviewViewRateInFeed(double value) { + public Builder setAverageVideoWatchTimeDurationMillis(long value) { - videoTrueviewViewRateInFeed_ = value; - bitField5_ |= 0x40000000; + averageVideoWatchTimeDurationMillis_ = value; + bitField6_ |= 0x04000000; onChanged(); return this; } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-feed formats.
+     * Average video watch time duration in milliseconds for video impressions
+     * that started playing.
      * 
* - * optional double video_trueview_view_rate_in_feed = 408; + * optional int64 average_video_watch_time_duration_millis = 404; * @return This builder for chaining. */ - public Builder clearVideoTrueviewViewRateInFeed() { - bitField5_ = (bitField5_ & ~0x40000000); - videoTrueviewViewRateInFeed_ = 0D; + public Builder clearAverageVideoWatchTimeDurationMillis() { + bitField6_ = (bitField6_ & ~0x04000000); + averageVideoWatchTimeDurationMillis_ = 0L; onChanged(); return this; } - private double videoTrueviewViewRateInStream_ ; + private long svr_ ; /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-stream formats.
+     * This feature is available to allowlisted accounts only.
      * 
* - * optional double video_trueview_view_rate_in_stream = 409; - * @return Whether the videoTrueviewViewRateInStream field is set. + * optional int64 svr = 411; + * @return Whether the svr field is set. */ @java.lang.Override - public boolean hasVideoTrueviewViewRateInStream() { - return ((bitField5_ & 0x80000000) != 0); + public boolean hasSvr() { + return ((bitField6_ & 0x08000000) != 0); } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-stream formats.
+     * This feature is available to allowlisted accounts only.
      * 
* - * optional double video_trueview_view_rate_in_stream = 409; - * @return The videoTrueviewViewRateInStream. + * optional int64 svr = 411; + * @return The svr. */ @java.lang.Override - public double getVideoTrueviewViewRateInStream() { - return videoTrueviewViewRateInStream_; + public long getSvr() { + return svr_; } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-stream formats.
+     * This feature is available to allowlisted accounts only.
      * 
* - * optional double video_trueview_view_rate_in_stream = 409; - * @param value The videoTrueviewViewRateInStream to set. + * optional int64 svr = 411; + * @param value The svr to set. * @return This builder for chaining. */ - public Builder setVideoTrueviewViewRateInStream(double value) { + public Builder setSvr(long value) { - videoTrueviewViewRateInStream_ = value; - bitField5_ |= 0x80000000; + svr_ = value; + bitField6_ |= 0x08000000; onChanged(); return this; } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for in-stream formats.
+     * This feature is available to allowlisted accounts only.
      * 
* - * optional double video_trueview_view_rate_in_stream = 409; + * optional int64 svr = 411; * @return This builder for chaining. */ - public Builder clearVideoTrueviewViewRateInStream() { - bitField5_ = (bitField5_ & ~0x80000000); - videoTrueviewViewRateInStream_ = 0D; + public Builder clearSvr() { + bitField6_ = (bitField6_ & ~0x08000000); + svr_ = 0L; onChanged(); return this; } - private double videoTrueviewViewRateShorts_ ; + private long activeViewAudibilityMeasurableImpressions_ ; /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for Shorts ads.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible.
      * 
* - * optional double video_trueview_view_rate_shorts = 410; - * @return Whether the videoTrueviewViewRateShorts field is set. + * optional int64 active_view_audibility_measurable_impressions = 412; + * @return Whether the activeViewAudibilityMeasurableImpressions field is set. */ @java.lang.Override - public boolean hasVideoTrueviewViewRateShorts() { - return ((bitField6_ & 0x00000001) != 0); + public boolean hasActiveViewAudibilityMeasurableImpressions() { + return ((bitField6_ & 0x10000000) != 0); } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for Shorts ads.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible.
      * 
* - * optional double video_trueview_view_rate_shorts = 410; - * @return The videoTrueviewViewRateShorts. + * optional int64 active_view_audibility_measurable_impressions = 412; + * @return The activeViewAudibilityMeasurableImpressions. */ @java.lang.Override - public double getVideoTrueviewViewRateShorts() { - return videoTrueviewViewRateShorts_; + public long getActiveViewAudibilityMeasurableImpressions() { + return activeViewAudibilityMeasurableImpressions_; } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for Shorts ads.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible.
      * 
* - * optional double video_trueview_view_rate_shorts = 410; - * @param value The videoTrueviewViewRateShorts to set. + * optional int64 active_view_audibility_measurable_impressions = 412; + * @param value The activeViewAudibilityMeasurableImpressions to set. * @return This builder for chaining. */ - public Builder setVideoTrueviewViewRateShorts(double value) { + public Builder setActiveViewAudibilityMeasurableImpressions(long value) { - videoTrueviewViewRateShorts_ = value; - bitField6_ |= 0x00000001; + activeViewAudibilityMeasurableImpressions_ = value; + bitField6_ |= 0x10000000; onChanged(); return this; } /** *
-     * The number of TrueView views divided by number of impressions that can
-     * potentially lead to TrueView views for Shorts ads.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible.
      * 
* - * optional double video_trueview_view_rate_shorts = 410; + * optional int64 active_view_audibility_measurable_impressions = 412; * @return This builder for chaining. */ - public Builder clearVideoTrueviewViewRateShorts() { - bitField6_ = (bitField6_ & ~0x00000001); - videoTrueviewViewRateShorts_ = 0D; + public Builder clearActiveViewAudibilityMeasurableImpressions() { + bitField6_ = (bitField6_ & ~0x10000000); + activeViewAudibilityMeasurableImpressions_ = 0L; onChanged(); return this; } - private long coviewedImpressions_ ; + private double activeViewAudibilityMeasurableImpressionsRate_ ; /** *
-     * All co-viewed impressions represent the total number of people who saw your
-     * ad. This includes people who are signed into their Google Account, as well
-     * as other people who are watching the same ad on a connected TV. This metric
-     * is only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * all coviewed impressions.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible, divided by the total number of impressions with Active View audio
+     * enabled.
      * 
* - * optional int64 coviewed_impressions = 380; - * @return Whether the coviewedImpressions field is set. + * optional double active_view_audibility_measurable_impressions_rate = 413; + * @return Whether the activeViewAudibilityMeasurableImpressionsRate field is set. */ @java.lang.Override - public boolean hasCoviewedImpressions() { - return ((bitField6_ & 0x00000002) != 0); + public boolean hasActiveViewAudibilityMeasurableImpressionsRate() { + return ((bitField6_ & 0x20000000) != 0); } /** *
-     * All co-viewed impressions represent the total number of people who saw your
-     * ad. This includes people who are signed into their Google Account, as well
-     * as other people who are watching the same ad on a connected TV. This metric
-     * is only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * all coviewed impressions.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible, divided by the total number of impressions with Active View audio
+     * enabled.
      * 
* - * optional int64 coviewed_impressions = 380; - * @return The coviewedImpressions. + * optional double active_view_audibility_measurable_impressions_rate = 413; + * @return The activeViewAudibilityMeasurableImpressionsRate. */ @java.lang.Override - public long getCoviewedImpressions() { - return coviewedImpressions_; + public double getActiveViewAudibilityMeasurableImpressionsRate() { + return activeViewAudibilityMeasurableImpressionsRate_; } /** *
-     * All co-viewed impressions represent the total number of people who saw your
-     * ad. This includes people who are signed into their Google Account, as well
-     * as other people who are watching the same ad on a connected TV. This metric
-     * is only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * all coviewed impressions.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible, divided by the total number of impressions with Active View audio
+     * enabled.
      * 
* - * optional int64 coviewed_impressions = 380; - * @param value The coviewedImpressions to set. + * optional double active_view_audibility_measurable_impressions_rate = 413; + * @param value The activeViewAudibilityMeasurableImpressionsRate to set. * @return This builder for chaining. */ - public Builder setCoviewedImpressions(long value) { + public Builder setActiveViewAudibilityMeasurableImpressionsRate(double value) { - coviewedImpressions_ = value; - bitField6_ |= 0x00000002; + activeViewAudibilityMeasurableImpressionsRate_ = value; + bitField6_ |= 0x20000000; onChanged(); return this; } /** *
-     * All co-viewed impressions represent the total number of people who saw your
-     * ad. This includes people who are signed into their Google Account, as well
-     * as other people who are watching the same ad on a connected TV. This metric
-     * is only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * all coviewed impressions.
+     * The number of impressions for which Active View could measure if the ad was
+     * audible, divided by the total number of impressions with Active View audio
+     * enabled.
      * 
* - * optional int64 coviewed_impressions = 380; + * optional double active_view_audibility_measurable_impressions_rate = 413; * @return This builder for chaining. */ - public Builder clearCoviewedImpressions() { - bitField6_ = (bitField6_ & ~0x00000002); - coviewedImpressions_ = 0L; + public Builder clearActiveViewAudibilityMeasurableImpressionsRate() { + bitField6_ = (bitField6_ & ~0x20000000); + activeViewAudibilityMeasurableImpressionsRate_ = 0D; onChanged(); return this; } - private long primaryImpressions_ ; + private double activeViewAudibilityInvalidMeasurableImpressionsRate_ ; /** *
-     * Primary impression is counted each time your ad is served. This metric is
-     * only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * primary impressions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the
+     * total number of impressions measurable for audibility.
      * 
* - * optional int64 primary_impressions = 381; - * @return Whether the primaryImpressions field is set. + * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; + * @return Whether the activeViewAudibilityInvalidMeasurableImpressionsRate field is set. */ @java.lang.Override - public boolean hasPrimaryImpressions() { - return ((bitField6_ & 0x00000004) != 0); + public boolean hasActiveViewAudibilityInvalidMeasurableImpressionsRate() { + return ((bitField6_ & 0x40000000) != 0); } /** *
-     * Primary impression is counted each time your ad is served. This metric is
-     * only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * primary impressions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the
+     * total number of impressions measurable for audibility.
      * 
* - * optional int64 primary_impressions = 381; - * @return The primaryImpressions. + * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; + * @return The activeViewAudibilityInvalidMeasurableImpressionsRate. */ @java.lang.Override - public long getPrimaryImpressions() { - return primaryImpressions_; + public double getActiveViewAudibilityInvalidMeasurableImpressionsRate() { + return activeViewAudibilityInvalidMeasurableImpressionsRate_; } /** *
-     * Primary impression is counted each time your ad is served. This metric is
-     * only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * primary impressions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the
+     * total number of impressions measurable for audibility.
      * 
* - * optional int64 primary_impressions = 381; - * @param value The primaryImpressions to set. + * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; + * @param value The activeViewAudibilityInvalidMeasurableImpressionsRate to set. * @return This builder for chaining. */ - public Builder setPrimaryImpressions(long value) { + public Builder setActiveViewAudibilityInvalidMeasurableImpressionsRate(double value) { - primaryImpressions_ = value; - bitField6_ |= 0x00000004; + activeViewAudibilityInvalidMeasurableImpressionsRate_ = value; + bitField6_ |= 0x40000000; onChanged(); return this; } /** *
-     * Primary impression is counted each time your ad is served. This metric is
-     * only available for the Campaign resource with adjusted_age_range and
-     * adjusted_gender segments. These segmentations are mandatory to get the
-     * primary impressions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the
+     * total number of impressions measurable for audibility.
      * 
* - * optional int64 primary_impressions = 381; + * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; * @return This builder for chaining. */ - public Builder clearPrimaryImpressions() { - bitField6_ = (bitField6_ & ~0x00000004); - primaryImpressions_ = 0L; + public Builder clearActiveViewAudibilityInvalidMeasurableImpressionsRate() { + bitField6_ = (bitField6_ & ~0x40000000); + activeViewAudibilityInvalidMeasurableImpressionsRate_ = 0D; onChanged(); return this; } - private double platformComparableConversionsFromInteractionsRate_ ; + private double activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ ; /** *
-     * Platform comparable 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 for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the total
+     * number of impressions measurable for audibility. Only includes GIVT
+     * (general invalid traffic) impressions.
      * 
* - * optional double platform_comparable_conversions_from_interactions_rate = 382; - * @return Whether the platformComparableConversionsFromInteractionsRate field is set. + * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; + * @return Whether the activeViewAudibilityInvalidGivtMeasurableImpressionsRate field is set. */ @java.lang.Override - public boolean hasPlatformComparableConversionsFromInteractionsRate() { - return ((bitField6_ & 0x00000008) != 0); + public boolean hasActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() { + return ((bitField6_ & 0x80000000) != 0); } /** *
-     * Platform comparable 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 for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the total
+     * number of impressions measurable for audibility. Only includes GIVT
+     * (general invalid traffic) impressions.
      * 
* - * optional double platform_comparable_conversions_from_interactions_rate = 382; - * @return The platformComparableConversionsFromInteractionsRate. + * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; + * @return The activeViewAudibilityInvalidGivtMeasurableImpressionsRate. */ @java.lang.Override - public double getPlatformComparableConversionsFromInteractionsRate() { - return platformComparableConversionsFromInteractionsRate_; + public double getActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() { + return activeViewAudibilityInvalidGivtMeasurableImpressionsRate_; } /** *
-     * Platform comparable 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 for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the total
+     * number of impressions measurable for audibility. Only includes GIVT
+     * (general invalid traffic) impressions.
      * 
* - * optional double platform_comparable_conversions_from_interactions_rate = 382; - * @param value The platformComparableConversionsFromInteractionsRate to set. + * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; + * @param value The activeViewAudibilityInvalidGivtMeasurableImpressionsRate to set. * @return This builder for chaining. */ - public Builder setPlatformComparableConversionsFromInteractionsRate(double value) { + public Builder setActiveViewAudibilityInvalidGivtMeasurableImpressionsRate(double value) { - platformComparableConversionsFromInteractionsRate_ = value; - bitField6_ |= 0x00000008; + activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ = value; + bitField6_ |= 0x80000000; onChanged(); return this; } /** *
-     * Platform comparable 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 for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions for which Active View could measure audibility,
+     * but that were filtered out by traffic quality filters, divided by the total
+     * number of impressions measurable for audibility. Only includes GIVT
+     * (general invalid traffic) impressions.
      * 
* - * optional double platform_comparable_conversions_from_interactions_rate = 382; + * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; * @return This builder for chaining. */ - public Builder clearPlatformComparableConversionsFromInteractionsRate() { - bitField6_ = (bitField6_ & ~0x00000008); - platformComparableConversionsFromInteractionsRate_ = 0D; + public Builder clearActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() { + bitField6_ = (bitField6_ & ~0x80000000); + activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ = 0D; onChanged(); return this; } - private double platformComparableConversions_ ; + private long activeViewAudibleImpressions_ ; /** *
-     * The number of platform comparable conversions. This only includes
-     * conversion actions for which include_in_conversions_metric attribute is set
-     * to true. If you use conversion-based bidding, your bid strategies will
-     * optimize for these conversions.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback.
      * 
* - * optional double platform_comparable_conversions = 383; - * @return Whether the platformComparableConversions field is set. + * optional int64 active_view_audible_impressions = 416; + * @return Whether the activeViewAudibleImpressions field is set. */ @java.lang.Override - public boolean hasPlatformComparableConversions() { - return ((bitField6_ & 0x00000010) != 0); + public boolean hasActiveViewAudibleImpressions() { + return ((bitField7_ & 0x00000001) != 0); } /** *
-     * The number of platform comparable conversions. This only includes
-     * conversion actions for which include_in_conversions_metric attribute is set
-     * to true. If you use conversion-based bidding, your bid strategies will
-     * optimize for these conversions.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback.
      * 
* - * optional double platform_comparable_conversions = 383; - * @return The platformComparableConversions. + * optional int64 active_view_audible_impressions = 416; + * @return The activeViewAudibleImpressions. */ @java.lang.Override - public double getPlatformComparableConversions() { - return platformComparableConversions_; + public long getActiveViewAudibleImpressions() { + return activeViewAudibleImpressions_; } /** *
-     * The number of platform comparable conversions. This only includes
-     * conversion actions for which include_in_conversions_metric attribute is set
-     * to true. If you use conversion-based bidding, your bid strategies will
-     * optimize for these conversions.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback.
      * 
* - * optional double platform_comparable_conversions = 383; - * @param value The platformComparableConversions to set. + * optional int64 active_view_audible_impressions = 416; + * @param value The activeViewAudibleImpressions to set. * @return This builder for chaining. */ - public Builder setPlatformComparableConversions(double value) { + public Builder setActiveViewAudibleImpressions(long value) { - platformComparableConversions_ = value; - bitField6_ |= 0x00000010; + activeViewAudibleImpressions_ = value; + bitField7_ |= 0x00000001; onChanged(); return this; } /** *
-     * The number of platform comparable conversions. This only includes
-     * conversion actions for which include_in_conversions_metric attribute is set
-     * to true. If you use conversion-based bidding, your bid strategies will
-     * optimize for these conversions.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback.
      * 
* - * optional double platform_comparable_conversions = 383; + * optional int64 active_view_audible_impressions = 416; * @return This builder for chaining. */ - public Builder clearPlatformComparableConversions() { - bitField6_ = (bitField6_ & ~0x00000010); - platformComparableConversions_ = 0D; + public Builder clearActiveViewAudibleImpressions() { + bitField7_ = (bitField7_ & ~0x00000001); + activeViewAudibleImpressions_ = 0L; onChanged(); return this; } - private double platformComparableConversionsValue_ ; + private double activeViewAudibleImpressionsRate_ ; /** *
-     * The value of platform comparable 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.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback, divided by the total number of impressions
+     * measurable for audibility.
      * 
* - * optional double platform_comparable_conversions_value = 384; - * @return Whether the platformComparableConversionsValue field is set. + * optional double active_view_audible_impressions_rate = 417; + * @return Whether the activeViewAudibleImpressionsRate field is set. */ @java.lang.Override - public boolean hasPlatformComparableConversionsValue() { - return ((bitField6_ & 0x00000020) != 0); + public boolean hasActiveViewAudibleImpressionsRate() { + return ((bitField7_ & 0x00000002) != 0); } /** *
-     * The value of platform comparable 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.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback, divided by the total number of impressions
+     * measurable for audibility.
      * 
* - * optional double platform_comparable_conversions_value = 384; - * @return The platformComparableConversionsValue. + * optional double active_view_audible_impressions_rate = 417; + * @return The activeViewAudibleImpressionsRate. */ @java.lang.Override - public double getPlatformComparableConversionsValue() { - return platformComparableConversionsValue_; + public double getActiveViewAudibleImpressionsRate() { + return activeViewAudibleImpressionsRate_; } /** *
-     * The value of platform comparable 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.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback, divided by the total number of impressions
+     * measurable for audibility.
      * 
* - * optional double platform_comparable_conversions_value = 384; - * @param value The platformComparableConversionsValue to set. + * optional double active_view_audible_impressions_rate = 417; + * @param value The activeViewAudibleImpressionsRate to set. * @return This builder for chaining. */ - public Builder setPlatformComparableConversionsValue(double value) { + public Builder setActiveViewAudibleImpressionsRate(double value) { - platformComparableConversionsValue_ = value; - bitField6_ |= 0x00000020; + activeViewAudibleImpressionsRate_ = value; + bitField7_ |= 0x00000002; onChanged(); return this; } /** *
-     * The value of platform comparable 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.
+     * The number of impressions that were audible (volume > 0%) at any point
+     * during the ad playback, divided by the total number of impressions
+     * measurable for audibility.
      * 
* - * optional double platform_comparable_conversions_value = 384; + * optional double active_view_audible_impressions_rate = 417; * @return This builder for chaining. */ - public Builder clearPlatformComparableConversionsValue() { - bitField6_ = (bitField6_ & ~0x00000020); - platformComparableConversionsValue_ = 0D; + public Builder clearActiveViewAudibleImpressionsRate() { + bitField7_ = (bitField7_ & ~0x00000002); + activeViewAudibleImpressionsRate_ = 0D; onChanged(); return this; } - private double platformComparableConversionsValuePerCost_ ; + private long activeViewAudibleTwoSecondsImpressions_ ; /** *
-     * The value of conversions divided by the cost of ad interactions. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_per_cost = 385; - * @return Whether the platformComparableConversionsValuePerCost field is set. + * optional int64 active_view_audible_two_seconds_impressions = 418; + * @return Whether the activeViewAudibleTwoSecondsImpressions field is set. */ @java.lang.Override - public boolean hasPlatformComparableConversionsValuePerCost() { - return ((bitField6_ & 0x00000040) != 0); + public boolean hasActiveViewAudibleTwoSecondsImpressions() { + return ((bitField7_ & 0x00000004) != 0); } /** *
-     * The value of conversions divided by the cost of ad interactions. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_per_cost = 385; - * @return The platformComparableConversionsValuePerCost. + * optional int64 active_view_audible_two_seconds_impressions = 418; + * @return The activeViewAudibleTwoSecondsImpressions. */ @java.lang.Override - public double getPlatformComparableConversionsValuePerCost() { - return platformComparableConversionsValuePerCost_; + public long getActiveViewAudibleTwoSecondsImpressions() { + return activeViewAudibleTwoSecondsImpressions_; } /** *
-     * The value of conversions divided by the cost of ad interactions. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_per_cost = 385; - * @param value The platformComparableConversionsValuePerCost to set. + * optional int64 active_view_audible_two_seconds_impressions = 418; + * @param value The activeViewAudibleTwoSecondsImpressions to set. * @return This builder for chaining. */ - public Builder setPlatformComparableConversionsValuePerCost(double value) { + public Builder setActiveViewAudibleTwoSecondsImpressions(long value) { - platformComparableConversionsValuePerCost_ = value; - bitField6_ |= 0x00000040; + activeViewAudibleTwoSecondsImpressions_ = value; + bitField7_ |= 0x00000004; onChanged(); return this; } /** *
-     * The value of conversions divided by the cost of ad interactions. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_per_cost = 385; + * optional int64 active_view_audible_two_seconds_impressions = 418; * @return This builder for chaining. */ - public Builder clearPlatformComparableConversionsValuePerCost() { - bitField6_ = (bitField6_ & ~0x00000040); - platformComparableConversionsValuePerCost_ = 0D; + public Builder clearActiveViewAudibleTwoSecondsImpressions() { + bitField7_ = (bitField7_ & ~0x00000004); + activeViewAudibleTwoSecondsImpressions_ = 0L; onChanged(); return this; } - private double platformComparableConversionsByConversionDate_ ; + private double activeViewAudibleTwoSecondsImpressionsRate_ ; /** *
-     * The number of platform comparable conversions. When this metric is
-     * segmented by date, the values in the date segment represent the conversion
-     * date. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_by_conversion_date = 386; - * @return Whether the platformComparableConversionsByConversionDate field is set. + * optional double active_view_audible_two_seconds_impressions_rate = 419; + * @return Whether the activeViewAudibleTwoSecondsImpressionsRate field is set. */ @java.lang.Override - public boolean hasPlatformComparableConversionsByConversionDate() { - return ((bitField6_ & 0x00000080) != 0); + public boolean hasActiveViewAudibleTwoSecondsImpressionsRate() { + return ((bitField7_ & 0x00000008) != 0); } /** *
-     * The number of platform comparable conversions. When this metric is
-     * segmented by date, the values in the date segment represent the conversion
-     * date. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_by_conversion_date = 386; - * @return The platformComparableConversionsByConversionDate. + * optional double active_view_audible_two_seconds_impressions_rate = 419; + * @return The activeViewAudibleTwoSecondsImpressionsRate. */ @java.lang.Override - public double getPlatformComparableConversionsByConversionDate() { - return platformComparableConversionsByConversionDate_; + public double getActiveViewAudibleTwoSecondsImpressionsRate() { + return activeViewAudibleTwoSecondsImpressionsRate_; } /** *
-     * The number of platform comparable conversions. When this metric is
-     * segmented by date, the values in the date segment represent the conversion
-     * date. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_by_conversion_date = 386; - * @param value The platformComparableConversionsByConversionDate to set. + * optional double active_view_audible_two_seconds_impressions_rate = 419; + * @param value The activeViewAudibleTwoSecondsImpressionsRate to set. * @return This builder for chaining. */ - public Builder setPlatformComparableConversionsByConversionDate(double value) { + public Builder setActiveViewAudibleTwoSecondsImpressionsRate(double value) { - platformComparableConversionsByConversionDate_ = value; - bitField6_ |= 0x00000080; + activeViewAudibleTwoSecondsImpressionsRate_ = value; + bitField7_ |= 0x00000008; onChanged(); return this; } /** *
-     * The number of platform comparable conversions. When this metric is
-     * segmented by date, the values in the date segment represent the conversion
-     * date. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 2 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_by_conversion_date = 386; + * optional double active_view_audible_two_seconds_impressions_rate = 419; * @return This builder for chaining. */ - public Builder clearPlatformComparableConversionsByConversionDate() { - bitField6_ = (bitField6_ & ~0x00000080); - platformComparableConversionsByConversionDate_ = 0D; + public Builder clearActiveViewAudibleTwoSecondsImpressionsRate() { + bitField7_ = (bitField7_ & ~0x00000008); + activeViewAudibleTwoSecondsImpressionsRate_ = 0D; onChanged(); return this; } - private double platformComparableConversionsValueByConversionDate_ ; + private long activeViewAudibleThirtySecondsImpressions_ ; /** *
-     * The value of platform comparable conversions. When this metric is segmented
-     * by date, the values in the date segment represent the conversion date. This
-     * only includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_by_conversion_date = 387; - * @return Whether the platformComparableConversionsValueByConversionDate field is set. + * optional int64 active_view_audible_thirty_seconds_impressions = 420; + * @return Whether the activeViewAudibleThirtySecondsImpressions field is set. */ @java.lang.Override - public boolean hasPlatformComparableConversionsValueByConversionDate() { - return ((bitField6_ & 0x00000100) != 0); + public boolean hasActiveViewAudibleThirtySecondsImpressions() { + return ((bitField7_ & 0x00000010) != 0); } /** *
-     * The value of platform comparable conversions. When this metric is segmented
-     * by date, the values in the date segment represent the conversion date. This
-     * only includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_by_conversion_date = 387; - * @return The platformComparableConversionsValueByConversionDate. + * optional int64 active_view_audible_thirty_seconds_impressions = 420; + * @return The activeViewAudibleThirtySecondsImpressions. */ @java.lang.Override - public double getPlatformComparableConversionsValueByConversionDate() { - return platformComparableConversionsValueByConversionDate_; + public long getActiveViewAudibleThirtySecondsImpressions() { + return activeViewAudibleThirtySecondsImpressions_; } /** *
-     * The value of platform comparable conversions. When this metric is segmented
-     * by date, the values in the date segment represent the conversion date. This
-     * only includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_by_conversion_date = 387; - * @param value The platformComparableConversionsValueByConversionDate to set. + * optional int64 active_view_audible_thirty_seconds_impressions = 420; + * @param value The activeViewAudibleThirtySecondsImpressions to set. * @return This builder for chaining. */ - public Builder setPlatformComparableConversionsValueByConversionDate(double value) { + public Builder setActiveViewAudibleThirtySecondsImpressions(long value) { - platformComparableConversionsValueByConversionDate_ = value; - bitField6_ |= 0x00000100; + activeViewAudibleThirtySecondsImpressions_ = value; + bitField7_ |= 0x00000010; onChanged(); return this; } /** *
-     * The value of platform comparable conversions. When this metric is segmented
-     * by date, the values in the date segment represent the conversion date. This
-     * only includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative).
      * 
* - * optional double platform_comparable_conversions_value_by_conversion_date = 387; + * optional int64 active_view_audible_thirty_seconds_impressions = 420; * @return This builder for chaining. */ - public Builder clearPlatformComparableConversionsValueByConversionDate() { - bitField6_ = (bitField6_ & ~0x00000100); - platformComparableConversionsValueByConversionDate_ = 0D; + public Builder clearActiveViewAudibleThirtySecondsImpressions() { + bitField7_ = (bitField7_ & ~0x00000010); + activeViewAudibleThirtySecondsImpressions_ = 0L; onChanged(); return this; } - private double platformComparableConversionsFromInteractionsValuePerInteraction_ ; + private double activeViewAudibleThirtySecondsImpressionsRate_ ; /** *
-     * The value of platform comparable conversions from interactions divided by
-     * the number of ad interactions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; - * @return Whether the platformComparableConversionsFromInteractionsValuePerInteraction field is set. + * optional double active_view_audible_thirty_seconds_impressions_rate = 421; + * @return Whether the activeViewAudibleThirtySecondsImpressionsRate field is set. */ @java.lang.Override - public boolean hasPlatformComparableConversionsFromInteractionsValuePerInteraction() { - return ((bitField6_ & 0x00000200) != 0); + public boolean hasActiveViewAudibleThirtySecondsImpressionsRate() { + return ((bitField7_ & 0x00000020) != 0); } /** *
-     * The value of platform comparable conversions from interactions divided by
-     * the number of ad interactions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; - * @return The platformComparableConversionsFromInteractionsValuePerInteraction. + * optional double active_view_audible_thirty_seconds_impressions_rate = 421; + * @return The activeViewAudibleThirtySecondsImpressionsRate. */ @java.lang.Override - public double getPlatformComparableConversionsFromInteractionsValuePerInteraction() { - return platformComparableConversionsFromInteractionsValuePerInteraction_; + public double getActiveViewAudibleThirtySecondsImpressionsRate() { + return activeViewAudibleThirtySecondsImpressionsRate_; } /** *
-     * The value of platform comparable conversions from interactions divided by
-     * the number of ad interactions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; - * @param value The platformComparableConversionsFromInteractionsValuePerInteraction to set. + * optional double active_view_audible_thirty_seconds_impressions_rate = 421; + * @param value The activeViewAudibleThirtySecondsImpressionsRate to set. * @return This builder for chaining. */ - public Builder setPlatformComparableConversionsFromInteractionsValuePerInteraction(double value) { + public Builder setActiveViewAudibleThirtySecondsImpressionsRate(double value) { - platformComparableConversionsFromInteractionsValuePerInteraction_ = value; - bitField6_ |= 0x00000200; + activeViewAudibleThirtySecondsImpressionsRate_ = value; + bitField7_ |= 0x00000020; onChanged(); return this; } /** *
-     * The value of platform comparable conversions from interactions divided by
-     * the number of ad interactions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible for at least 30 seconds
+     * (cumulative), divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double platform_comparable_conversions_from_interactions_value_per_interaction = 388; + * optional double active_view_audible_thirty_seconds_impressions_rate = 421; * @return This builder for chaining. */ - public Builder clearPlatformComparableConversionsFromInteractionsValuePerInteraction() { - bitField6_ = (bitField6_ & ~0x00000200); - platformComparableConversionsFromInteractionsValuePerInteraction_ = 0D; + public Builder clearActiveViewAudibleThirtySecondsImpressionsRate() { + bitField7_ = (bitField7_ & ~0x00000020); + activeViewAudibleThirtySecondsImpressionsRate_ = 0D; onChanged(); return this; } - - private double costPerPlatformComparableConversion_ ; - /** - *
-     * The cost of ad interactions divided by the number of platform comparable
-     * conversions. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+
+    private double activeViewAudibleQuartileP25Rate_ ;
+    /**
+     * 
+     * The number of impressions that were audible at the first quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_per_platform_comparable_conversion = 389; - * @return Whether the costPerPlatformComparableConversion field is set. + * optional double active_view_audible_quartile_p25_rate = 422; + * @return Whether the activeViewAudibleQuartileP25Rate field is set. */ @java.lang.Override - public boolean hasCostPerPlatformComparableConversion() { - return ((bitField6_ & 0x00000400) != 0); + public boolean hasActiveViewAudibleQuartileP25Rate() { + return ((bitField7_ & 0x00000040) != 0); } /** *
-     * The cost of ad interactions divided by the number of platform comparable
-     * conversions. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible at the first quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_per_platform_comparable_conversion = 389; - * @return The costPerPlatformComparableConversion. + * optional double active_view_audible_quartile_p25_rate = 422; + * @return The activeViewAudibleQuartileP25Rate. */ @java.lang.Override - public double getCostPerPlatformComparableConversion() { - return costPerPlatformComparableConversion_; + public double getActiveViewAudibleQuartileP25Rate() { + return activeViewAudibleQuartileP25Rate_; } /** *
-     * The cost of ad interactions divided by the number of platform comparable
-     * conversions. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible at the first quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_per_platform_comparable_conversion = 389; - * @param value The costPerPlatformComparableConversion to set. + * optional double active_view_audible_quartile_p25_rate = 422; + * @param value The activeViewAudibleQuartileP25Rate to set. * @return This builder for chaining. */ - public Builder setCostPerPlatformComparableConversion(double value) { + public Builder setActiveViewAudibleQuartileP25Rate(double value) { - costPerPlatformComparableConversion_ = value; - bitField6_ |= 0x00000400; + activeViewAudibleQuartileP25Rate_ = value; + bitField7_ |= 0x00000040; onChanged(); return this; } /** *
-     * The cost of ad interactions divided by the number of platform comparable
-     * conversions. This only includes conversion actions for which
-     * include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible at the first quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_per_platform_comparable_conversion = 389; + * optional double active_view_audible_quartile_p25_rate = 422; * @return This builder for chaining. */ - public Builder clearCostPerPlatformComparableConversion() { - bitField6_ = (bitField6_ & ~0x00000400); - costPerPlatformComparableConversion_ = 0D; + public Builder clearActiveViewAudibleQuartileP25Rate() { + bitField7_ = (bitField7_ & ~0x00000040); + activeViewAudibleQuartileP25Rate_ = 0D; onChanged(); return this; } - private double valuePerPlatformComparableConversion_ ; + private double activeViewAudibleQuartileP50Rate_ ; /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible at the second quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversion = 390; - * @return Whether the valuePerPlatformComparableConversion field is set. + * optional double active_view_audible_quartile_p50_rate = 423; + * @return Whether the activeViewAudibleQuartileP50Rate field is set. */ @java.lang.Override - public boolean hasValuePerPlatformComparableConversion() { - return ((bitField6_ & 0x00000800) != 0); + public boolean hasActiveViewAudibleQuartileP50Rate() { + return ((bitField7_ & 0x00000080) != 0); } /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible at the second quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversion = 390; - * @return The valuePerPlatformComparableConversion. + * optional double active_view_audible_quartile_p50_rate = 423; + * @return The activeViewAudibleQuartileP50Rate. */ @java.lang.Override - public double getValuePerPlatformComparableConversion() { - return valuePerPlatformComparableConversion_; + public double getActiveViewAudibleQuartileP50Rate() { + return activeViewAudibleQuartileP50Rate_; } /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible at the second quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversion = 390; - * @param value The valuePerPlatformComparableConversion to set. + * optional double active_view_audible_quartile_p50_rate = 423; + * @param value The activeViewAudibleQuartileP50Rate to set. * @return This builder for chaining. */ - public Builder setValuePerPlatformComparableConversion(double value) { + public Builder setActiveViewAudibleQuartileP50Rate(double value) { - valuePerPlatformComparableConversion_ = value; - bitField6_ |= 0x00000800; + activeViewAudibleQuartileP50Rate_ = value; + bitField7_ |= 0x00000080; onChanged(); return this; } /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. This only includes conversion actions for
-     * which include_in_conversions_metric attribute is set to true. If you use
-     * conversion-based bidding, your bid strategies will optimize for these
-     * conversions.
+     * The number of impressions that were audible at the second quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversion = 390; + * optional double active_view_audible_quartile_p50_rate = 423; * @return This builder for chaining. */ - public Builder clearValuePerPlatformComparableConversion() { - bitField6_ = (bitField6_ & ~0x00000800); - valuePerPlatformComparableConversion_ = 0D; + public Builder clearActiveViewAudibleQuartileP50Rate() { + bitField7_ = (bitField7_ & ~0x00000080); + activeViewAudibleQuartileP50Rate_ = 0D; onChanged(); return this; } - private double valuePerPlatformComparableConversionsByConversionDate_ ; + private double activeViewAudibleQuartileP75Rate_ ; /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. When this metric is segmented by date, the
-     * values in the date segment represent the conversion date. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible at the third quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; - * @return Whether the valuePerPlatformComparableConversionsByConversionDate field is set. + * optional double active_view_audible_quartile_p75_rate = 424; + * @return Whether the activeViewAudibleQuartileP75Rate field is set. */ @java.lang.Override - public boolean hasValuePerPlatformComparableConversionsByConversionDate() { - return ((bitField6_ & 0x00001000) != 0); + public boolean hasActiveViewAudibleQuartileP75Rate() { + return ((bitField7_ & 0x00000100) != 0); } /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. When this metric is segmented by date, the
-     * values in the date segment represent the conversion date. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible at the third quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; - * @return The valuePerPlatformComparableConversionsByConversionDate. + * optional double active_view_audible_quartile_p75_rate = 424; + * @return The activeViewAudibleQuartileP75Rate. */ @java.lang.Override - public double getValuePerPlatformComparableConversionsByConversionDate() { - return valuePerPlatformComparableConversionsByConversionDate_; + public double getActiveViewAudibleQuartileP75Rate() { + return activeViewAudibleQuartileP75Rate_; } /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. When this metric is segmented by date, the
-     * values in the date segment represent the conversion date. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible at the third quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; - * @param value The valuePerPlatformComparableConversionsByConversionDate to set. + * optional double active_view_audible_quartile_p75_rate = 424; + * @param value The activeViewAudibleQuartileP75Rate to set. * @return This builder for chaining. */ - public Builder setValuePerPlatformComparableConversionsByConversionDate(double value) { + public Builder setActiveViewAudibleQuartileP75Rate(double value) { - valuePerPlatformComparableConversionsByConversionDate_ = value; - bitField6_ |= 0x00001000; + activeViewAudibleQuartileP75Rate_ = value; + bitField7_ |= 0x00000100; onChanged(); return this; } /** *
-     * The value of platform comparable conversions divided by the number of
-     * platform comparable conversions. When this metric is segmented by date, the
-     * values in the date segment represent the conversion date. This only
-     * includes conversion actions for which include_in_conversions_metric
-     * attribute is set to true. If you use conversion-based bidding, your bid
-     * strategies will optimize for these conversions.
+     * The number of impressions that were audible at the third quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double value_per_platform_comparable_conversions_by_conversion_date = 391; + * optional double active_view_audible_quartile_p75_rate = 424; * @return This builder for chaining. */ - public Builder clearValuePerPlatformComparableConversionsByConversionDate() { - bitField6_ = (bitField6_ & ~0x00001000); - valuePerPlatformComparableConversionsByConversionDate_ = 0D; + public Builder clearActiveViewAudibleQuartileP75Rate() { + bitField7_ = (bitField7_ & ~0x00000100); + activeViewAudibleQuartileP75Rate_ = 0D; onChanged(); return this; } - private double costConvertedCurrencyPerPlatformComparableConversion_ ; + private double activeViewAudibleQuartileP100Rate_ ; /** *
-     * The cost of the platform comparable conversion in the currency of the
-     * authorized customer.
+     * The number of impressions that were audible at the fourth quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_converted_currency_per_platform_comparable_conversion = 392; - * @return Whether the costConvertedCurrencyPerPlatformComparableConversion field is set. + * optional double active_view_audible_quartile_p100_rate = 425; + * @return Whether the activeViewAudibleQuartileP100Rate field is set. */ @java.lang.Override - public boolean hasCostConvertedCurrencyPerPlatformComparableConversion() { - return ((bitField6_ & 0x00002000) != 0); + public boolean hasActiveViewAudibleQuartileP100Rate() { + return ((bitField7_ & 0x00000200) != 0); } /** *
-     * The cost of the platform comparable conversion in the currency of the
-     * authorized customer.
+     * The number of impressions that were audible at the fourth quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_converted_currency_per_platform_comparable_conversion = 392; - * @return The costConvertedCurrencyPerPlatformComparableConversion. + * optional double active_view_audible_quartile_p100_rate = 425; + * @return The activeViewAudibleQuartileP100Rate. */ @java.lang.Override - public double getCostConvertedCurrencyPerPlatformComparableConversion() { - return costConvertedCurrencyPerPlatformComparableConversion_; + public double getActiveViewAudibleQuartileP100Rate() { + return activeViewAudibleQuartileP100Rate_; } /** *
-     * The cost of the platform comparable conversion in the currency of the
-     * authorized customer.
+     * The number of impressions that were audible at the fourth quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_converted_currency_per_platform_comparable_conversion = 392; - * @param value The costConvertedCurrencyPerPlatformComparableConversion to set. + * optional double active_view_audible_quartile_p100_rate = 425; + * @param value The activeViewAudibleQuartileP100Rate to set. * @return This builder for chaining. */ - public Builder setCostConvertedCurrencyPerPlatformComparableConversion(double value) { + public Builder setActiveViewAudibleQuartileP100Rate(double value) { - costConvertedCurrencyPerPlatformComparableConversion_ = value; - bitField6_ |= 0x00002000; + activeViewAudibleQuartileP100Rate_ = value; + bitField7_ |= 0x00000200; onChanged(); return this; } /** *
-     * The cost of the platform comparable conversion in the currency of the
-     * authorized customer.
+     * The number of impressions that were audible at the fourth quartile of the
+     * ad playback, divided by the total number of impressions measurable for
+     * audibility.
      * 
* - * optional double cost_converted_currency_per_platform_comparable_conversion = 392; + * optional double active_view_audible_quartile_p100_rate = 425; * @return This builder for chaining. */ - public Builder clearCostConvertedCurrencyPerPlatformComparableConversion() { - bitField6_ = (bitField6_ & ~0x00002000); - costConvertedCurrencyPerPlatformComparableConversion_ = 0D; + public Builder clearActiveViewAudibleQuartileP100Rate() { + bitField7_ = (bitField7_ & ~0x00000200); + activeViewAudibleQuartileP100Rate_ = 0D; onChanged(); return this; } - private long uniqueUsersTwoPlus_ ; + private long biddableIndirectInstallFirstInAppConversionMicros_ ; /** *
-     * This metric counts the unique individuals who were shown your video ad two
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * The number of biddable first in app conversions where the app install was
+     * driven by interaction with a web campaign.
      * 
* - * optional int64 unique_users_two_plus = 393; - * @return Whether the uniqueUsersTwoPlus field is set. + * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; + * @return Whether the biddableIndirectInstallFirstInAppConversionMicros field is set. */ @java.lang.Override - public boolean hasUniqueUsersTwoPlus() { - return ((bitField6_ & 0x00004000) != 0); + public boolean hasBiddableIndirectInstallFirstInAppConversionMicros() { + return ((bitField7_ & 0x00000400) != 0); } /** *
-     * This metric counts the unique individuals who were shown your video ad two
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * The number of biddable first in app conversions where the app install was
+     * driven by interaction with a web campaign.
      * 
* - * optional int64 unique_users_two_plus = 393; - * @return The uniqueUsersTwoPlus. + * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; + * @return The biddableIndirectInstallFirstInAppConversionMicros. */ @java.lang.Override - public long getUniqueUsersTwoPlus() { - return uniqueUsersTwoPlus_; + public long getBiddableIndirectInstallFirstInAppConversionMicros() { + return biddableIndirectInstallFirstInAppConversionMicros_; } /** *
-     * This metric counts the unique individuals who were shown your video ad two
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * The number of biddable first in app conversions where the app install was
+     * driven by interaction with a web campaign.
      * 
* - * optional int64 unique_users_two_plus = 393; - * @param value The uniqueUsersTwoPlus to set. + * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; + * @param value The biddableIndirectInstallFirstInAppConversionMicros to set. * @return This builder for chaining. */ - public Builder setUniqueUsersTwoPlus(long value) { + public Builder setBiddableIndirectInstallFirstInAppConversionMicros(long value) { - uniqueUsersTwoPlus_ = value; - bitField6_ |= 0x00004000; + biddableIndirectInstallFirstInAppConversionMicros_ = value; + bitField7_ |= 0x00000400; onChanged(); return this; } /** *
-     * This metric counts the unique individuals who were shown your video ad two
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * The number of biddable first in app conversions where the app install was
+     * driven by interaction with a web campaign.
      * 
* - * optional int64 unique_users_two_plus = 393; + * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; * @return This builder for chaining. */ - public Builder clearUniqueUsersTwoPlus() { - bitField6_ = (bitField6_ & ~0x00004000); - uniqueUsersTwoPlus_ = 0L; + public Builder clearBiddableIndirectInstallFirstInAppConversionMicros() { + bitField7_ = (bitField7_ & ~0x00000400); + biddableIndirectInstallFirstInAppConversionMicros_ = 0L; onChanged(); return this; } - private long uniqueUsersThreePlus_ ; + private double allAverageCartSize_ ; /** *
-     * This metric counts the unique individuals who were shown your video ad
-     * three or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average cart size is the average number of products in each order
+     * attributed to your ads. Includes the amount from the average_cart_size
+     * metric, plus avg. cart size from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them. It's calculated using
+     * product info from cart data to give more detail than conversion value
+     * alone.
      * 
* - * optional int64 unique_users_three_plus = 394; - * @return Whether the uniqueUsersThreePlus field is set. + * optional double all_average_cart_size = 427; + * @return Whether the allAverageCartSize field is set. */ @java.lang.Override - public boolean hasUniqueUsersThreePlus() { - return ((bitField6_ & 0x00008000) != 0); + public boolean hasAllAverageCartSize() { + return ((bitField7_ & 0x00000800) != 0); } /** *
-     * This metric counts the unique individuals who were shown your video ad
-     * three or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average cart size is the average number of products in each order
+     * attributed to your ads. Includes the amount from the average_cart_size
+     * metric, plus avg. cart size from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them. It's calculated using
+     * product info from cart data to give more detail than conversion value
+     * alone.
      * 
* - * optional int64 unique_users_three_plus = 394; - * @return The uniqueUsersThreePlus. + * optional double all_average_cart_size = 427; + * @return The allAverageCartSize. */ @java.lang.Override - public long getUniqueUsersThreePlus() { - return uniqueUsersThreePlus_; + public double getAllAverageCartSize() { + return allAverageCartSize_; } /** *
-     * This metric counts the unique individuals who were shown your video ad
-     * three or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average cart size is the average number of products in each order
+     * attributed to your ads. Includes the amount from the average_cart_size
+     * metric, plus avg. cart size from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them. It's calculated using
+     * product info from cart data to give more detail than conversion value
+     * alone.
      * 
* - * optional int64 unique_users_three_plus = 394; - * @param value The uniqueUsersThreePlus to set. + * optional double all_average_cart_size = 427; + * @param value The allAverageCartSize to set. * @return This builder for chaining. */ - public Builder setUniqueUsersThreePlus(long value) { + public Builder setAllAverageCartSize(double value) { - uniqueUsersThreePlus_ = value; - bitField6_ |= 0x00008000; + allAverageCartSize_ = value; + bitField7_ |= 0x00000800; onChanged(); return this; } /** *
-     * This metric counts the unique individuals who were shown your video ad
-     * three or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average cart size is the average number of products in each order
+     * attributed to your ads. Includes the amount from the average_cart_size
+     * metric, plus avg. cart size from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them. It's calculated using
+     * product info from cart data to give more detail than conversion value
+     * alone.
      * 
* - * optional int64 unique_users_three_plus = 394; + * optional double all_average_cart_size = 427; * @return This builder for chaining. */ - public Builder clearUniqueUsersThreePlus() { - bitField6_ = (bitField6_ & ~0x00008000); - uniqueUsersThreePlus_ = 0L; + public Builder clearAllAverageCartSize() { + bitField7_ = (bitField7_ & ~0x00000800); + allAverageCartSize_ = 0D; onChanged(); return this; } - private long uniqueUsersFourPlus_ ; + private long allAverageOrderValueMicros_ ; /** *
-     * This metric counts the unique individuals who were shown your video ad four
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average order value is the average revenue you made per order
+     * attributed to your ads. Includes the amount from the average_order_value
+     * metric, plus avg. order value from all your conversion actions, even
+     * if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_four_plus = 395; - * @return Whether the uniqueUsersFourPlus field is set. + * optional int64 all_average_order_value_micros = 428; + * @return Whether the allAverageOrderValueMicros field is set. */ @java.lang.Override - public boolean hasUniqueUsersFourPlus() { - return ((bitField6_ & 0x00010000) != 0); + public boolean hasAllAverageOrderValueMicros() { + return ((bitField7_ & 0x00001000) != 0); } /** *
-     * This metric counts the unique individuals who were shown your video ad four
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average order value is the average revenue you made per order
+     * attributed to your ads. Includes the amount from the average_order_value
+     * metric, plus avg. order value from all your conversion actions, even
+     * if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_four_plus = 395; - * @return The uniqueUsersFourPlus. + * optional int64 all_average_order_value_micros = 428; + * @return The allAverageOrderValueMicros. */ @java.lang.Override - public long getUniqueUsersFourPlus() { - return uniqueUsersFourPlus_; + public long getAllAverageOrderValueMicros() { + return allAverageOrderValueMicros_; } /** *
-     * This metric counts the unique individuals who were shown your video ad four
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average order value is the average revenue you made per order
+     * attributed to your ads. Includes the amount from the average_order_value
+     * metric, plus avg. order value from all your conversion actions, even
+     * if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_four_plus = 395; - * @param value The uniqueUsersFourPlus to set. + * optional int64 all_average_order_value_micros = 428; + * @param value The allAverageOrderValueMicros to set. * @return This builder for chaining. */ - public Builder setUniqueUsersFourPlus(long value) { + public Builder setAllAverageOrderValueMicros(long value) { - uniqueUsersFourPlus_ = value; - bitField6_ |= 0x00010000; + allAverageOrderValueMicros_ = value; + bitField7_ |= 0x00001000; onChanged(); return this; } /** *
-     * This metric counts the unique individuals who were shown your video ad four
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All average order value is the average revenue you made per order
+     * attributed to your ads. Includes the amount from the average_order_value
+     * metric, plus avg. order value from all your conversion actions, even
+     * if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_four_plus = 395; + * optional int64 all_average_order_value_micros = 428; * @return This builder for chaining. */ - public Builder clearUniqueUsersFourPlus() { - bitField6_ = (bitField6_ & ~0x00010000); - uniqueUsersFourPlus_ = 0L; + public Builder clearAllAverageOrderValueMicros() { + bitField7_ = (bitField7_ & ~0x00001000); + allAverageOrderValueMicros_ = 0L; onChanged(); return this; } - private long uniqueUsersFivePlus_ ; + private long allCostOfGoodsSoldMicros_ ; /** *
-     * This metric counts the unique individuals who were shown your video ad five
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cost of goods sold is the total cost of the products you sold in orders
+     * attributed to your ads. Includes the amount from the
+     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional int64 unique_users_five_plus = 396; - * @return Whether the uniqueUsersFivePlus field is set. + * optional int64 all_cost_of_goods_sold_micros = 429; + * @return Whether the allCostOfGoodsSoldMicros field is set. */ @java.lang.Override - public boolean hasUniqueUsersFivePlus() { - return ((bitField6_ & 0x00020000) != 0); + public boolean hasAllCostOfGoodsSoldMicros() { + return ((bitField7_ & 0x00002000) != 0); } /** *
-     * This metric counts the unique individuals who were shown your video ad five
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cost of goods sold is the total cost of the products you sold in orders
+     * attributed to your ads. Includes the amount from the
+     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional int64 unique_users_five_plus = 396; - * @return The uniqueUsersFivePlus. + * optional int64 all_cost_of_goods_sold_micros = 429; + * @return The allCostOfGoodsSoldMicros. */ @java.lang.Override - public long getUniqueUsersFivePlus() { - return uniqueUsersFivePlus_; + public long getAllCostOfGoodsSoldMicros() { + return allCostOfGoodsSoldMicros_; } /** *
-     * This metric counts the unique individuals who were shown your video ad five
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cost of goods sold is the total cost of the products you sold in orders
+     * attributed to your ads. Includes the amount from the
+     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional int64 unique_users_five_plus = 396; - * @param value The uniqueUsersFivePlus to set. + * optional int64 all_cost_of_goods_sold_micros = 429; + * @param value The allCostOfGoodsSoldMicros to set. * @return This builder for chaining. */ - public Builder setUniqueUsersFivePlus(long value) { + public Builder setAllCostOfGoodsSoldMicros(long value) { - uniqueUsersFivePlus_ = value; - bitField6_ |= 0x00020000; + allCostOfGoodsSoldMicros_ = value; + bitField7_ |= 0x00002000; onChanged(); return this; } /** *
-     * This metric counts the unique individuals who were shown your video ad five
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cost of goods sold is the total cost of the products you sold in orders
+     * attributed to your ads. Includes the amount from the
+     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional int64 unique_users_five_plus = 396; + * optional int64 all_cost_of_goods_sold_micros = 429; * @return This builder for chaining. */ - public Builder clearUniqueUsersFivePlus() { - bitField6_ = (bitField6_ & ~0x00020000); - uniqueUsersFivePlus_ = 0L; + public Builder clearAllCostOfGoodsSoldMicros() { + bitField7_ = (bitField7_ & ~0x00002000); + allCostOfGoodsSoldMicros_ = 0L; onChanged(); return this; } - private long uniqueUsersTenPlus_ ; + private long allCrossSellCostOfGoodsSoldMicros_ ; /** *
-     * This metric counts the unique individuals who were shown your video ad ten
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cross-sell cost of goods sold is the total cost of products sold as a
+     * result of advertising a different product. Includes the amount from the
+     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
+     * sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_ten_plus = 397; - * @return Whether the uniqueUsersTenPlus field is set. + * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; + * @return Whether the allCrossSellCostOfGoodsSoldMicros field is set. */ @java.lang.Override - public boolean hasUniqueUsersTenPlus() { - return ((bitField6_ & 0x00040000) != 0); + public boolean hasAllCrossSellCostOfGoodsSoldMicros() { + return ((bitField7_ & 0x00004000) != 0); } /** *
-     * This metric counts the unique individuals who were shown your video ad ten
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cross-sell cost of goods sold is the total cost of products sold as a
+     * result of advertising a different product. Includes the amount from the
+     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
+     * sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_ten_plus = 397; - * @return The uniqueUsersTenPlus. + * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; + * @return The allCrossSellCostOfGoodsSoldMicros. */ @java.lang.Override - public long getUniqueUsersTenPlus() { - return uniqueUsersTenPlus_; + public long getAllCrossSellCostOfGoodsSoldMicros() { + return allCrossSellCostOfGoodsSoldMicros_; } /** *
-     * This metric counts the unique individuals who were shown your video ad ten
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cross-sell cost of goods sold is the total cost of products sold as a
+     * result of advertising a different product. Includes the amount from the
+     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
+     * sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_ten_plus = 397; - * @param value The uniqueUsersTenPlus to set. + * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; + * @param value The allCrossSellCostOfGoodsSoldMicros to set. * @return This builder for chaining. */ - public Builder setUniqueUsersTenPlus(long value) { + public Builder setAllCrossSellCostOfGoodsSoldMicros(long value) { - uniqueUsersTenPlus_ = value; - bitField6_ |= 0x00040000; + allCrossSellCostOfGoodsSoldMicros_ = value; + bitField7_ |= 0x00004000; onChanged(); return this; } /** *
-     * This metric counts the unique individuals who were shown your video ad ten
-     * or more times within the selected date range. This metric cannot be
-     * aggregated, and can only be requested for date ranges of 31 days or less.
+     * All cross-sell cost of goods sold is the total cost of products sold as a
+     * result of advertising a different product. Includes the amount from the
+     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
+     * sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 unique_users_ten_plus = 397; + * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; * @return This builder for chaining. */ - public Builder clearUniqueUsersTenPlus() { - bitField6_ = (bitField6_ & ~0x00040000); - uniqueUsersTenPlus_ = 0L; + public Builder clearAllCrossSellCostOfGoodsSoldMicros() { + bitField7_ = (bitField7_ & ~0x00004000); + allCrossSellCostOfGoodsSoldMicros_ = 0L; onChanged(); return this; } - private double valueAdjustment_ ; + private long allCrossSellGrossProfitMicros_ ; /** *
-     * The conversion value rule adjustment from biddable conversions in all
-     * conversion categories.
+     * All cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
+     * cross-sell gross profit from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double value_adjustment = 398; - * @return Whether the valueAdjustment field is set. + * optional int64 all_cross_sell_gross_profit_micros = 431; + * @return Whether the allCrossSellGrossProfitMicros field is set. */ @java.lang.Override - public boolean hasValueAdjustment() { - return ((bitField6_ & 0x00080000) != 0); + public boolean hasAllCrossSellGrossProfitMicros() { + return ((bitField7_ & 0x00008000) != 0); } /** *
-     * The conversion value rule adjustment from biddable conversions in all
-     * conversion categories.
+     * All cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
+     * cross-sell gross profit from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double value_adjustment = 398; - * @return The valueAdjustment. + * optional int64 all_cross_sell_gross_profit_micros = 431; + * @return The allCrossSellGrossProfitMicros. */ @java.lang.Override - public double getValueAdjustment() { - return valueAdjustment_; + public long getAllCrossSellGrossProfitMicros() { + return allCrossSellGrossProfitMicros_; } /** *
-     * The conversion value rule adjustment from biddable conversions in all
-     * conversion categories.
+     * All cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
+     * cross-sell gross profit from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double value_adjustment = 398; - * @param value The valueAdjustment to set. + * optional int64 all_cross_sell_gross_profit_micros = 431; + * @param value The allCrossSellGrossProfitMicros to set. * @return This builder for chaining. */ - public Builder setValueAdjustment(double value) { + public Builder setAllCrossSellGrossProfitMicros(long value) { - valueAdjustment_ = value; - bitField6_ |= 0x00080000; + allCrossSellGrossProfitMicros_ = value; + bitField7_ |= 0x00008000; onChanged(); return this; } /** *
-     * The conversion value rule adjustment from biddable conversions in all
-     * conversion categories.
+     * All cross-sell gross profit is the profit you made from products sold as a
+     * result of advertising a different product, minus cost of goods sold (COGS).
+     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
+     * cross-sell gross profit from all your conversion actions, even if your
+     * campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double value_adjustment = 398; + * optional int64 all_cross_sell_gross_profit_micros = 431; * @return This builder for chaining. */ - public Builder clearValueAdjustment() { - bitField6_ = (bitField6_ & ~0x00080000); - valueAdjustment_ = 0D; + public Builder clearAllCrossSellGrossProfitMicros() { + bitField7_ = (bitField7_ & ~0x00008000); + allCrossSellGrossProfitMicros_ = 0L; onChanged(); return this; } - private double allValueAdjustment_ ; + private long allCrossSellRevenueMicros_ ; /** *
-     * The conversion value rule adjustment from all conversions in all conversion
-     * categories.
+     * All cross-sell revenue is the total amount you made from products sold as
+     * a result of advertising a different product. Includes the amount from the
+     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional double all_value_adjustment = 399; - * @return Whether the allValueAdjustment field is set. + * optional int64 all_cross_sell_revenue_micros = 432; + * @return Whether the allCrossSellRevenueMicros field is set. */ @java.lang.Override - public boolean hasAllValueAdjustment() { - return ((bitField6_ & 0x00100000) != 0); + public boolean hasAllCrossSellRevenueMicros() { + return ((bitField7_ & 0x00010000) != 0); } /** *
-     * The conversion value rule adjustment from all conversions in all conversion
-     * categories.
+     * All cross-sell revenue is the total amount you made from products sold as
+     * a result of advertising a different product. Includes the amount from the
+     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional double all_value_adjustment = 399; - * @return The allValueAdjustment. + * optional int64 all_cross_sell_revenue_micros = 432; + * @return The allCrossSellRevenueMicros. */ @java.lang.Override - public double getAllValueAdjustment() { - return allValueAdjustment_; + public long getAllCrossSellRevenueMicros() { + return allCrossSellRevenueMicros_; } /** *
-     * The conversion value rule adjustment from all conversions in all conversion
-     * categories.
+     * All cross-sell revenue is the total amount you made from products sold as
+     * a result of advertising a different product. Includes the amount from the
+     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional double all_value_adjustment = 399; - * @param value The allValueAdjustment to set. + * optional int64 all_cross_sell_revenue_micros = 432; + * @param value The allCrossSellRevenueMicros to set. * @return This builder for chaining. */ - public Builder setAllValueAdjustment(double value) { + public Builder setAllCrossSellRevenueMicros(long value) { - allValueAdjustment_ = value; - bitField6_ |= 0x00100000; + allCrossSellRevenueMicros_ = value; + bitField7_ |= 0x00010000; onChanged(); return this; } /** *
-     * The conversion value rule adjustment from all conversions in all conversion
-     * categories.
+     * All cross-sell revenue is the total amount you made from products sold as
+     * a result of advertising a different product. Includes the amount from the
+     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them. It's calculated using product info from cart data to give
+     * more detail than conversion value alone.
      * 
* - * optional double all_value_adjustment = 399; + * optional int64 all_cross_sell_revenue_micros = 432; * @return This builder for chaining. */ - public Builder clearAllValueAdjustment() { - bitField6_ = (bitField6_ & ~0x00100000); - allValueAdjustment_ = 0D; + public Builder clearAllCrossSellRevenueMicros() { + bitField7_ = (bitField7_ & ~0x00010000); + allCrossSellRevenueMicros_ = 0L; onChanged(); return this; } - private long clicksUniqueQueryClusters_ ; + private double allCrossSellUnitsSold_ ; /** *
-     * Unique query intent cluster count for clicks.
+     * All cross-sell units sold is the total number of products sold as a result
+     * of advertising a different product. Includes the amount shown in the
+     * cross_sell_units_sold metric, plus cross-sell units sold from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 clicks_unique_query_clusters = 400; - * @return Whether the clicksUniqueQueryClusters field is set. + * optional double all_cross_sell_units_sold = 433; + * @return Whether the allCrossSellUnitsSold field is set. */ @java.lang.Override - public boolean hasClicksUniqueQueryClusters() { - return ((bitField6_ & 0x00200000) != 0); + public boolean hasAllCrossSellUnitsSold() { + return ((bitField7_ & 0x00020000) != 0); } /** *
-     * Unique query intent cluster count for clicks.
+     * All cross-sell units sold is the total number of products sold as a result
+     * of advertising a different product. Includes the amount shown in the
+     * cross_sell_units_sold metric, plus cross-sell units sold from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 clicks_unique_query_clusters = 400; - * @return The clicksUniqueQueryClusters. + * optional double all_cross_sell_units_sold = 433; + * @return The allCrossSellUnitsSold. */ @java.lang.Override - public long getClicksUniqueQueryClusters() { - return clicksUniqueQueryClusters_; + public double getAllCrossSellUnitsSold() { + return allCrossSellUnitsSold_; } /** *
-     * Unique query intent cluster count for clicks.
+     * All cross-sell units sold is the total number of products sold as a result
+     * of advertising a different product. Includes the amount shown in the
+     * cross_sell_units_sold metric, plus cross-sell units sold from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 clicks_unique_query_clusters = 400; - * @param value The clicksUniqueQueryClusters to set. + * optional double all_cross_sell_units_sold = 433; + * @param value The allCrossSellUnitsSold to set. * @return This builder for chaining. */ - public Builder setClicksUniqueQueryClusters(long value) { + public Builder setAllCrossSellUnitsSold(double value) { - clicksUniqueQueryClusters_ = value; - bitField6_ |= 0x00200000; + allCrossSellUnitsSold_ = value; + bitField7_ |= 0x00020000; onChanged(); return this; } /** *
-     * Unique query intent cluster count for clicks.
+     * All cross-sell units sold is the total number of products sold as a result
+     * of advertising a different product. Includes the amount shown in the
+     * cross_sell_units_sold metric, plus cross-sell units sold from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 clicks_unique_query_clusters = 400; + * optional double all_cross_sell_units_sold = 433; * @return This builder for chaining. */ - public Builder clearClicksUniqueQueryClusters() { - bitField6_ = (bitField6_ & ~0x00200000); - clicksUniqueQueryClusters_ = 0L; + public Builder clearAllCrossSellUnitsSold() { + bitField7_ = (bitField7_ & ~0x00020000); + allCrossSellUnitsSold_ = 0D; onChanged(); return this; } - private long conversionsUniqueQueryClusters_ ; + private double allGrossProfitMargin_ ; /** *
-     * Unique query intent cluster count for conversions.
+     * All gross profit margin is the percentage gross profit you made from
+     * orders attributed to your ads, after taking out the cost of goods sold
+     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
+     * the amount from the gross_profit_margin metric, plus gross profit margin
+     * across all conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 conversions_unique_query_clusters = 401; - * @return Whether the conversionsUniqueQueryClusters field is set. + * optional double all_gross_profit_margin = 434; + * @return Whether the allGrossProfitMargin field is set. */ @java.lang.Override - public boolean hasConversionsUniqueQueryClusters() { - return ((bitField6_ & 0x00400000) != 0); + public boolean hasAllGrossProfitMargin() { + return ((bitField7_ & 0x00040000) != 0); } /** *
-     * Unique query intent cluster count for conversions.
+     * All gross profit margin is the percentage gross profit you made from
+     * orders attributed to your ads, after taking out the cost of goods sold
+     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
+     * the amount from the gross_profit_margin metric, plus gross profit margin
+     * across all conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 conversions_unique_query_clusters = 401; - * @return The conversionsUniqueQueryClusters. + * optional double all_gross_profit_margin = 434; + * @return The allGrossProfitMargin. */ @java.lang.Override - public long getConversionsUniqueQueryClusters() { - return conversionsUniqueQueryClusters_; + public double getAllGrossProfitMargin() { + return allGrossProfitMargin_; } /** *
-     * Unique query intent cluster count for conversions.
+     * All gross profit margin is the percentage gross profit you made from
+     * orders attributed to your ads, after taking out the cost of goods sold
+     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
+     * the amount from the gross_profit_margin metric, plus gross profit margin
+     * across all conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 conversions_unique_query_clusters = 401; - * @param value The conversionsUniqueQueryClusters to set. + * optional double all_gross_profit_margin = 434; + * @param value The allGrossProfitMargin to set. * @return This builder for chaining. */ - public Builder setConversionsUniqueQueryClusters(long value) { + public Builder setAllGrossProfitMargin(double value) { - conversionsUniqueQueryClusters_ = value; - bitField6_ |= 0x00400000; + allGrossProfitMargin_ = value; + bitField7_ |= 0x00040000; onChanged(); return this; } /** *
-     * Unique query intent cluster count for conversions.
+     * All gross profit margin is the percentage gross profit you made from
+     * orders attributed to your ads, after taking out the cost of goods sold
+     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
+     * the amount from the gross_profit_margin metric, plus gross profit margin
+     * across all conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 conversions_unique_query_clusters = 401; + * optional double all_gross_profit_margin = 434; * @return This builder for chaining. */ - public Builder clearConversionsUniqueQueryClusters() { - bitField6_ = (bitField6_ & ~0x00400000); - conversionsUniqueQueryClusters_ = 0L; + public Builder clearAllGrossProfitMargin() { + bitField7_ = (bitField7_ & ~0x00040000); + allGrossProfitMargin_ = 0D; onChanged(); return this; } - private long impressionsUniqueQueryClusters_ ; + private long allGrossProfitMicros_ ; /** *
-     * Unique query intent cluster count for impressions.
+     * All gross profit is the total profit made from orders attributed to your
+     * ads minus the cost of goods sold (COGS). Includes the amount from the
+     * gross_profit_micros metric, plus gross profit from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 impressions_unique_query_clusters = 402; - * @return Whether the impressionsUniqueQueryClusters field is set. + * optional int64 all_gross_profit_micros = 435; + * @return Whether the allGrossProfitMicros field is set. */ @java.lang.Override - public boolean hasImpressionsUniqueQueryClusters() { - return ((bitField6_ & 0x00800000) != 0); + public boolean hasAllGrossProfitMicros() { + return ((bitField7_ & 0x00080000) != 0); } /** *
-     * Unique query intent cluster count for impressions.
+     * All gross profit is the total profit made from orders attributed to your
+     * ads minus the cost of goods sold (COGS). Includes the amount from the
+     * gross_profit_micros metric, plus gross profit from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 impressions_unique_query_clusters = 402; - * @return The impressionsUniqueQueryClusters. + * optional int64 all_gross_profit_micros = 435; + * @return The allGrossProfitMicros. */ @java.lang.Override - public long getImpressionsUniqueQueryClusters() { - return impressionsUniqueQueryClusters_; + public long getAllGrossProfitMicros() { + return allGrossProfitMicros_; } /** *
-     * Unique query intent cluster count for impressions.
+     * All gross profit is the total profit made from orders attributed to your
+     * ads minus the cost of goods sold (COGS). Includes the amount from the
+     * gross_profit_micros metric, plus gross profit from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 impressions_unique_query_clusters = 402; - * @param value The impressionsUniqueQueryClusters to set. + * optional int64 all_gross_profit_micros = 435; + * @param value The allGrossProfitMicros to set. * @return This builder for chaining. */ - public Builder setImpressionsUniqueQueryClusters(long value) { + public Builder setAllGrossProfitMicros(long value) { - impressionsUniqueQueryClusters_ = value; - bitField6_ |= 0x00800000; + allGrossProfitMicros_ = value; + bitField7_ |= 0x00080000; onChanged(); return this; } /** *
-     * Unique query intent cluster count for impressions.
+     * All gross profit is the total profit made from orders attributed to your
+     * ads minus the cost of goods sold (COGS). Includes the amount from the
+     * gross_profit_micros metric, plus gross profit from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 impressions_unique_query_clusters = 402; + * optional int64 all_gross_profit_micros = 435; * @return This builder for chaining. */ - public Builder clearImpressionsUniqueQueryClusters() { - bitField6_ = (bitField6_ & ~0x00800000); - impressionsUniqueQueryClusters_ = 0L; + public Builder clearAllGrossProfitMicros() { + bitField7_ = (bitField7_ & ~0x00080000); + allGrossProfitMicros_ = 0L; onChanged(); return this; } - private long videoWatchTimeDurationMillis_ ; + private long allLeadCostOfGoodsSoldMicros_ ; /** *
-     * Total watch time duration in milliseconds for video impressions that
-     * started playing. For a small percentage of impressions, we may not be able
-     * to measure the watch time accurately. In such cases, we adjust the total
-     * time to account for any unmeasured time by applying the average watch time
-     * of impressions that were measured.
+     * All lead cost of goods sold is the total cost of products sold as a result
+     * of advertising the same product. Includes the amount shown in the
+     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
+     * all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 video_watch_time_duration_millis = 403; - * @return Whether the videoWatchTimeDurationMillis field is set. + * optional int64 all_lead_cost_of_goods_sold_micros = 436; + * @return Whether the allLeadCostOfGoodsSoldMicros field is set. */ @java.lang.Override - public boolean hasVideoWatchTimeDurationMillis() { - return ((bitField6_ & 0x01000000) != 0); + public boolean hasAllLeadCostOfGoodsSoldMicros() { + return ((bitField7_ & 0x00100000) != 0); } /** *
-     * Total watch time duration in milliseconds for video impressions that
-     * started playing. For a small percentage of impressions, we may not be able
-     * to measure the watch time accurately. In such cases, we adjust the total
-     * time to account for any unmeasured time by applying the average watch time
-     * of impressions that were measured.
+     * All lead cost of goods sold is the total cost of products sold as a result
+     * of advertising the same product. Includes the amount shown in the
+     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
+     * all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 video_watch_time_duration_millis = 403; - * @return The videoWatchTimeDurationMillis. + * optional int64 all_lead_cost_of_goods_sold_micros = 436; + * @return The allLeadCostOfGoodsSoldMicros. */ @java.lang.Override - public long getVideoWatchTimeDurationMillis() { - return videoWatchTimeDurationMillis_; + public long getAllLeadCostOfGoodsSoldMicros() { + return allLeadCostOfGoodsSoldMicros_; } /** *
-     * Total watch time duration in milliseconds for video impressions that
-     * started playing. For a small percentage of impressions, we may not be able
-     * to measure the watch time accurately. In such cases, we adjust the total
-     * time to account for any unmeasured time by applying the average watch time
-     * of impressions that were measured.
+     * All lead cost of goods sold is the total cost of products sold as a result
+     * of advertising the same product. Includes the amount shown in the
+     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
+     * all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 video_watch_time_duration_millis = 403; - * @param value The videoWatchTimeDurationMillis to set. + * optional int64 all_lead_cost_of_goods_sold_micros = 436; + * @param value The allLeadCostOfGoodsSoldMicros to set. * @return This builder for chaining. */ - public Builder setVideoWatchTimeDurationMillis(long value) { + public Builder setAllLeadCostOfGoodsSoldMicros(long value) { - videoWatchTimeDurationMillis_ = value; - bitField6_ |= 0x01000000; + allLeadCostOfGoodsSoldMicros_ = value; + bitField7_ |= 0x00100000; onChanged(); return this; } /** *
-     * Total watch time duration in milliseconds for video impressions that
-     * started playing. For a small percentage of impressions, we may not be able
-     * to measure the watch time accurately. In such cases, we adjust the total
-     * time to account for any unmeasured time by applying the average watch time
-     * of impressions that were measured.
+     * All lead cost of goods sold is the total cost of products sold as a result
+     * of advertising the same product. Includes the amount shown in the
+     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
+     * all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 video_watch_time_duration_millis = 403; + * optional int64 all_lead_cost_of_goods_sold_micros = 436; * @return This builder for chaining. */ - public Builder clearVideoWatchTimeDurationMillis() { - bitField6_ = (bitField6_ & ~0x01000000); - videoWatchTimeDurationMillis_ = 0L; + public Builder clearAllLeadCostOfGoodsSoldMicros() { + bitField7_ = (bitField7_ & ~0x00100000); + allLeadCostOfGoodsSoldMicros_ = 0L; onChanged(); return this; } - private long averageVideoWatchTimeDurationMillis_ ; + private long allLeadGrossProfitMicros_ ; /** *
-     * Average video watch time duration in milliseconds for video impressions
-     * that started playing.
+     * All lead gross profit is the profit you made from products sold as a result
+     * of advertising the same product, minus cost of goods sold (COGS). Includes
+     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
+     * from all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 average_video_watch_time_duration_millis = 404; - * @return Whether the averageVideoWatchTimeDurationMillis field is set. + * optional int64 all_lead_gross_profit_micros = 437; + * @return Whether the allLeadGrossProfitMicros field is set. */ @java.lang.Override - public boolean hasAverageVideoWatchTimeDurationMillis() { - return ((bitField6_ & 0x02000000) != 0); + public boolean hasAllLeadGrossProfitMicros() { + return ((bitField7_ & 0x00200000) != 0); } /** *
-     * Average video watch time duration in milliseconds for video impressions
-     * that started playing.
+     * All lead gross profit is the profit you made from products sold as a result
+     * of advertising the same product, minus cost of goods sold (COGS). Includes
+     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
+     * from all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 average_video_watch_time_duration_millis = 404; - * @return The averageVideoWatchTimeDurationMillis. + * optional int64 all_lead_gross_profit_micros = 437; + * @return The allLeadGrossProfitMicros. */ @java.lang.Override - public long getAverageVideoWatchTimeDurationMillis() { - return averageVideoWatchTimeDurationMillis_; + public long getAllLeadGrossProfitMicros() { + return allLeadGrossProfitMicros_; } /** *
-     * Average video watch time duration in milliseconds for video impressions
-     * that started playing.
+     * All lead gross profit is the profit you made from products sold as a result
+     * of advertising the same product, minus cost of goods sold (COGS). Includes
+     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
+     * from all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 average_video_watch_time_duration_millis = 404; - * @param value The averageVideoWatchTimeDurationMillis to set. + * optional int64 all_lead_gross_profit_micros = 437; + * @param value The allLeadGrossProfitMicros to set. * @return This builder for chaining. */ - public Builder setAverageVideoWatchTimeDurationMillis(long value) { + public Builder setAllLeadGrossProfitMicros(long value) { - averageVideoWatchTimeDurationMillis_ = value; - bitField6_ |= 0x02000000; + allLeadGrossProfitMicros_ = value; + bitField7_ |= 0x00200000; onChanged(); return this; } /** *
-     * Average video watch time duration in milliseconds for video impressions
-     * that started playing.
+     * All lead gross profit is the profit you made from products sold as a result
+     * of advertising the same product, minus cost of goods sold (COGS). Includes
+     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
+     * from all your conversion actions, even if your campaigns are not actively
+     * optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 average_video_watch_time_duration_millis = 404; + * optional int64 all_lead_gross_profit_micros = 437; * @return This builder for chaining. */ - public Builder clearAverageVideoWatchTimeDurationMillis() { - bitField6_ = (bitField6_ & ~0x02000000); - averageVideoWatchTimeDurationMillis_ = 0L; + public Builder clearAllLeadGrossProfitMicros() { + bitField7_ = (bitField7_ & ~0x00200000); + allLeadGrossProfitMicros_ = 0L; onChanged(); return this; } - private long svr_ ; + private long allLeadRevenueMicros_ ; /** *
-     * This feature is available to allowlisted accounts only.
+     * All lead revenue is the total amount you made from products sold as a
+     * result of advertising the same product. Includes the amount shown in the
+     * lead_revenue_micros metric, plus lead revenue from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 svr = 411; - * @return Whether the svr field is set. + * optional int64 all_lead_revenue_micros = 438; + * @return Whether the allLeadRevenueMicros field is set. */ @java.lang.Override - public boolean hasSvr() { - return ((bitField6_ & 0x04000000) != 0); + public boolean hasAllLeadRevenueMicros() { + return ((bitField7_ & 0x00400000) != 0); } /** *
-     * This feature is available to allowlisted accounts only.
+     * All lead revenue is the total amount you made from products sold as a
+     * result of advertising the same product. Includes the amount shown in the
+     * lead_revenue_micros metric, plus lead revenue from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 svr = 411; - * @return The svr. + * optional int64 all_lead_revenue_micros = 438; + * @return The allLeadRevenueMicros. */ @java.lang.Override - public long getSvr() { - return svr_; + public long getAllLeadRevenueMicros() { + return allLeadRevenueMicros_; } /** *
-     * This feature is available to allowlisted accounts only.
+     * All lead revenue is the total amount you made from products sold as a
+     * result of advertising the same product. Includes the amount shown in the
+     * lead_revenue_micros metric, plus lead revenue from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 svr = 411; - * @param value The svr to set. + * optional int64 all_lead_revenue_micros = 438; + * @param value The allLeadRevenueMicros to set. * @return This builder for chaining. */ - public Builder setSvr(long value) { + public Builder setAllLeadRevenueMicros(long value) { - svr_ = value; - bitField6_ |= 0x04000000; + allLeadRevenueMicros_ = value; + bitField7_ |= 0x00400000; onChanged(); return this; } /** *
-     * This feature is available to allowlisted accounts only.
+     * All lead revenue is the total amount you made from products sold as a
+     * result of advertising the same product. Includes the amount shown in the
+     * lead_revenue_micros metric, plus lead revenue from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 svr = 411; + * optional int64 all_lead_revenue_micros = 438; * @return This builder for chaining. */ - public Builder clearSvr() { - bitField6_ = (bitField6_ & ~0x04000000); - svr_ = 0L; + public Builder clearAllLeadRevenueMicros() { + bitField7_ = (bitField7_ & ~0x00400000); + allLeadRevenueMicros_ = 0L; onChanged(); return this; } - private long activeViewAudibilityMeasurableImpressions_ ; + private double allLeadUnitsSold_ ; /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible.
+     * All lead units sold is the total number of products sold as a result of
+     * advertising the same product. Includes the amount shown in the
+     * lead_units_sold metric, plus lead units sold from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 active_view_audibility_measurable_impressions = 412; - * @return Whether the activeViewAudibilityMeasurableImpressions field is set. + * optional double all_lead_units_sold = 439; + * @return Whether the allLeadUnitsSold field is set. */ @java.lang.Override - public boolean hasActiveViewAudibilityMeasurableImpressions() { - return ((bitField6_ & 0x08000000) != 0); + public boolean hasAllLeadUnitsSold() { + return ((bitField7_ & 0x00800000) != 0); } /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible.
+     * All lead units sold is the total number of products sold as a result of
+     * advertising the same product. Includes the amount shown in the
+     * lead_units_sold metric, plus lead units sold from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 active_view_audibility_measurable_impressions = 412; - * @return The activeViewAudibilityMeasurableImpressions. + * optional double all_lead_units_sold = 439; + * @return The allLeadUnitsSold. */ @java.lang.Override - public long getActiveViewAudibilityMeasurableImpressions() { - return activeViewAudibilityMeasurableImpressions_; + public double getAllLeadUnitsSold() { + return allLeadUnitsSold_; } /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible.
+     * All lead units sold is the total number of products sold as a result of
+     * advertising the same product. Includes the amount shown in the
+     * lead_units_sold metric, plus lead units sold from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 active_view_audibility_measurable_impressions = 412; - * @param value The activeViewAudibilityMeasurableImpressions to set. + * optional double all_lead_units_sold = 439; + * @param value The allLeadUnitsSold to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibilityMeasurableImpressions(long value) { + public Builder setAllLeadUnitsSold(double value) { - activeViewAudibilityMeasurableImpressions_ = value; - bitField6_ |= 0x08000000; + allLeadUnitsSold_ = value; + bitField7_ |= 0x00800000; onChanged(); return this; } /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible.
+     * All lead units sold is the total number of products sold as a result of
+     * advertising the same product. Includes the amount shown in the
+     * lead_units_sold metric, plus lead units sold from all your conversion
+     * actions, even if your campaigns are not actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional int64 active_view_audibility_measurable_impressions = 412; + * optional double all_lead_units_sold = 439; * @return This builder for chaining. */ - public Builder clearActiveViewAudibilityMeasurableImpressions() { - bitField6_ = (bitField6_ & ~0x08000000); - activeViewAudibilityMeasurableImpressions_ = 0L; + public Builder clearAllLeadUnitsSold() { + bitField7_ = (bitField7_ & ~0x00800000); + allLeadUnitsSold_ = 0D; onChanged(); return this; } - private double activeViewAudibilityMeasurableImpressionsRate_ ; + private double allOrders_ ; /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible, divided by the total number of impressions with Active View audio
-     * enabled.
+     * All orders is total number of purchase conversions attributed to your ads.
+     * Includes the amount from the orders metric, plus orders from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_measurable_impressions_rate = 413; - * @return Whether the activeViewAudibilityMeasurableImpressionsRate field is set. + * optional double all_orders = 440; + * @return Whether the allOrders field is set. */ @java.lang.Override - public boolean hasActiveViewAudibilityMeasurableImpressionsRate() { - return ((bitField6_ & 0x10000000) != 0); + public boolean hasAllOrders() { + return ((bitField7_ & 0x01000000) != 0); } /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible, divided by the total number of impressions with Active View audio
-     * enabled.
+     * All orders is total number of purchase conversions attributed to your ads.
+     * Includes the amount from the orders metric, plus orders from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_measurable_impressions_rate = 413; - * @return The activeViewAudibilityMeasurableImpressionsRate. + * optional double all_orders = 440; + * @return The allOrders. */ @java.lang.Override - public double getActiveViewAudibilityMeasurableImpressionsRate() { - return activeViewAudibilityMeasurableImpressionsRate_; + public double getAllOrders() { + return allOrders_; } /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible, divided by the total number of impressions with Active View audio
-     * enabled.
+     * All orders is total number of purchase conversions attributed to your ads.
+     * Includes the amount from the orders metric, plus orders from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_measurable_impressions_rate = 413; - * @param value The activeViewAudibilityMeasurableImpressionsRate to set. + * optional double all_orders = 440; + * @param value The allOrders to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibilityMeasurableImpressionsRate(double value) { + public Builder setAllOrders(double value) { - activeViewAudibilityMeasurableImpressionsRate_ = value; - bitField6_ |= 0x10000000; + allOrders_ = value; + bitField7_ |= 0x01000000; onChanged(); return this; } /** *
-     * The number of impressions for which Active View could measure if the ad was
-     * audible, divided by the total number of impressions with Active View audio
-     * enabled.
+     * All orders is total number of purchase conversions attributed to your ads.
+     * Includes the amount from the orders metric, plus orders from all your
+     * conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_measurable_impressions_rate = 413; + * optional double all_orders = 440; * @return This builder for chaining. */ - public Builder clearActiveViewAudibilityMeasurableImpressionsRate() { - bitField6_ = (bitField6_ & ~0x10000000); - activeViewAudibilityMeasurableImpressionsRate_ = 0D; + public Builder clearAllOrders() { + bitField7_ = (bitField7_ & ~0x01000000); + allOrders_ = 0D; onChanged(); return this; } - private double activeViewAudibilityInvalidMeasurableImpressionsRate_ ; + private long allRevenueMicros_ ; /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the
-     * total number of impressions measurable for audibility.
+     * All revenue is the total you made from orders attributed to your ads.
+     * Includes the amount from the revenue_micros metric, plus revenue from all
+     * your conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; - * @return Whether the activeViewAudibilityInvalidMeasurableImpressionsRate field is set. + * optional int64 all_revenue_micros = 441; + * @return Whether the allRevenueMicros field is set. */ @java.lang.Override - public boolean hasActiveViewAudibilityInvalidMeasurableImpressionsRate() { - return ((bitField6_ & 0x20000000) != 0); + public boolean hasAllRevenueMicros() { + return ((bitField7_ & 0x02000000) != 0); } /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the
-     * total number of impressions measurable for audibility.
+     * All revenue is the total you made from orders attributed to your ads.
+     * Includes the amount from the revenue_micros metric, plus revenue from all
+     * your conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; - * @return The activeViewAudibilityInvalidMeasurableImpressionsRate. + * optional int64 all_revenue_micros = 441; + * @return The allRevenueMicros. */ @java.lang.Override - public double getActiveViewAudibilityInvalidMeasurableImpressionsRate() { - return activeViewAudibilityInvalidMeasurableImpressionsRate_; + public long getAllRevenueMicros() { + return allRevenueMicros_; } /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the
-     * total number of impressions measurable for audibility.
+     * All revenue is the total you made from orders attributed to your ads.
+     * Includes the amount from the revenue_micros metric, plus revenue from all
+     * your conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; - * @param value The activeViewAudibilityInvalidMeasurableImpressionsRate to set. + * optional int64 all_revenue_micros = 441; + * @param value The allRevenueMicros to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibilityInvalidMeasurableImpressionsRate(double value) { + public Builder setAllRevenueMicros(long value) { - activeViewAudibilityInvalidMeasurableImpressionsRate_ = value; - bitField6_ |= 0x20000000; + allRevenueMicros_ = value; + bitField7_ |= 0x02000000; onChanged(); return this; } /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the
-     * total number of impressions measurable for audibility.
+     * All revenue is the total you made from orders attributed to your ads.
+     * Includes the amount from the revenue_micros metric, plus revenue from all
+     * your conversion actions, even if your campaigns are not actively optimizing
+     * towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_measurable_impressions_rate = 414; + * optional int64 all_revenue_micros = 441; * @return This builder for chaining. */ - public Builder clearActiveViewAudibilityInvalidMeasurableImpressionsRate() { - bitField6_ = (bitField6_ & ~0x20000000); - activeViewAudibilityInvalidMeasurableImpressionsRate_ = 0D; + public Builder clearAllRevenueMicros() { + bitField7_ = (bitField7_ & ~0x02000000); + allRevenueMicros_ = 0L; onChanged(); return this; } - private double activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ ; + private double allUnitsSold_ ; /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the total
-     * number of impressions measurable for audibility. Only includes GIVT
-     * (general invalid traffic) impressions.
+     * All units sold is the total number of products sold from orders attributed
+     * to your ads. Includes the amount from the units_sold metric, plus
+     * units sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; - * @return Whether the activeViewAudibilityInvalidGivtMeasurableImpressionsRate field is set. + * optional double all_units_sold = 442; + * @return Whether the allUnitsSold field is set. */ @java.lang.Override - public boolean hasActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() { - return ((bitField6_ & 0x40000000) != 0); + public boolean hasAllUnitsSold() { + return ((bitField7_ & 0x04000000) != 0); } /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the total
-     * number of impressions measurable for audibility. Only includes GIVT
-     * (general invalid traffic) impressions.
+     * All units sold is the total number of products sold from orders attributed
+     * to your ads. Includes the amount from the units_sold metric, plus
+     * units sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; - * @return The activeViewAudibilityInvalidGivtMeasurableImpressionsRate. + * optional double all_units_sold = 442; + * @return The allUnitsSold. */ @java.lang.Override - public double getActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() { - return activeViewAudibilityInvalidGivtMeasurableImpressionsRate_; + public double getAllUnitsSold() { + return allUnitsSold_; } /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the total
-     * number of impressions measurable for audibility. Only includes GIVT
-     * (general invalid traffic) impressions.
+     * All units sold is the total number of products sold from orders attributed
+     * to your ads. Includes the amount from the units_sold metric, plus
+     * units sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; - * @param value The activeViewAudibilityInvalidGivtMeasurableImpressionsRate to set. + * optional double all_units_sold = 442; + * @param value The allUnitsSold to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibilityInvalidGivtMeasurableImpressionsRate(double value) { + public Builder setAllUnitsSold(double value) { - activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ = value; - bitField6_ |= 0x40000000; + allUnitsSold_ = value; + bitField7_ |= 0x04000000; onChanged(); return this; } /** *
-     * The number of impressions for which Active View could measure audibility,
-     * but that were filtered out by traffic quality filters, divided by the total
-     * number of impressions measurable for audibility. Only includes GIVT
-     * (general invalid traffic) impressions.
+     * All units sold is the total number of products sold from orders attributed
+     * to your ads. Includes the amount from the units_sold metric, plus
+     * units sold from all your conversion actions, even if your campaigns are not
+     * actively optimizing towards them.
+     * It's calculated using product info from cart data to give more detail than
+     * conversion value alone.
      * 
* - * optional double active_view_audibility_invalid_givt_measurable_impressions_rate = 415; + * optional double all_units_sold = 442; * @return This builder for chaining. */ - public Builder clearActiveViewAudibilityInvalidGivtMeasurableImpressionsRate() { - bitField6_ = (bitField6_ & ~0x40000000); - activeViewAudibilityInvalidGivtMeasurableImpressionsRate_ = 0D; + public Builder clearAllUnitsSold() { + bitField7_ = (bitField7_ & ~0x04000000); + allUnitsSold_ = 0D; onChanged(); return this; } - private long activeViewAudibleImpressions_ ; + private double controlCostPerConversion_ ; /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback.
+     * The cost per conversion metric on the control arm of the
+     * experiment. The treatment cost per conversion value can be
+     * selected by using `cost_per_conversion`.
      * 
* - * optional int64 active_view_audible_impressions = 416; - * @return Whether the activeViewAudibleImpressions field is set. + * optional double control_cost_per_conversion = 446; + * @return Whether the controlCostPerConversion field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleImpressions() { - return ((bitField6_ & 0x80000000) != 0); + public boolean hasControlCostPerConversion() { + return ((bitField7_ & 0x08000000) != 0); } /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback.
+     * The cost per conversion metric on the control arm of the
+     * experiment. The treatment cost per conversion value can be
+     * selected by using `cost_per_conversion`.
      * 
* - * optional int64 active_view_audible_impressions = 416; - * @return The activeViewAudibleImpressions. + * optional double control_cost_per_conversion = 446; + * @return The controlCostPerConversion. */ @java.lang.Override - public long getActiveViewAudibleImpressions() { - return activeViewAudibleImpressions_; + public double getControlCostPerConversion() { + return controlCostPerConversion_; } /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback.
+     * The cost per conversion metric on the control arm of the
+     * experiment. The treatment cost per conversion value can be
+     * selected by using `cost_per_conversion`.
      * 
* - * optional int64 active_view_audible_impressions = 416; - * @param value The activeViewAudibleImpressions to set. + * optional double control_cost_per_conversion = 446; + * @param value The controlCostPerConversion to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleImpressions(long value) { + public Builder setControlCostPerConversion(double value) { - activeViewAudibleImpressions_ = value; - bitField6_ |= 0x80000000; + controlCostPerConversion_ = value; + bitField7_ |= 0x08000000; onChanged(); return this; } /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback.
+     * The cost per conversion metric on the control arm of the
+     * experiment. The treatment cost per conversion value can be
+     * selected by using `cost_per_conversion`.
      * 
* - * optional int64 active_view_audible_impressions = 416; + * optional double control_cost_per_conversion = 446; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleImpressions() { - bitField6_ = (bitField6_ & ~0x80000000); - activeViewAudibleImpressions_ = 0L; + public Builder clearControlCostPerConversion() { + bitField7_ = (bitField7_ & ~0x08000000); + controlCostPerConversion_ = 0D; onChanged(); return this; } - private double activeViewAudibleImpressionsRate_ ; + private double costPerConversionMarginOfError_ ; /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback, divided by the total number of impressions
-     * measurable for audibility.
+     * The margin of error when estimating the experiment's effect on cost per
+     * conversion.
+     *
+     * Together with `cost_per_conversion_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_per_conversion_change_point_estimate`.
      * 
* - * optional double active_view_audible_impressions_rate = 417; - * @return Whether the activeViewAudibleImpressionsRate field is set. + * optional double cost_per_conversion_margin_of_error = 447; + * @return Whether the costPerConversionMarginOfError field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleImpressionsRate() { - return ((bitField7_ & 0x00000001) != 0); + public boolean hasCostPerConversionMarginOfError() { + return ((bitField7_ & 0x10000000) != 0); } /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback, divided by the total number of impressions
-     * measurable for audibility.
+     * The margin of error when estimating the experiment's effect on cost per
+     * conversion.
+     *
+     * Together with `cost_per_conversion_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_per_conversion_change_point_estimate`.
      * 
* - * optional double active_view_audible_impressions_rate = 417; - * @return The activeViewAudibleImpressionsRate. + * optional double cost_per_conversion_margin_of_error = 447; + * @return The costPerConversionMarginOfError. */ @java.lang.Override - public double getActiveViewAudibleImpressionsRate() { - return activeViewAudibleImpressionsRate_; + public double getCostPerConversionMarginOfError() { + return costPerConversionMarginOfError_; } /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback, divided by the total number of impressions
-     * measurable for audibility.
+     * The margin of error when estimating the experiment's effect on cost per
+     * conversion.
+     *
+     * Together with `cost_per_conversion_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_per_conversion_change_point_estimate`.
      * 
* - * optional double active_view_audible_impressions_rate = 417; - * @param value The activeViewAudibleImpressionsRate to set. + * optional double cost_per_conversion_margin_of_error = 447; + * @param value The costPerConversionMarginOfError to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleImpressionsRate(double value) { + public Builder setCostPerConversionMarginOfError(double value) { - activeViewAudibleImpressionsRate_ = value; - bitField7_ |= 0x00000001; + costPerConversionMarginOfError_ = value; + bitField7_ |= 0x10000000; onChanged(); return this; } /** *
-     * The number of impressions that were audible (volume > 0%) at any point
-     * during the ad playback, divided by the total number of impressions
-     * measurable for audibility.
+     * The margin of error when estimating the experiment's effect on cost per
+     * conversion.
+     *
+     * Together with `cost_per_conversion_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_per_conversion_change_point_estimate`.
      * 
* - * optional double active_view_audible_impressions_rate = 417; + * optional double cost_per_conversion_margin_of_error = 447; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleImpressionsRate() { - bitField7_ = (bitField7_ & ~0x00000001); - activeViewAudibleImpressionsRate_ = 0D; + public Builder clearCostPerConversionMarginOfError() { + bitField7_ = (bitField7_ & ~0x10000000); + costPerConversionMarginOfError_ = 0D; onChanged(); return this; } - private long activeViewAudibleTwoSecondsImpressions_ ; + private double costPerConversionPValue_ ; /** *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative).
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost per conversion. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost per conversion, is 3%.
      * 
* - * optional int64 active_view_audible_two_seconds_impressions = 418; - * @return Whether the activeViewAudibleTwoSecondsImpressions field is set. + * optional double cost_per_conversion_p_value = 448; + * @return Whether the costPerConversionPValue field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleTwoSecondsImpressions() { - return ((bitField7_ & 0x00000002) != 0); + public boolean hasCostPerConversionPValue() { + return ((bitField7_ & 0x20000000) != 0); } /** *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative).
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost per conversion. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost per conversion, is 3%.
      * 
* - * optional int64 active_view_audible_two_seconds_impressions = 418; - * @return The activeViewAudibleTwoSecondsImpressions. + * optional double cost_per_conversion_p_value = 448; + * @return The costPerConversionPValue. */ @java.lang.Override - public long getActiveViewAudibleTwoSecondsImpressions() { - return activeViewAudibleTwoSecondsImpressions_; + public double getCostPerConversionPValue() { + return costPerConversionPValue_; } /** - *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative).
+     * 
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost per conversion. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost per conversion, is 3%.
      * 
* - * optional int64 active_view_audible_two_seconds_impressions = 418; - * @param value The activeViewAudibleTwoSecondsImpressions to set. + * optional double cost_per_conversion_p_value = 448; + * @param value The costPerConversionPValue to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleTwoSecondsImpressions(long value) { + public Builder setCostPerConversionPValue(double value) { - activeViewAudibleTwoSecondsImpressions_ = value; - bitField7_ |= 0x00000002; + costPerConversionPValue_ = value; + bitField7_ |= 0x20000000; onChanged(); return this; } /** *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative).
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost per conversion. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost per conversion, is 3%.
      * 
* - * optional int64 active_view_audible_two_seconds_impressions = 418; + * optional double cost_per_conversion_p_value = 448; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleTwoSecondsImpressions() { - bitField7_ = (bitField7_ & ~0x00000002); - activeViewAudibleTwoSecondsImpressions_ = 0L; + public Builder clearCostPerConversionPValue() { + bitField7_ = (bitField7_ & ~0x20000000); + costPerConversionPValue_ = 0D; onChanged(); return this; } - private double activeViewAudibleTwoSecondsImpressionsRate_ ; + private double costPerConversionChangePointEstimate_ ; /** *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on cost per
+     * conversion change.
+     *
+     * Together with `cost_per_conversion_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_per_conversion_change_point_estimate -
+     * cost_per_conversion_margin_of_error,
+     * cost_per_conversion_change_point_estimate +
+     * cost_per_conversion_margin_of_error)`.
      * 
* - * optional double active_view_audible_two_seconds_impressions_rate = 419; - * @return Whether the activeViewAudibleTwoSecondsImpressionsRate field is set. + * optional double cost_per_conversion_change_point_estimate = 449; + * @return Whether the costPerConversionChangePointEstimate field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleTwoSecondsImpressionsRate() { - return ((bitField7_ & 0x00000004) != 0); + public boolean hasCostPerConversionChangePointEstimate() { + return ((bitField7_ & 0x40000000) != 0); } /** *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on cost per
+     * conversion change.
+     *
+     * Together with `cost_per_conversion_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_per_conversion_change_point_estimate -
+     * cost_per_conversion_margin_of_error,
+     * cost_per_conversion_change_point_estimate +
+     * cost_per_conversion_margin_of_error)`.
      * 
* - * optional double active_view_audible_two_seconds_impressions_rate = 419; - * @return The activeViewAudibleTwoSecondsImpressionsRate. + * optional double cost_per_conversion_change_point_estimate = 449; + * @return The costPerConversionChangePointEstimate. */ @java.lang.Override - public double getActiveViewAudibleTwoSecondsImpressionsRate() { - return activeViewAudibleTwoSecondsImpressionsRate_; + public double getCostPerConversionChangePointEstimate() { + return costPerConversionChangePointEstimate_; } /** *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on cost per
+     * conversion change.
+     *
+     * Together with `cost_per_conversion_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_per_conversion_change_point_estimate -
+     * cost_per_conversion_margin_of_error,
+     * cost_per_conversion_change_point_estimate +
+     * cost_per_conversion_margin_of_error)`.
      * 
* - * optional double active_view_audible_two_seconds_impressions_rate = 419; - * @param value The activeViewAudibleTwoSecondsImpressionsRate to set. + * optional double cost_per_conversion_change_point_estimate = 449; + * @param value The costPerConversionChangePointEstimate to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleTwoSecondsImpressionsRate(double value) { + public Builder setCostPerConversionChangePointEstimate(double value) { - activeViewAudibleTwoSecondsImpressionsRate_ = value; - bitField7_ |= 0x00000004; + costPerConversionChangePointEstimate_ = value; + bitField7_ |= 0x40000000; onChanged(); return this; } /** *
-     * The number of impressions that were audible for at least 2 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on cost per
+     * conversion change.
+     *
+     * Together with `cost_per_conversion_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_per_conversion_change_point_estimate -
+     * cost_per_conversion_margin_of_error,
+     * cost_per_conversion_change_point_estimate +
+     * cost_per_conversion_margin_of_error)`.
      * 
* - * optional double active_view_audible_two_seconds_impressions_rate = 419; + * optional double cost_per_conversion_change_point_estimate = 449; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleTwoSecondsImpressionsRate() { - bitField7_ = (bitField7_ & ~0x00000004); - activeViewAudibleTwoSecondsImpressionsRate_ = 0D; + public Builder clearCostPerConversionChangePointEstimate() { + bitField7_ = (bitField7_ & ~0x40000000); + costPerConversionChangePointEstimate_ = 0D; onChanged(); return this; } - private long activeViewAudibleThirtySecondsImpressions_ ; + private double controlConversions_ ; /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative).
+     * The conversions metric on the control arm of the experiment.
+     * The treatment conversions value can be selected by using
+     * `conversions`.
      * 
* - * optional int64 active_view_audible_thirty_seconds_impressions = 420; - * @return Whether the activeViewAudibleThirtySecondsImpressions field is set. + * optional double control_conversions = 450; + * @return Whether the controlConversions field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleThirtySecondsImpressions() { - return ((bitField7_ & 0x00000008) != 0); + public boolean hasControlConversions() { + return ((bitField7_ & 0x80000000) != 0); } /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative).
+     * The conversions metric on the control arm of the experiment.
+     * The treatment conversions value can be selected by using
+     * `conversions`.
      * 
* - * optional int64 active_view_audible_thirty_seconds_impressions = 420; - * @return The activeViewAudibleThirtySecondsImpressions. + * optional double control_conversions = 450; + * @return The controlConversions. */ @java.lang.Override - public long getActiveViewAudibleThirtySecondsImpressions() { - return activeViewAudibleThirtySecondsImpressions_; + public double getControlConversions() { + return controlConversions_; } /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative).
+     * The conversions metric on the control arm of the experiment.
+     * The treatment conversions value can be selected by using
+     * `conversions`.
      * 
* - * optional int64 active_view_audible_thirty_seconds_impressions = 420; - * @param value The activeViewAudibleThirtySecondsImpressions to set. + * optional double control_conversions = 450; + * @param value The controlConversions to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleThirtySecondsImpressions(long value) { + public Builder setControlConversions(double value) { - activeViewAudibleThirtySecondsImpressions_ = value; - bitField7_ |= 0x00000008; + controlConversions_ = value; + bitField7_ |= 0x80000000; onChanged(); return this; } /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative).
+     * The conversions metric on the control arm of the experiment.
+     * The treatment conversions value can be selected by using
+     * `conversions`.
      * 
* - * optional int64 active_view_audible_thirty_seconds_impressions = 420; + * optional double control_conversions = 450; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleThirtySecondsImpressions() { - bitField7_ = (bitField7_ & ~0x00000008); - activeViewAudibleThirtySecondsImpressions_ = 0L; + public Builder clearControlConversions() { + bitField7_ = (bitField7_ & ~0x80000000); + controlConversions_ = 0D; onChanged(); return this; } - private double activeViewAudibleThirtySecondsImpressionsRate_ ; + private double conversionsAbsoluteChangeMarginOfError_ ; /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the radius of the confidence
+     * interval, which is centered at
+     * `conversions_absolute_change_point_estimate`.
      * 
* - * optional double active_view_audible_thirty_seconds_impressions_rate = 421; - * @return Whether the activeViewAudibleThirtySecondsImpressionsRate field is set. + * optional double conversions_absolute_change_margin_of_error = 451; + * @return Whether the conversionsAbsoluteChangeMarginOfError field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleThirtySecondsImpressionsRate() { - return ((bitField7_ & 0x00000010) != 0); + public boolean hasConversionsAbsoluteChangeMarginOfError() { + return ((bitField8_ & 0x00000001) != 0); } /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the radius of the confidence
+     * interval, which is centered at
+     * `conversions_absolute_change_point_estimate`.
      * 
* - * optional double active_view_audible_thirty_seconds_impressions_rate = 421; - * @return The activeViewAudibleThirtySecondsImpressionsRate. + * optional double conversions_absolute_change_margin_of_error = 451; + * @return The conversionsAbsoluteChangeMarginOfError. */ @java.lang.Override - public double getActiveViewAudibleThirtySecondsImpressionsRate() { - return activeViewAudibleThirtySecondsImpressionsRate_; + public double getConversionsAbsoluteChangeMarginOfError() { + return conversionsAbsoluteChangeMarginOfError_; } /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the radius of the confidence
+     * interval, which is centered at
+     * `conversions_absolute_change_point_estimate`.
      * 
* - * optional double active_view_audible_thirty_seconds_impressions_rate = 421; - * @param value The activeViewAudibleThirtySecondsImpressionsRate to set. + * optional double conversions_absolute_change_margin_of_error = 451; + * @param value The conversionsAbsoluteChangeMarginOfError to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleThirtySecondsImpressionsRate(double value) { + public Builder setConversionsAbsoluteChangeMarginOfError(double value) { - activeViewAudibleThirtySecondsImpressionsRate_ = value; - bitField7_ |= 0x00000010; + conversionsAbsoluteChangeMarginOfError_ = value; + bitField8_ |= 0x00000001; onChanged(); return this; } /** *
-     * The number of impressions that were audible for at least 30 seconds
-     * (cumulative), divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the radius of the confidence
+     * interval, which is centered at
+     * `conversions_absolute_change_point_estimate`.
      * 
* - * optional double active_view_audible_thirty_seconds_impressions_rate = 421; + * optional double conversions_absolute_change_margin_of_error = 451; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleThirtySecondsImpressionsRate() { - bitField7_ = (bitField7_ & ~0x00000010); - activeViewAudibleThirtySecondsImpressionsRate_ = 0D; + public Builder clearConversionsAbsoluteChangeMarginOfError() { + bitField8_ = (bitField8_ & ~0x00000001); + conversionsAbsoluteChangeMarginOfError_ = 0D; onChanged(); return this; } - private double activeViewAudibleQuartileP25Rate_ ; + private double conversionsAbsoluteChangePValue_ ; /** *
-     * The number of impressions that were audible at the first quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversions absolute change. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversions absolute change, is
+     * 3%.
      * 
* - * optional double active_view_audible_quartile_p25_rate = 422; - * @return Whether the activeViewAudibleQuartileP25Rate field is set. + * optional double conversions_absolute_change_p_value = 452; + * @return Whether the conversionsAbsoluteChangePValue field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleQuartileP25Rate() { - return ((bitField7_ & 0x00000020) != 0); + public boolean hasConversionsAbsoluteChangePValue() { + return ((bitField8_ & 0x00000002) != 0); } /** *
-     * The number of impressions that were audible at the first quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversions absolute change. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversions absolute change, is
+     * 3%.
      * 
* - * optional double active_view_audible_quartile_p25_rate = 422; - * @return The activeViewAudibleQuartileP25Rate. + * optional double conversions_absolute_change_p_value = 452; + * @return The conversionsAbsoluteChangePValue. */ @java.lang.Override - public double getActiveViewAudibleQuartileP25Rate() { - return activeViewAudibleQuartileP25Rate_; + public double getConversionsAbsoluteChangePValue() { + return conversionsAbsoluteChangePValue_; } /** *
-     * The number of impressions that were audible at the first quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversions absolute change. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversions absolute change, is
+     * 3%.
      * 
* - * optional double active_view_audible_quartile_p25_rate = 422; - * @param value The activeViewAudibleQuartileP25Rate to set. + * optional double conversions_absolute_change_p_value = 452; + * @param value The conversionsAbsoluteChangePValue to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleQuartileP25Rate(double value) { + public Builder setConversionsAbsoluteChangePValue(double value) { - activeViewAudibleQuartileP25Rate_ = value; - bitField7_ |= 0x00000020; + conversionsAbsoluteChangePValue_ = value; + bitField8_ |= 0x00000002; onChanged(); return this; } /** *
-     * The number of impressions that were audible at the first quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversions absolute change. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversions absolute change, is
+     * 3%.
      * 
* - * optional double active_view_audible_quartile_p25_rate = 422; + * optional double conversions_absolute_change_p_value = 452; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleQuartileP25Rate() { - bitField7_ = (bitField7_ & ~0x00000020); - activeViewAudibleQuartileP25Rate_ = 0D; + public Builder clearConversionsAbsoluteChangePValue() { + bitField8_ = (bitField8_ & ~0x00000002); + conversionsAbsoluteChangePValue_ = 0D; onChanged(); return this; } - private double activeViewAudibleQuartileP50Rate_ ; + private double conversionsAbsoluteChangePointEstimate_ ; /** *
-     * The number of impressions that were audible at the second quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the point estimate, which is
+     * the center of the confidence interval:
+     * `(conversions_absolute_change_point_estimate -
+     * conversions_absolute_change_margin_of_error,
+     * conversions_absolute_change_point_estimate +
+     * conversions_absolute_change_margin_of_error)`.
      * 
* - * optional double active_view_audible_quartile_p50_rate = 423; - * @return Whether the activeViewAudibleQuartileP50Rate field is set. + * optional double conversions_absolute_change_point_estimate = 453; + * @return Whether the conversionsAbsoluteChangePointEstimate field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleQuartileP50Rate() { - return ((bitField7_ & 0x00000040) != 0); + public boolean hasConversionsAbsoluteChangePointEstimate() { + return ((bitField8_ & 0x00000004) != 0); } /** *
-     * The number of impressions that were audible at the second quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the point estimate, which is
+     * the center of the confidence interval:
+     * `(conversions_absolute_change_point_estimate -
+     * conversions_absolute_change_margin_of_error,
+     * conversions_absolute_change_point_estimate +
+     * conversions_absolute_change_margin_of_error)`.
      * 
* - * optional double active_view_audible_quartile_p50_rate = 423; - * @return The activeViewAudibleQuartileP50Rate. + * optional double conversions_absolute_change_point_estimate = 453; + * @return The conversionsAbsoluteChangePointEstimate. */ @java.lang.Override - public double getActiveViewAudibleQuartileP50Rate() { - return activeViewAudibleQuartileP50Rate_; + public double getConversionsAbsoluteChangePointEstimate() { + return conversionsAbsoluteChangePointEstimate_; } /** *
-     * The number of impressions that were audible at the second quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the point estimate, which is
+     * the center of the confidence interval:
+     * `(conversions_absolute_change_point_estimate -
+     * conversions_absolute_change_margin_of_error,
+     * conversions_absolute_change_point_estimate +
+     * conversions_absolute_change_margin_of_error)`.
      * 
* - * optional double active_view_audible_quartile_p50_rate = 423; - * @param value The activeViewAudibleQuartileP50Rate to set. + * optional double conversions_absolute_change_point_estimate = 453; + * @param value The conversionsAbsoluteChangePointEstimate to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleQuartileP50Rate(double value) { + public Builder setConversionsAbsoluteChangePointEstimate(double value) { - activeViewAudibleQuartileP50Rate_ = value; - bitField7_ |= 0x00000040; + conversionsAbsoluteChangePointEstimate_ = value; + bitField8_ |= 0x00000004; onChanged(); return this; } /** *
-     * The number of impressions that were audible at the second quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The point estimate when estimating the experiment's effect on conversions
+     * absolute change.
+     *
+     * Together with `conversions_absolute_change_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment - control). This field specifies the point estimate, which is
+     * the center of the confidence interval:
+     * `(conversions_absolute_change_point_estimate -
+     * conversions_absolute_change_margin_of_error,
+     * conversions_absolute_change_point_estimate +
+     * conversions_absolute_change_margin_of_error)`.
      * 
* - * optional double active_view_audible_quartile_p50_rate = 423; + * optional double conversions_absolute_change_point_estimate = 453; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleQuartileP50Rate() { - bitField7_ = (bitField7_ & ~0x00000040); - activeViewAudibleQuartileP50Rate_ = 0D; + public Builder clearConversionsAbsoluteChangePointEstimate() { + bitField8_ = (bitField8_ & ~0x00000004); + conversionsAbsoluteChangePointEstimate_ = 0D; onChanged(); return this; } - private double activeViewAudibleQuartileP75Rate_ ; + private double controlConversionValuePerCost_ ; /** *
-     * The number of impressions that were audible at the third quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The conversion value per cost metric on the control arm of the
+     * experiment. The treatment conversion value per cost value can be
+     * selected by using `conversions_value_per_cost`.
      * 
* - * optional double active_view_audible_quartile_p75_rate = 424; - * @return Whether the activeViewAudibleQuartileP75Rate field is set. + * optional double control_conversion_value_per_cost = 454; + * @return Whether the controlConversionValuePerCost field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleQuartileP75Rate() { - return ((bitField7_ & 0x00000080) != 0); + public boolean hasControlConversionValuePerCost() { + return ((bitField8_ & 0x00000008) != 0); } /** *
-     * The number of impressions that were audible at the third quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The conversion value per cost metric on the control arm of the
+     * experiment. The treatment conversion value per cost value can be
+     * selected by using `conversions_value_per_cost`.
      * 
* - * optional double active_view_audible_quartile_p75_rate = 424; - * @return The activeViewAudibleQuartileP75Rate. + * optional double control_conversion_value_per_cost = 454; + * @return The controlConversionValuePerCost. */ @java.lang.Override - public double getActiveViewAudibleQuartileP75Rate() { - return activeViewAudibleQuartileP75Rate_; + public double getControlConversionValuePerCost() { + return controlConversionValuePerCost_; } /** *
-     * The number of impressions that were audible at the third quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The conversion value per cost metric on the control arm of the
+     * experiment. The treatment conversion value per cost value can be
+     * selected by using `conversions_value_per_cost`.
      * 
* - * optional double active_view_audible_quartile_p75_rate = 424; - * @param value The activeViewAudibleQuartileP75Rate to set. + * optional double control_conversion_value_per_cost = 454; + * @param value The controlConversionValuePerCost to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleQuartileP75Rate(double value) { + public Builder setControlConversionValuePerCost(double value) { - activeViewAudibleQuartileP75Rate_ = value; - bitField7_ |= 0x00000080; + controlConversionValuePerCost_ = value; + bitField8_ |= 0x00000008; onChanged(); return this; } /** *
-     * The number of impressions that were audible at the third quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The conversion value per cost metric on the control arm of the
+     * experiment. The treatment conversion value per cost value can be
+     * selected by using `conversions_value_per_cost`.
      * 
* - * optional double active_view_audible_quartile_p75_rate = 424; + * optional double control_conversion_value_per_cost = 454; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleQuartileP75Rate() { - bitField7_ = (bitField7_ & ~0x00000080); - activeViewAudibleQuartileP75Rate_ = 0D; + public Builder clearControlConversionValuePerCost() { + bitField8_ = (bitField8_ & ~0x00000008); + controlConversionValuePerCost_ = 0D; onChanged(); return this; } - private double activeViewAudibleQuartileP100Rate_ ; + private double conversionValuePerCostMarginOfError_ ; /** *
-     * The number of impressions that were audible at the fourth quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value per cost.
+     *
+     * Together with `conversion_value_per_cost_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_per_cost_change_point_estimate`.
      * 
* - * optional double active_view_audible_quartile_p100_rate = 425; - * @return Whether the activeViewAudibleQuartileP100Rate field is set. + * optional double conversion_value_per_cost_margin_of_error = 455; + * @return Whether the conversionValuePerCostMarginOfError field is set. */ @java.lang.Override - public boolean hasActiveViewAudibleQuartileP100Rate() { - return ((bitField7_ & 0x00000100) != 0); + public boolean hasConversionValuePerCostMarginOfError() { + return ((bitField8_ & 0x00000010) != 0); } /** *
-     * The number of impressions that were audible at the fourth quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value per cost.
+     *
+     * Together with `conversion_value_per_cost_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_per_cost_change_point_estimate`.
      * 
* - * optional double active_view_audible_quartile_p100_rate = 425; - * @return The activeViewAudibleQuartileP100Rate. + * optional double conversion_value_per_cost_margin_of_error = 455; + * @return The conversionValuePerCostMarginOfError. */ @java.lang.Override - public double getActiveViewAudibleQuartileP100Rate() { - return activeViewAudibleQuartileP100Rate_; + public double getConversionValuePerCostMarginOfError() { + return conversionValuePerCostMarginOfError_; } /** *
-     * The number of impressions that were audible at the fourth quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value per cost.
+     *
+     * Together with `conversion_value_per_cost_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_per_cost_change_point_estimate`.
      * 
* - * optional double active_view_audible_quartile_p100_rate = 425; - * @param value The activeViewAudibleQuartileP100Rate to set. + * optional double conversion_value_per_cost_margin_of_error = 455; + * @param value The conversionValuePerCostMarginOfError to set. * @return This builder for chaining. */ - public Builder setActiveViewAudibleQuartileP100Rate(double value) { + public Builder setConversionValuePerCostMarginOfError(double value) { - activeViewAudibleQuartileP100Rate_ = value; - bitField7_ |= 0x00000100; + conversionValuePerCostMarginOfError_ = value; + bitField8_ |= 0x00000010; onChanged(); return this; } /** *
-     * The number of impressions that were audible at the fourth quartile of the
-     * ad playback, divided by the total number of impressions measurable for
-     * audibility.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value per cost.
+     *
+     * Together with `conversion_value_per_cost_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_per_cost_change_point_estimate`.
      * 
* - * optional double active_view_audible_quartile_p100_rate = 425; + * optional double conversion_value_per_cost_margin_of_error = 455; * @return This builder for chaining. */ - public Builder clearActiveViewAudibleQuartileP100Rate() { - bitField7_ = (bitField7_ & ~0x00000100); - activeViewAudibleQuartileP100Rate_ = 0D; + public Builder clearConversionValuePerCostMarginOfError() { + bitField8_ = (bitField8_ & ~0x00000010); + conversionValuePerCostMarginOfError_ = 0D; onChanged(); return this; } - private long biddableIndirectInstallFirstInAppConversionMicros_ ; + private double conversionValuePerCostPValue_ ; /** *
-     * The number of biddable first in app conversions where the app install was
-     * driven by interaction with a web campaign.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value per cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value per cost, is 3%.
      * 
* - * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; - * @return Whether the biddableIndirectInstallFirstInAppConversionMicros field is set. + * optional double conversion_value_per_cost_p_value = 456; + * @return Whether the conversionValuePerCostPValue field is set. */ @java.lang.Override - public boolean hasBiddableIndirectInstallFirstInAppConversionMicros() { - return ((bitField7_ & 0x00000200) != 0); + public boolean hasConversionValuePerCostPValue() { + return ((bitField8_ & 0x00000020) != 0); } /** *
-     * The number of biddable first in app conversions where the app install was
-     * driven by interaction with a web campaign.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value per cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value per cost, is 3%.
      * 
* - * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; - * @return The biddableIndirectInstallFirstInAppConversionMicros. + * optional double conversion_value_per_cost_p_value = 456; + * @return The conversionValuePerCostPValue. */ @java.lang.Override - public long getBiddableIndirectInstallFirstInAppConversionMicros() { - return biddableIndirectInstallFirstInAppConversionMicros_; + public double getConversionValuePerCostPValue() { + return conversionValuePerCostPValue_; } /** *
-     * The number of biddable first in app conversions where the app install was
-     * driven by interaction with a web campaign.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value per cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value per cost, is 3%.
      * 
* - * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; - * @param value The biddableIndirectInstallFirstInAppConversionMicros to set. + * optional double conversion_value_per_cost_p_value = 456; + * @param value The conversionValuePerCostPValue to set. * @return This builder for chaining. */ - public Builder setBiddableIndirectInstallFirstInAppConversionMicros(long value) { + public Builder setConversionValuePerCostPValue(double value) { - biddableIndirectInstallFirstInAppConversionMicros_ = value; - bitField7_ |= 0x00000200; + conversionValuePerCostPValue_ = value; + bitField8_ |= 0x00000020; onChanged(); return this; } /** *
-     * The number of biddable first in app conversions where the app install was
-     * driven by interaction with a web campaign.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value per cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value per cost, is 3%.
      * 
* - * optional int64 biddable_indirect_install_first_in_app_conversion_micros = 426; + * optional double conversion_value_per_cost_p_value = 456; * @return This builder for chaining. */ - public Builder clearBiddableIndirectInstallFirstInAppConversionMicros() { - bitField7_ = (bitField7_ & ~0x00000200); - biddableIndirectInstallFirstInAppConversionMicros_ = 0L; + public Builder clearConversionValuePerCostPValue() { + bitField8_ = (bitField8_ & ~0x00000020); + conversionValuePerCostPValue_ = 0D; onChanged(); return this; } - private double allAverageCartSize_ ; + private double conversionValuePerCostChangePointEstimate_ ; /** *
-     * All average cart size is the average number of products in each order
-     * attributed to your ads. Includes the amount from the average_cart_size
-     * metric, plus avg. cart size from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them. It's calculated using
-     * product info from cart data to give more detail than conversion value
-     * alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value per cost change.
+     *
+     * Together with `conversion_value_per_cost_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_per_cost_change_point_estimate -
+     * conversion_value_per_cost_margin_of_error,
+     * conversion_value_per_cost_change_point_estimate +
+     * conversion_value_per_cost_margin_of_error)`.
      * 
* - * optional double all_average_cart_size = 427; - * @return Whether the allAverageCartSize field is set. + * optional double conversion_value_per_cost_change_point_estimate = 457; + * @return Whether the conversionValuePerCostChangePointEstimate field is set. */ @java.lang.Override - public boolean hasAllAverageCartSize() { - return ((bitField7_ & 0x00000400) != 0); + public boolean hasConversionValuePerCostChangePointEstimate() { + return ((bitField8_ & 0x00000040) != 0); } /** *
-     * All average cart size is the average number of products in each order
-     * attributed to your ads. Includes the amount from the average_cart_size
-     * metric, plus avg. cart size from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them. It's calculated using
-     * product info from cart data to give more detail than conversion value
-     * alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value per cost change.
+     *
+     * Together with `conversion_value_per_cost_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_per_cost_change_point_estimate -
+     * conversion_value_per_cost_margin_of_error,
+     * conversion_value_per_cost_change_point_estimate +
+     * conversion_value_per_cost_margin_of_error)`.
      * 
* - * optional double all_average_cart_size = 427; - * @return The allAverageCartSize. + * optional double conversion_value_per_cost_change_point_estimate = 457; + * @return The conversionValuePerCostChangePointEstimate. */ @java.lang.Override - public double getAllAverageCartSize() { - return allAverageCartSize_; + public double getConversionValuePerCostChangePointEstimate() { + return conversionValuePerCostChangePointEstimate_; } /** *
-     * All average cart size is the average number of products in each order
-     * attributed to your ads. Includes the amount from the average_cart_size
-     * metric, plus avg. cart size from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them. It's calculated using
-     * product info from cart data to give more detail than conversion value
-     * alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value per cost change.
+     *
+     * Together with `conversion_value_per_cost_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_per_cost_change_point_estimate -
+     * conversion_value_per_cost_margin_of_error,
+     * conversion_value_per_cost_change_point_estimate +
+     * conversion_value_per_cost_margin_of_error)`.
      * 
* - * optional double all_average_cart_size = 427; - * @param value The allAverageCartSize to set. + * optional double conversion_value_per_cost_change_point_estimate = 457; + * @param value The conversionValuePerCostChangePointEstimate to set. * @return This builder for chaining. */ - public Builder setAllAverageCartSize(double value) { + public Builder setConversionValuePerCostChangePointEstimate(double value) { - allAverageCartSize_ = value; - bitField7_ |= 0x00000400; + conversionValuePerCostChangePointEstimate_ = value; + bitField8_ |= 0x00000040; onChanged(); return this; } /** *
-     * All average cart size is the average number of products in each order
-     * attributed to your ads. Includes the amount from the average_cart_size
-     * metric, plus avg. cart size from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them. It's calculated using
-     * product info from cart data to give more detail than conversion value
-     * alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value per cost change.
+     *
+     * Together with `conversion_value_per_cost_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_per_cost_change_point_estimate -
+     * conversion_value_per_cost_margin_of_error,
+     * conversion_value_per_cost_change_point_estimate +
+     * conversion_value_per_cost_margin_of_error)`.
      * 
* - * optional double all_average_cart_size = 427; + * optional double conversion_value_per_cost_change_point_estimate = 457; * @return This builder for chaining. */ - public Builder clearAllAverageCartSize() { - bitField7_ = (bitField7_ & ~0x00000400); - allAverageCartSize_ = 0D; + public Builder clearConversionValuePerCostChangePointEstimate() { + bitField8_ = (bitField8_ & ~0x00000040); + conversionValuePerCostChangePointEstimate_ = 0D; onChanged(); return this; } - private long allAverageOrderValueMicros_ ; + private long controlCostMicros_ ; /** *
-     * All average order value is the average revenue you made per order
-     * attributed to your ads. Includes the amount from the average_order_value
-     * metric, plus avg. order value from all your conversion actions, even
-     * if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The cost metric on the control arm of the experiment.
+     * The treatment cost value can be selected by using `cost_micros`.
      * 
* - * optional int64 all_average_order_value_micros = 428; - * @return Whether the allAverageOrderValueMicros field is set. + * optional int64 control_cost_micros = 458; + * @return Whether the controlCostMicros field is set. */ @java.lang.Override - public boolean hasAllAverageOrderValueMicros() { - return ((bitField7_ & 0x00000800) != 0); + public boolean hasControlCostMicros() { + return ((bitField8_ & 0x00000080) != 0); } /** *
-     * All average order value is the average revenue you made per order
-     * attributed to your ads. Includes the amount from the average_order_value
-     * metric, plus avg. order value from all your conversion actions, even
-     * if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The cost metric on the control arm of the experiment.
+     * The treatment cost value can be selected by using `cost_micros`.
      * 
* - * optional int64 all_average_order_value_micros = 428; - * @return The allAverageOrderValueMicros. + * optional int64 control_cost_micros = 458; + * @return The controlCostMicros. */ @java.lang.Override - public long getAllAverageOrderValueMicros() { - return allAverageOrderValueMicros_; + public long getControlCostMicros() { + return controlCostMicros_; } /** *
-     * All average order value is the average revenue you made per order
-     * attributed to your ads. Includes the amount from the average_order_value
-     * metric, plus avg. order value from all your conversion actions, even
-     * if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The cost metric on the control arm of the experiment.
+     * The treatment cost value can be selected by using `cost_micros`.
      * 
* - * optional int64 all_average_order_value_micros = 428; - * @param value The allAverageOrderValueMicros to set. + * optional int64 control_cost_micros = 458; + * @param value The controlCostMicros to set. * @return This builder for chaining. */ - public Builder setAllAverageOrderValueMicros(long value) { + public Builder setControlCostMicros(long value) { - allAverageOrderValueMicros_ = value; - bitField7_ |= 0x00000800; + controlCostMicros_ = value; + bitField8_ |= 0x00000080; onChanged(); return this; } /** *
-     * All average order value is the average revenue you made per order
-     * attributed to your ads. Includes the amount from the average_order_value
-     * metric, plus avg. order value from all your conversion actions, even
-     * if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The cost metric on the control arm of the experiment.
+     * The treatment cost value can be selected by using `cost_micros`.
      * 
* - * optional int64 all_average_order_value_micros = 428; + * optional int64 control_cost_micros = 458; * @return This builder for chaining. */ - public Builder clearAllAverageOrderValueMicros() { - bitField7_ = (bitField7_ & ~0x00000800); - allAverageOrderValueMicros_ = 0L; + public Builder clearControlCostMicros() { + bitField8_ = (bitField8_ & ~0x00000080); + controlCostMicros_ = 0L; onChanged(); return this; } - private long allCostOfGoodsSoldMicros_ ; + private double costMicrosMarginOfError_ ; /** *
-     * All cost of goods sold is the total cost of the products you sold in orders
-     * attributed to your ads. Includes the amount from the
-     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * The margin of error when estimating the experiment's effect on cost.
+     *
+     * Together with `cost_micros_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_micros_change_point_estimate`.
      * 
* - * optional int64 all_cost_of_goods_sold_micros = 429; - * @return Whether the allCostOfGoodsSoldMicros field is set. + * optional double cost_micros_margin_of_error = 459; + * @return Whether the costMicrosMarginOfError field is set. */ @java.lang.Override - public boolean hasAllCostOfGoodsSoldMicros() { - return ((bitField7_ & 0x00001000) != 0); + public boolean hasCostMicrosMarginOfError() { + return ((bitField8_ & 0x00000100) != 0); } /** *
-     * All cost of goods sold is the total cost of the products you sold in orders
-     * attributed to your ads. Includes the amount from the
-     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * The margin of error when estimating the experiment's effect on cost.
+     *
+     * Together with `cost_micros_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_micros_change_point_estimate`.
      * 
* - * optional int64 all_cost_of_goods_sold_micros = 429; - * @return The allCostOfGoodsSoldMicros. + * optional double cost_micros_margin_of_error = 459; + * @return The costMicrosMarginOfError. */ @java.lang.Override - public long getAllCostOfGoodsSoldMicros() { - return allCostOfGoodsSoldMicros_; + public double getCostMicrosMarginOfError() { + return costMicrosMarginOfError_; } /** *
-     * All cost of goods sold is the total cost of the products you sold in orders
-     * attributed to your ads. Includes the amount from the
-     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * The margin of error when estimating the experiment's effect on cost.
+     *
+     * Together with `cost_micros_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_micros_change_point_estimate`.
      * 
* - * optional int64 all_cost_of_goods_sold_micros = 429; - * @param value The allCostOfGoodsSoldMicros to set. + * optional double cost_micros_margin_of_error = 459; + * @param value The costMicrosMarginOfError to set. * @return This builder for chaining. */ - public Builder setAllCostOfGoodsSoldMicros(long value) { + public Builder setCostMicrosMarginOfError(double value) { - allCostOfGoodsSoldMicros_ = value; - bitField7_ |= 0x00001000; + costMicrosMarginOfError_ = value; + bitField8_ |= 0x00000100; onChanged(); return this; } /** *
-     * All cost of goods sold is the total cost of the products you sold in orders
-     * attributed to your ads. Includes the amount from the
-     * cost_of_goods_sold_micros metric, plus cost of goods sold from all
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * The margin of error when estimating the experiment's effect on cost.
+     *
+     * Together with `cost_micros_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `cost_micros_change_point_estimate`.
      * 
* - * optional int64 all_cost_of_goods_sold_micros = 429; + * optional double cost_micros_margin_of_error = 459; * @return This builder for chaining. */ - public Builder clearAllCostOfGoodsSoldMicros() { - bitField7_ = (bitField7_ & ~0x00001000); - allCostOfGoodsSoldMicros_ = 0L; + public Builder clearCostMicrosMarginOfError() { + bitField8_ = (bitField8_ & ~0x00000100); + costMicrosMarginOfError_ = 0D; onChanged(); return this; } - private long allCrossSellCostOfGoodsSoldMicros_ ; + private double costMicrosPValue_ ; /** *
-     * All cross-sell cost of goods sold is the total cost of products sold as a
-     * result of advertising a different product. Includes the amount from the
-     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
-     * sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost, is 3%.
      * 
* - * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; - * @return Whether the allCrossSellCostOfGoodsSoldMicros field is set. + * optional double cost_micros_p_value = 460; + * @return Whether the costMicrosPValue field is set. */ @java.lang.Override - public boolean hasAllCrossSellCostOfGoodsSoldMicros() { - return ((bitField7_ & 0x00002000) != 0); + public boolean hasCostMicrosPValue() { + return ((bitField8_ & 0x00000200) != 0); } /** *
-     * All cross-sell cost of goods sold is the total cost of products sold as a
-     * result of advertising a different product. Includes the amount from the
-     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
-     * sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost, is 3%.
      * 
* - * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; - * @return The allCrossSellCostOfGoodsSoldMicros. + * optional double cost_micros_p_value = 460; + * @return The costMicrosPValue. */ @java.lang.Override - public long getAllCrossSellCostOfGoodsSoldMicros() { - return allCrossSellCostOfGoodsSoldMicros_; + public double getCostMicrosPValue() { + return costMicrosPValue_; } /** *
-     * All cross-sell cost of goods sold is the total cost of products sold as a
-     * result of advertising a different product. Includes the amount from the
-     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
-     * sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost, is 3%.
      * 
* - * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; - * @param value The allCrossSellCostOfGoodsSoldMicros to set. + * optional double cost_micros_p_value = 460; + * @param value The costMicrosPValue to set. * @return This builder for chaining. */ - public Builder setAllCrossSellCostOfGoodsSoldMicros(long value) { + public Builder setCostMicrosPValue(double value) { - allCrossSellCostOfGoodsSoldMicros_ = value; - bitField7_ |= 0x00002000; + costMicrosPValue_ = value; + bitField8_ |= 0x00000200; onChanged(); return this; } /** *
-     * All cross-sell cost of goods sold is the total cost of products sold as a
-     * result of advertising a different product. Includes the amount from the
-     * cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods
-     * sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * cost. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on cost, is 3%.
      * 
* - * optional int64 all_cross_sell_cost_of_goods_sold_micros = 430; + * optional double cost_micros_p_value = 460; * @return This builder for chaining. */ - public Builder clearAllCrossSellCostOfGoodsSoldMicros() { - bitField7_ = (bitField7_ & ~0x00002000); - allCrossSellCostOfGoodsSoldMicros_ = 0L; + public Builder clearCostMicrosPValue() { + bitField8_ = (bitField8_ & ~0x00000200); + costMicrosPValue_ = 0D; onChanged(); return this; } - private long allCrossSellGrossProfitMicros_ ; + private double costMicrosChangePointEstimate_ ; /** *
-     * All cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
-     * cross-sell gross profit from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on cost change.
+     *
+     * Together with `cost_micros_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+     * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
      * 
* - * optional int64 all_cross_sell_gross_profit_micros = 431; - * @return Whether the allCrossSellGrossProfitMicros field is set. + * optional double cost_micros_change_point_estimate = 461; + * @return Whether the costMicrosChangePointEstimate field is set. */ @java.lang.Override - public boolean hasAllCrossSellGrossProfitMicros() { - return ((bitField7_ & 0x00004000) != 0); + public boolean hasCostMicrosChangePointEstimate() { + return ((bitField8_ & 0x00000400) != 0); } /** *
-     * All cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
-     * cross-sell gross profit from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on cost change.
+     *
+     * Together with `cost_micros_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+     * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
      * 
* - * optional int64 all_cross_sell_gross_profit_micros = 431; - * @return The allCrossSellGrossProfitMicros. + * optional double cost_micros_change_point_estimate = 461; + * @return The costMicrosChangePointEstimate. */ @java.lang.Override - public long getAllCrossSellGrossProfitMicros() { - return allCrossSellGrossProfitMicros_; + public double getCostMicrosChangePointEstimate() { + return costMicrosChangePointEstimate_; } /** *
-     * All cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
-     * cross-sell gross profit from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on cost change.
+     *
+     * Together with `cost_micros_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+     * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
      * 
* - * optional int64 all_cross_sell_gross_profit_micros = 431; - * @param value The allCrossSellGrossProfitMicros to set. + * optional double cost_micros_change_point_estimate = 461; + * @param value The costMicrosChangePointEstimate to set. * @return This builder for chaining. */ - public Builder setAllCrossSellGrossProfitMicros(long value) { + public Builder setCostMicrosChangePointEstimate(double value) { - allCrossSellGrossProfitMicros_ = value; - bitField7_ |= 0x00004000; + costMicrosChangePointEstimate_ = value; + bitField8_ |= 0x00000400; onChanged(); return this; } /** *
-     * All cross-sell gross profit is the profit you made from products sold as a
-     * result of advertising a different product, minus cost of goods sold (COGS).
-     * Includes the amount from the cross_sell_gross_profit_micros metric, plus
-     * cross-sell gross profit from all your conversion actions, even if your
-     * campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on cost change.
+     *
+     * Together with `cost_micros_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+     * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
      * 
* - * optional int64 all_cross_sell_gross_profit_micros = 431; + * optional double cost_micros_change_point_estimate = 461; * @return This builder for chaining. */ - public Builder clearAllCrossSellGrossProfitMicros() { - bitField7_ = (bitField7_ & ~0x00004000); - allCrossSellGrossProfitMicros_ = 0L; + public Builder clearCostMicrosChangePointEstimate() { + bitField8_ = (bitField8_ & ~0x00000400); + costMicrosChangePointEstimate_ = 0D; onChanged(); return this; } - private long allCrossSellRevenueMicros_ ; + private long controlImpressions_ ; /** - *
-     * All cross-sell revenue is the total amount you made from products sold as
-     * a result of advertising a different product. Includes the amount from the
-     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * 
+     * The impressions metric on the control arm of the experiment.
+     * The treatment impressions value can be selected by using `impressions`.
      * 
* - * optional int64 all_cross_sell_revenue_micros = 432; - * @return Whether the allCrossSellRevenueMicros field is set. + * optional int64 control_impressions = 462; + * @return Whether the controlImpressions field is set. */ @java.lang.Override - public boolean hasAllCrossSellRevenueMicros() { - return ((bitField7_ & 0x00008000) != 0); + public boolean hasControlImpressions() { + return ((bitField8_ & 0x00000800) != 0); } /** *
-     * All cross-sell revenue is the total amount you made from products sold as
-     * a result of advertising a different product. Includes the amount from the
-     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * The impressions metric on the control arm of the experiment.
+     * The treatment impressions value can be selected by using `impressions`.
      * 
* - * optional int64 all_cross_sell_revenue_micros = 432; - * @return The allCrossSellRevenueMicros. + * optional int64 control_impressions = 462; + * @return The controlImpressions. */ @java.lang.Override - public long getAllCrossSellRevenueMicros() { - return allCrossSellRevenueMicros_; + public long getControlImpressions() { + return controlImpressions_; } /** *
-     * All cross-sell revenue is the total amount you made from products sold as
-     * a result of advertising a different product. Includes the amount from the
-     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * The impressions metric on the control arm of the experiment.
+     * The treatment impressions value can be selected by using `impressions`.
      * 
* - * optional int64 all_cross_sell_revenue_micros = 432; - * @param value The allCrossSellRevenueMicros to set. + * optional int64 control_impressions = 462; + * @param value The controlImpressions to set. * @return This builder for chaining. */ - public Builder setAllCrossSellRevenueMicros(long value) { + public Builder setControlImpressions(long value) { - allCrossSellRevenueMicros_ = value; - bitField7_ |= 0x00008000; + controlImpressions_ = value; + bitField8_ |= 0x00000800; onChanged(); return this; } /** *
-     * All cross-sell revenue is the total amount you made from products sold as
-     * a result of advertising a different product. Includes the amount from the
-     * cross_sell_revenue_micros metric, plus cross-sell revenue from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them. It's calculated using product info from cart data to give
-     * more detail than conversion value alone.
+     * The impressions metric on the control arm of the experiment.
+     * The treatment impressions value can be selected by using `impressions`.
      * 
* - * optional int64 all_cross_sell_revenue_micros = 432; + * optional int64 control_impressions = 462; * @return This builder for chaining. */ - public Builder clearAllCrossSellRevenueMicros() { - bitField7_ = (bitField7_ & ~0x00008000); - allCrossSellRevenueMicros_ = 0L; + public Builder clearControlImpressions() { + bitField8_ = (bitField8_ & ~0x00000800); + controlImpressions_ = 0L; onChanged(); return this; } - private double allCrossSellUnitsSold_ ; + private double impressionsMarginOfError_ ; /** *
-     * All cross-sell units sold is the total number of products sold as a result
-     * of advertising a different product. Includes the amount shown in the
-     * cross_sell_units_sold metric, plus cross-sell units sold from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `impressions_point_estimate`.
      * 
* - * optional double all_cross_sell_units_sold = 433; - * @return Whether the allCrossSellUnitsSold field is set. + * optional double impressions_margin_of_error = 463; + * @return Whether the impressionsMarginOfError field is set. */ @java.lang.Override - public boolean hasAllCrossSellUnitsSold() { - return ((bitField7_ & 0x00010000) != 0); + public boolean hasImpressionsMarginOfError() { + return ((bitField8_ & 0x00001000) != 0); } /** *
-     * All cross-sell units sold is the total number of products sold as a result
-     * of advertising a different product. Includes the amount shown in the
-     * cross_sell_units_sold metric, plus cross-sell units sold from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `impressions_point_estimate`.
      * 
* - * optional double all_cross_sell_units_sold = 433; - * @return The allCrossSellUnitsSold. + * optional double impressions_margin_of_error = 463; + * @return The impressionsMarginOfError. */ @java.lang.Override - public double getAllCrossSellUnitsSold() { - return allCrossSellUnitsSold_; + public double getImpressionsMarginOfError() { + return impressionsMarginOfError_; } /** *
-     * All cross-sell units sold is the total number of products sold as a result
-     * of advertising a different product. Includes the amount shown in the
-     * cross_sell_units_sold metric, plus cross-sell units sold from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `impressions_point_estimate`.
      * 
* - * optional double all_cross_sell_units_sold = 433; - * @param value The allCrossSellUnitsSold to set. + * optional double impressions_margin_of_error = 463; + * @param value The impressionsMarginOfError to set. * @return This builder for chaining. */ - public Builder setAllCrossSellUnitsSold(double value) { + public Builder setImpressionsMarginOfError(double value) { - allCrossSellUnitsSold_ = value; - bitField7_ |= 0x00010000; + impressionsMarginOfError_ = value; + bitField8_ |= 0x00001000; onChanged(); return this; } /** *
-     * All cross-sell units sold is the total number of products sold as a result
-     * of advertising a different product. Includes the amount shown in the
-     * cross_sell_units_sold metric, plus cross-sell units sold from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `impressions_point_estimate`.
      * 
* - * optional double all_cross_sell_units_sold = 433; + * optional double impressions_margin_of_error = 463; * @return This builder for chaining. */ - public Builder clearAllCrossSellUnitsSold() { - bitField7_ = (bitField7_ & ~0x00010000); - allCrossSellUnitsSold_ = 0D; + public Builder clearImpressionsMarginOfError() { + bitField8_ = (bitField8_ & ~0x00001000); + impressionsMarginOfError_ = 0D; onChanged(); return this; } - private double allGrossProfitMargin_ ; + private double impressionsPValue_ ; /** *
-     * All gross profit margin is the percentage gross profit you made from
-     * orders attributed to your ads, after taking out the cost of goods sold
-     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
-     * the amount from the gross_profit_margin metric, plus gross profit margin
-     * across all conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * impressions. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on impressions, is 3%.
      * 
* - * optional double all_gross_profit_margin = 434; - * @return Whether the allGrossProfitMargin field is set. + * optional double impressions_p_value = 464; + * @return Whether the impressionsPValue field is set. */ @java.lang.Override - public boolean hasAllGrossProfitMargin() { - return ((bitField7_ & 0x00020000) != 0); + public boolean hasImpressionsPValue() { + return ((bitField8_ & 0x00002000) != 0); } /** *
-     * All gross profit margin is the percentage gross profit you made from
-     * orders attributed to your ads, after taking out the cost of goods sold
-     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
-     * the amount from the gross_profit_margin metric, plus gross profit margin
-     * across all conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * impressions. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on impressions, is 3%.
      * 
* - * optional double all_gross_profit_margin = 434; - * @return The allGrossProfitMargin. + * optional double impressions_p_value = 464; + * @return The impressionsPValue. */ @java.lang.Override - public double getAllGrossProfitMargin() { - return allGrossProfitMargin_; + public double getImpressionsPValue() { + return impressionsPValue_; } /** *
-     * All gross profit margin is the percentage gross profit you made from
-     * orders attributed to your ads, after taking out the cost of goods sold
-     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
-     * the amount from the gross_profit_margin metric, plus gross profit margin
-     * across all conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * impressions. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on impressions, is 3%.
      * 
* - * optional double all_gross_profit_margin = 434; - * @param value The allGrossProfitMargin to set. + * optional double impressions_p_value = 464; + * @param value The impressionsPValue to set. * @return This builder for chaining. */ - public Builder setAllGrossProfitMargin(double value) { + public Builder setImpressionsPValue(double value) { - allGrossProfitMargin_ = value; - bitField7_ |= 0x00020000; + impressionsPValue_ = value; + bitField8_ |= 0x00002000; onChanged(); return this; } /** *
-     * All gross profit margin is the percentage gross profit you made from
-     * orders attributed to your ads, after taking out the cost of goods sold
-     * (COGS). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes
-     * the amount from the gross_profit_margin metric, plus gross profit margin
-     * across all conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * impressions. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on impressions, is 3%.
      * 
* - * optional double all_gross_profit_margin = 434; + * optional double impressions_p_value = 464; * @return This builder for chaining. */ - public Builder clearAllGrossProfitMargin() { - bitField7_ = (bitField7_ & ~0x00020000); - allGrossProfitMargin_ = 0D; + public Builder clearImpressionsPValue() { + bitField8_ = (bitField8_ & ~0x00002000); + impressionsPValue_ = 0D; onChanged(); return this; } - private long allGrossProfitMicros_ ; + private double impressionsPointEstimate_ ; /** *
-     * All gross profit is the total profit made from orders attributed to your
-     * ads minus the cost of goods sold (COGS). Includes the amount from the
-     * gross_profit_micros metric, plus gross profit from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(impressions_point_estimate - impressions_margin_of_error,
+     * impressions_point_estimate + impressions_margin_of_error)`.
      * 
* - * optional int64 all_gross_profit_micros = 435; - * @return Whether the allGrossProfitMicros field is set. + * optional double impressions_point_estimate = 465; + * @return Whether the impressionsPointEstimate field is set. */ @java.lang.Override - public boolean hasAllGrossProfitMicros() { - return ((bitField7_ & 0x00040000) != 0); + public boolean hasImpressionsPointEstimate() { + return ((bitField8_ & 0x00004000) != 0); } /** *
-     * All gross profit is the total profit made from orders attributed to your
-     * ads minus the cost of goods sold (COGS). Includes the amount from the
-     * gross_profit_micros metric, plus gross profit from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(impressions_point_estimate - impressions_margin_of_error,
+     * impressions_point_estimate + impressions_margin_of_error)`.
      * 
* - * optional int64 all_gross_profit_micros = 435; - * @return The allGrossProfitMicros. + * optional double impressions_point_estimate = 465; + * @return The impressionsPointEstimate. */ @java.lang.Override - public long getAllGrossProfitMicros() { - return allGrossProfitMicros_; + public double getImpressionsPointEstimate() { + return impressionsPointEstimate_; } /** *
-     * All gross profit is the total profit made from orders attributed to your
-     * ads minus the cost of goods sold (COGS). Includes the amount from the
-     * gross_profit_micros metric, plus gross profit from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(impressions_point_estimate - impressions_margin_of_error,
+     * impressions_point_estimate + impressions_margin_of_error)`.
      * 
* - * optional int64 all_gross_profit_micros = 435; - * @param value The allGrossProfitMicros to set. + * optional double impressions_point_estimate = 465; + * @param value The impressionsPointEstimate to set. * @return This builder for chaining. */ - public Builder setAllGrossProfitMicros(long value) { + public Builder setImpressionsPointEstimate(double value) { - allGrossProfitMicros_ = value; - bitField7_ |= 0x00040000; + impressionsPointEstimate_ = value; + bitField8_ |= 0x00004000; onChanged(); return this; } /** *
-     * All gross profit is the total profit made from orders attributed to your
-     * ads minus the cost of goods sold (COGS). Includes the amount from the
-     * gross_profit_micros metric, plus gross profit from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on impressions.
+     *
+     * Together with `impressions_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(impressions_point_estimate - impressions_margin_of_error,
+     * impressions_point_estimate + impressions_margin_of_error)`.
      * 
* - * optional int64 all_gross_profit_micros = 435; + * optional double impressions_point_estimate = 465; * @return This builder for chaining. */ - public Builder clearAllGrossProfitMicros() { - bitField7_ = (bitField7_ & ~0x00040000); - allGrossProfitMicros_ = 0L; + public Builder clearImpressionsPointEstimate() { + bitField8_ = (bitField8_ & ~0x00004000); + impressionsPointEstimate_ = 0D; onChanged(); return this; } - private long allLeadCostOfGoodsSoldMicros_ ; + private double clicksMarginOfError_ ; /** *
-     * All lead cost of goods sold is the total cost of products sold as a result
-     * of advertising the same product. Includes the amount shown in the
-     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
-     * all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at `clicks_point_estimate`.
      * 
* - * optional int64 all_lead_cost_of_goods_sold_micros = 436; - * @return Whether the allLeadCostOfGoodsSoldMicros field is set. + * optional double clicks_margin_of_error = 466; + * @return Whether the clicksMarginOfError field is set. */ @java.lang.Override - public boolean hasAllLeadCostOfGoodsSoldMicros() { - return ((bitField7_ & 0x00080000) != 0); + public boolean hasClicksMarginOfError() { + return ((bitField8_ & 0x00008000) != 0); } /** *
-     * All lead cost of goods sold is the total cost of products sold as a result
-     * of advertising the same product. Includes the amount shown in the
-     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
-     * all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at `clicks_point_estimate`.
      * 
* - * optional int64 all_lead_cost_of_goods_sold_micros = 436; - * @return The allLeadCostOfGoodsSoldMicros. + * optional double clicks_margin_of_error = 466; + * @return The clicksMarginOfError. */ @java.lang.Override - public long getAllLeadCostOfGoodsSoldMicros() { - return allLeadCostOfGoodsSoldMicros_; + public double getClicksMarginOfError() { + return clicksMarginOfError_; } /** *
-     * All lead cost of goods sold is the total cost of products sold as a result
-     * of advertising the same product. Includes the amount shown in the
-     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
-     * all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at `clicks_point_estimate`.
      * 
* - * optional int64 all_lead_cost_of_goods_sold_micros = 436; - * @param value The allLeadCostOfGoodsSoldMicros to set. + * optional double clicks_margin_of_error = 466; + * @param value The clicksMarginOfError to set. * @return This builder for chaining. */ - public Builder setAllLeadCostOfGoodsSoldMicros(long value) { + public Builder setClicksMarginOfError(double value) { - allLeadCostOfGoodsSoldMicros_ = value; - bitField7_ |= 0x00080000; + clicksMarginOfError_ = value; + bitField8_ |= 0x00008000; onChanged(); return this; } /** *
-     * All lead cost of goods sold is the total cost of products sold as a result
-     * of advertising the same product. Includes the amount shown in the
-     * lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from
-     * all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at `clicks_point_estimate`.
      * 
* - * optional int64 all_lead_cost_of_goods_sold_micros = 436; + * optional double clicks_margin_of_error = 466; * @return This builder for chaining. */ - public Builder clearAllLeadCostOfGoodsSoldMicros() { - bitField7_ = (bitField7_ & ~0x00080000); - allLeadCostOfGoodsSoldMicros_ = 0L; + public Builder clearClicksMarginOfError() { + bitField8_ = (bitField8_ & ~0x00008000); + clicksMarginOfError_ = 0D; onChanged(); return this; } - private long allLeadGrossProfitMicros_ ; + private double clicksPValue_ ; /** *
-     * All lead gross profit is the profit you made from products sold as a result
-     * of advertising the same product, minus cost of goods sold (COGS). Includes
-     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
-     * from all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * clicks. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on clicks, is 3%.
      * 
* - * optional int64 all_lead_gross_profit_micros = 437; - * @return Whether the allLeadGrossProfitMicros field is set. + * optional double clicks_p_value = 467; + * @return Whether the clicksPValue field is set. */ @java.lang.Override - public boolean hasAllLeadGrossProfitMicros() { - return ((bitField7_ & 0x00100000) != 0); + public boolean hasClicksPValue() { + return ((bitField8_ & 0x00010000) != 0); } /** *
-     * All lead gross profit is the profit you made from products sold as a result
-     * of advertising the same product, minus cost of goods sold (COGS). Includes
-     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
-     * from all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * clicks. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on clicks, is 3%.
      * 
* - * optional int64 all_lead_gross_profit_micros = 437; - * @return The allLeadGrossProfitMicros. + * optional double clicks_p_value = 467; + * @return The clicksPValue. */ @java.lang.Override - public long getAllLeadGrossProfitMicros() { - return allLeadGrossProfitMicros_; + public double getClicksPValue() { + return clicksPValue_; } /** *
-     * All lead gross profit is the profit you made from products sold as a result
-     * of advertising the same product, minus cost of goods sold (COGS). Includes
-     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
-     * from all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * clicks. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on clicks, is 3%.
      * 
* - * optional int64 all_lead_gross_profit_micros = 437; - * @param value The allLeadGrossProfitMicros to set. + * optional double clicks_p_value = 467; + * @param value The clicksPValue to set. * @return This builder for chaining. */ - public Builder setAllLeadGrossProfitMicros(long value) { + public Builder setClicksPValue(double value) { - allLeadGrossProfitMicros_ = value; - bitField7_ |= 0x00100000; + clicksPValue_ = value; + bitField8_ |= 0x00010000; onChanged(); return this; } /** *
-     * All lead gross profit is the profit you made from products sold as a result
-     * of advertising the same product, minus cost of goods sold (COGS). Includes
-     * the amount from the lead_gross_profit_micros metric, plus lead gross profit
-     * from all your conversion actions, even if your campaigns are not actively
-     * optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * clicks. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on clicks, is 3%.
      * 
* - * optional int64 all_lead_gross_profit_micros = 437; + * optional double clicks_p_value = 467; * @return This builder for chaining. */ - public Builder clearAllLeadGrossProfitMicros() { - bitField7_ = (bitField7_ & ~0x00100000); - allLeadGrossProfitMicros_ = 0L; + public Builder clearClicksPValue() { + bitField8_ = (bitField8_ & ~0x00010000); + clicksPValue_ = 0D; onChanged(); return this; } - private long allLeadRevenueMicros_ ; + private double clicksPointEstimate_ ; /** *
-     * All lead revenue is the total amount you made from products sold as a
-     * result of advertising the same product. Includes the amount shown in the
-     * lead_revenue_micros metric, plus lead revenue from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval: `(clicks_point_estimate -
+     * clicks_margin_of_error,
+     * clicks_point_estimate + clicks_margin_of_error)`.
      * 
* - * optional int64 all_lead_revenue_micros = 438; - * @return Whether the allLeadRevenueMicros field is set. + * optional double clicks_point_estimate = 468; + * @return Whether the clicksPointEstimate field is set. */ @java.lang.Override - public boolean hasAllLeadRevenueMicros() { - return ((bitField7_ & 0x00200000) != 0); + public boolean hasClicksPointEstimate() { + return ((bitField8_ & 0x00020000) != 0); } /** *
-     * All lead revenue is the total amount you made from products sold as a
-     * result of advertising the same product. Includes the amount shown in the
-     * lead_revenue_micros metric, plus lead revenue from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval: `(clicks_point_estimate -
+     * clicks_margin_of_error,
+     * clicks_point_estimate + clicks_margin_of_error)`.
      * 
* - * optional int64 all_lead_revenue_micros = 438; - * @return The allLeadRevenueMicros. + * optional double clicks_point_estimate = 468; + * @return The clicksPointEstimate. */ @java.lang.Override - public long getAllLeadRevenueMicros() { - return allLeadRevenueMicros_; + public double getClicksPointEstimate() { + return clicksPointEstimate_; } /** *
-     * All lead revenue is the total amount you made from products sold as a
-     * result of advertising the same product. Includes the amount shown in the
-     * lead_revenue_micros metric, plus lead revenue from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval: `(clicks_point_estimate -
+     * clicks_margin_of_error,
+     * clicks_point_estimate + clicks_margin_of_error)`.
      * 
* - * optional int64 all_lead_revenue_micros = 438; - * @param value The allLeadRevenueMicros to set. + * optional double clicks_point_estimate = 468; + * @param value The clicksPointEstimate to set. * @return This builder for chaining. */ - public Builder setAllLeadRevenueMicros(long value) { + public Builder setClicksPointEstimate(double value) { - allLeadRevenueMicros_ = value; - bitField7_ |= 0x00200000; + clicksPointEstimate_ = value; + bitField8_ |= 0x00020000; onChanged(); return this; } /** *
-     * All lead revenue is the total amount you made from products sold as a
-     * result of advertising the same product. Includes the amount shown in the
-     * lead_revenue_micros metric, plus lead revenue from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on clicks.
+     *
+     * Together with `clicks_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval: `(clicks_point_estimate -
+     * clicks_margin_of_error,
+     * clicks_point_estimate + clicks_margin_of_error)`.
      * 
* - * optional int64 all_lead_revenue_micros = 438; + * optional double clicks_point_estimate = 468; * @return This builder for chaining. */ - public Builder clearAllLeadRevenueMicros() { - bitField7_ = (bitField7_ & ~0x00200000); - allLeadRevenueMicros_ = 0L; + public Builder clearClicksPointEstimate() { + bitField8_ = (bitField8_ & ~0x00020000); + clicksPointEstimate_ = 0D; onChanged(); return this; } - private double allLeadUnitsSold_ ; + private double controlConversionValue_ ; /** *
-     * All lead units sold is the total number of products sold as a result of
-     * advertising the same product. Includes the amount shown in the
-     * lead_units_sold metric, plus lead units sold from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The conversion value metric on the control arm of the experiment.
+     * The treatment conversion value can be selected by using
+     * `conversions_value`.
      * 
* - * optional double all_lead_units_sold = 439; - * @return Whether the allLeadUnitsSold field is set. + * optional double control_conversion_value = 469; + * @return Whether the controlConversionValue field is set. */ @java.lang.Override - public boolean hasAllLeadUnitsSold() { - return ((bitField7_ & 0x00400000) != 0); + public boolean hasControlConversionValue() { + return ((bitField8_ & 0x00040000) != 0); } /** *
-     * All lead units sold is the total number of products sold as a result of
-     * advertising the same product. Includes the amount shown in the
-     * lead_units_sold metric, plus lead units sold from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The conversion value metric on the control arm of the experiment.
+     * The treatment conversion value can be selected by using
+     * `conversions_value`.
      * 
* - * optional double all_lead_units_sold = 439; - * @return The allLeadUnitsSold. + * optional double control_conversion_value = 469; + * @return The controlConversionValue. */ @java.lang.Override - public double getAllLeadUnitsSold() { - return allLeadUnitsSold_; + public double getControlConversionValue() { + return controlConversionValue_; } /** *
-     * All lead units sold is the total number of products sold as a result of
-     * advertising the same product. Includes the amount shown in the
-     * lead_units_sold metric, plus lead units sold from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The conversion value metric on the control arm of the experiment.
+     * The treatment conversion value can be selected by using
+     * `conversions_value`.
      * 
* - * optional double all_lead_units_sold = 439; - * @param value The allLeadUnitsSold to set. + * optional double control_conversion_value = 469; + * @param value The controlConversionValue to set. * @return This builder for chaining. */ - public Builder setAllLeadUnitsSold(double value) { + public Builder setControlConversionValue(double value) { - allLeadUnitsSold_ = value; - bitField7_ |= 0x00400000; + controlConversionValue_ = value; + bitField8_ |= 0x00040000; onChanged(); return this; } /** *
-     * All lead units sold is the total number of products sold as a result of
-     * advertising the same product. Includes the amount shown in the
-     * lead_units_sold metric, plus lead units sold from all your conversion
-     * actions, even if your campaigns are not actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The conversion value metric on the control arm of the experiment.
+     * The treatment conversion value can be selected by using
+     * `conversions_value`.
      * 
* - * optional double all_lead_units_sold = 439; + * optional double control_conversion_value = 469; * @return This builder for chaining. */ - public Builder clearAllLeadUnitsSold() { - bitField7_ = (bitField7_ & ~0x00400000); - allLeadUnitsSold_ = 0D; + public Builder clearControlConversionValue() { + bitField8_ = (bitField8_ & ~0x00040000); + controlConversionValue_ = 0D; onChanged(); return this; } - private double allOrders_ ; + private double conversionValueMarginOfError_ ; /** *
-     * All orders is total number of purchase conversions attributed to your ads.
-     * Includes the amount from the orders metric, plus orders from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value.
+     *
+     * Together with `conversion_value_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_change_point_estimate`.
      * 
* - * optional double all_orders = 440; - * @return Whether the allOrders field is set. + * optional double conversion_value_margin_of_error = 470; + * @return Whether the conversionValueMarginOfError field is set. */ @java.lang.Override - public boolean hasAllOrders() { - return ((bitField7_ & 0x00800000) != 0); + public boolean hasConversionValueMarginOfError() { + return ((bitField8_ & 0x00080000) != 0); } /** *
-     * All orders is total number of purchase conversions attributed to your ads.
-     * Includes the amount from the orders metric, plus orders from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value.
+     *
+     * Together with `conversion_value_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_change_point_estimate`.
      * 
* - * optional double all_orders = 440; - * @return The allOrders. + * optional double conversion_value_margin_of_error = 470; + * @return The conversionValueMarginOfError. */ @java.lang.Override - public double getAllOrders() { - return allOrders_; + public double getConversionValueMarginOfError() { + return conversionValueMarginOfError_; } /** *
-     * All orders is total number of purchase conversions attributed to your ads.
-     * Includes the amount from the orders metric, plus orders from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value.
+     *
+     * Together with `conversion_value_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_change_point_estimate`.
      * 
* - * optional double all_orders = 440; - * @param value The allOrders to set. + * optional double conversion_value_margin_of_error = 470; + * @param value The conversionValueMarginOfError to set. * @return This builder for chaining. */ - public Builder setAllOrders(double value) { + public Builder setConversionValueMarginOfError(double value) { - allOrders_ = value; - bitField7_ |= 0x00800000; + conversionValueMarginOfError_ = value; + bitField8_ |= 0x00080000; onChanged(); return this; } /** *
-     * All orders is total number of purchase conversions attributed to your ads.
-     * Includes the amount from the orders metric, plus orders from all your
-     * conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The margin of error when estimating the experiment's effect on
+     * conversion value.
+     *
+     * Together with `conversion_value_change_point_estimate`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the radius of the
+     * confidence interval, which is centered at
+     * `conversion_value_change_point_estimate`.
      * 
* - * optional double all_orders = 440; + * optional double conversion_value_margin_of_error = 470; * @return This builder for chaining. */ - public Builder clearAllOrders() { - bitField7_ = (bitField7_ & ~0x00800000); - allOrders_ = 0D; + public Builder clearConversionValueMarginOfError() { + bitField8_ = (bitField8_ & ~0x00080000); + conversionValueMarginOfError_ = 0D; onChanged(); return this; } - private long allRevenueMicros_ ; + private double conversionValuePValue_ ; /** *
-     * All revenue is the total you made from orders attributed to your ads.
-     * Includes the amount from the revenue_micros metric, plus revenue from all
-     * your conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value, is 3%.
      * 
* - * optional int64 all_revenue_micros = 441; - * @return Whether the allRevenueMicros field is set. + * optional double conversion_value_p_value = 471; + * @return Whether the conversionValuePValue field is set. */ @java.lang.Override - public boolean hasAllRevenueMicros() { - return ((bitField7_ & 0x01000000) != 0); + public boolean hasConversionValuePValue() { + return ((bitField8_ & 0x00100000) != 0); } /** *
-     * All revenue is the total you made from orders attributed to your ads.
-     * Includes the amount from the revenue_micros metric, plus revenue from all
-     * your conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value, is 3%.
      * 
* - * optional int64 all_revenue_micros = 441; - * @return The allRevenueMicros. + * optional double conversion_value_p_value = 471; + * @return The conversionValuePValue. */ @java.lang.Override - public long getAllRevenueMicros() { - return allRevenueMicros_; + public double getConversionValuePValue() { + return conversionValuePValue_; } /** *
-     * All revenue is the total you made from orders attributed to your ads.
-     * Includes the amount from the revenue_micros metric, plus revenue from all
-     * your conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value, is 3%.
      * 
* - * optional int64 all_revenue_micros = 441; - * @param value The allRevenueMicros to set. + * optional double conversion_value_p_value = 471; + * @param value The conversionValuePValue to set. * @return This builder for chaining. */ - public Builder setAllRevenueMicros(long value) { + public Builder setConversionValuePValue(double value) { - allRevenueMicros_ = value; - bitField7_ |= 0x01000000; + conversionValuePValue_ = value; + bitField8_ |= 0x00100000; onChanged(); return this; } /** *
-     * All revenue is the total you made from orders attributed to your ads.
-     * Includes the amount from the revenue_micros metric, plus revenue from all
-     * your conversion actions, even if your campaigns are not actively optimizing
-     * towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The p-value for the null hypothesis that the experiment has no effect on
+     * conversion value. Ranges from 0 to 1.
+     *
+     * Say if the p-value is 0.03, that means the probability of observing the
+     * data, if the experiment has no effect on conversion value, is 3%.
      * 
* - * optional int64 all_revenue_micros = 441; + * optional double conversion_value_p_value = 471; * @return This builder for chaining. */ - public Builder clearAllRevenueMicros() { - bitField7_ = (bitField7_ & ~0x01000000); - allRevenueMicros_ = 0L; + public Builder clearConversionValuePValue() { + bitField8_ = (bitField8_ & ~0x00100000); + conversionValuePValue_ = 0D; onChanged(); return this; } - private double allUnitsSold_ ; + private double conversionValueChangePointEstimate_ ; /** *
-     * All units sold is the total number of products sold from orders attributed
-     * to your ads. Includes the amount from the units_sold metric, plus
-     * units sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value change.
+     *
+     * Together with `conversion_value_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_change_point_estimate -
+     * conversion_value_margin_of_error,
+     * conversion_value_change_point_estimate +
+     * conversion_value_margin_of_error)`.
      * 
* - * optional double all_units_sold = 442; - * @return Whether the allUnitsSold field is set. + * optional double conversion_value_change_point_estimate = 472; + * @return Whether the conversionValueChangePointEstimate field is set. */ @java.lang.Override - public boolean hasAllUnitsSold() { - return ((bitField7_ & 0x02000000) != 0); + public boolean hasConversionValueChangePointEstimate() { + return ((bitField8_ & 0x00200000) != 0); } /** *
-     * All units sold is the total number of products sold from orders attributed
-     * to your ads. Includes the amount from the units_sold metric, plus
-     * units sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value change.
+     *
+     * Together with `conversion_value_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_change_point_estimate -
+     * conversion_value_margin_of_error,
+     * conversion_value_change_point_estimate +
+     * conversion_value_margin_of_error)`.
      * 
* - * optional double all_units_sold = 442; - * @return The allUnitsSold. + * optional double conversion_value_change_point_estimate = 472; + * @return The conversionValueChangePointEstimate. */ @java.lang.Override - public double getAllUnitsSold() { - return allUnitsSold_; + public double getConversionValueChangePointEstimate() { + return conversionValueChangePointEstimate_; } /** *
-     * All units sold is the total number of products sold from orders attributed
-     * to your ads. Includes the amount from the units_sold metric, plus
-     * units sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value change.
+     *
+     * Together with `conversion_value_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_change_point_estimate -
+     * conversion_value_margin_of_error,
+     * conversion_value_change_point_estimate +
+     * conversion_value_margin_of_error)`.
      * 
* - * optional double all_units_sold = 442; - * @param value The allUnitsSold to set. + * optional double conversion_value_change_point_estimate = 472; + * @param value The conversionValueChangePointEstimate to set. * @return This builder for chaining. */ - public Builder setAllUnitsSold(double value) { + public Builder setConversionValueChangePointEstimate(double value) { - allUnitsSold_ = value; - bitField7_ |= 0x02000000; + conversionValueChangePointEstimate_ = value; + bitField8_ |= 0x00200000; onChanged(); return this; } /** *
-     * All units sold is the total number of products sold from orders attributed
-     * to your ads. Includes the amount from the units_sold metric, plus
-     * units sold from all your conversion actions, even if your campaigns are not
-     * actively optimizing towards them.
-     * It's calculated using product info from cart data to give more detail than
-     * conversion value alone.
+     * The point estimate when estimating the experiment's effect on
+     * conversion value change.
+     *
+     * Together with `conversion_value_margin_of_error`,
+     * they describe a confidence interval with a prescribed confidence level
+     * for the difference being estimated. The quantity being estimated is
+     * (treatment / control - 1). This field specifies the point estimate, which
+     * is the center of the confidence interval:
+     * `(conversion_value_change_point_estimate -
+     * conversion_value_margin_of_error,
+     * conversion_value_change_point_estimate +
+     * conversion_value_margin_of_error)`.
      * 
* - * optional double all_units_sold = 442; + * optional double conversion_value_change_point_estimate = 472; * @return This builder for chaining. */ - public Builder clearAllUnitsSold() { - bitField7_ = (bitField7_ & ~0x02000000); - allUnitsSold_ = 0D; + public Builder clearConversionValueChangePointEstimate() { + bitField8_ = (bitField8_ & ~0x00200000); + conversionValueChangePointEstimate_ = 0D; onChanged(); return this; } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsOrBuilder.java index 8c0acc508..605015d8c 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsOrBuilder.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsOrBuilder.java @@ -999,6 +999,27 @@ public interface MetricsOrBuilder extends */ long getClicks(); + /** + *
+   * The number of clicks on the control arm of an experiment.
+   * The treatment clicks value can be selected by using `clicks`.
+   * 
+ * + * optional int64 control_clicks = 443; + * @return Whether the controlClicks field is set. + */ + boolean hasControlClicks(); + /** + *
+   * The number of clicks on the control arm of an experiment.
+   * The treatment clicks value can be selected by using `clicks`.
+   * 
+ * + * optional int64 control_clicks = 443; + * @return The controlClicks. + */ + long getControlClicks(); + /** *
    * The number of times your ad or your site's listing in the unpaid
@@ -6209,4 +6230,835 @@ public interface MetricsOrBuilder extends
    * @return The allUnitsSold.
    */
   double getAllUnitsSold();
+
+  /**
+   * 
+   * The cost per conversion metric on the control arm of the
+   * experiment. The treatment cost per conversion value can be
+   * selected by using `cost_per_conversion`.
+   * 
+ * + * optional double control_cost_per_conversion = 446; + * @return Whether the controlCostPerConversion field is set. + */ + boolean hasControlCostPerConversion(); + /** + *
+   * The cost per conversion metric on the control arm of the
+   * experiment. The treatment cost per conversion value can be
+   * selected by using `cost_per_conversion`.
+   * 
+ * + * optional double control_cost_per_conversion = 446; + * @return The controlCostPerConversion. + */ + double getControlCostPerConversion(); + + /** + *
+   * The margin of error when estimating the experiment's effect on cost per
+   * conversion.
+   *
+   * Together with `cost_per_conversion_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_per_conversion_change_point_estimate`.
+   * 
+ * + * optional double cost_per_conversion_margin_of_error = 447; + * @return Whether the costPerConversionMarginOfError field is set. + */ + boolean hasCostPerConversionMarginOfError(); + /** + *
+   * The margin of error when estimating the experiment's effect on cost per
+   * conversion.
+   *
+   * Together with `cost_per_conversion_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_per_conversion_change_point_estimate`.
+   * 
+ * + * optional double cost_per_conversion_margin_of_error = 447; + * @return The costPerConversionMarginOfError. + */ + double getCostPerConversionMarginOfError(); + + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost per conversion. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost per conversion, is 3%.
+   * 
+ * + * optional double cost_per_conversion_p_value = 448; + * @return Whether the costPerConversionPValue field is set. + */ + boolean hasCostPerConversionPValue(); + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost per conversion. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost per conversion, is 3%.
+   * 
+ * + * optional double cost_per_conversion_p_value = 448; + * @return The costPerConversionPValue. + */ + double getCostPerConversionPValue(); + + /** + *
+   * The point estimate when estimating the experiment's effect on cost per
+   * conversion change.
+   *
+   * Together with `cost_per_conversion_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_per_conversion_change_point_estimate -
+   * cost_per_conversion_margin_of_error,
+   * cost_per_conversion_change_point_estimate +
+   * cost_per_conversion_margin_of_error)`.
+   * 
+ * + * optional double cost_per_conversion_change_point_estimate = 449; + * @return Whether the costPerConversionChangePointEstimate field is set. + */ + boolean hasCostPerConversionChangePointEstimate(); + /** + *
+   * The point estimate when estimating the experiment's effect on cost per
+   * conversion change.
+   *
+   * Together with `cost_per_conversion_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_per_conversion_change_point_estimate -
+   * cost_per_conversion_margin_of_error,
+   * cost_per_conversion_change_point_estimate +
+   * cost_per_conversion_margin_of_error)`.
+   * 
+ * + * optional double cost_per_conversion_change_point_estimate = 449; + * @return The costPerConversionChangePointEstimate. + */ + double getCostPerConversionChangePointEstimate(); + + /** + *
+   * The conversions metric on the control arm of the experiment.
+   * The treatment conversions value can be selected by using
+   * `conversions`.
+   * 
+ * + * optional double control_conversions = 450; + * @return Whether the controlConversions field is set. + */ + boolean hasControlConversions(); + /** + *
+   * The conversions metric on the control arm of the experiment.
+   * The treatment conversions value can be selected by using
+   * `conversions`.
+   * 
+ * + * optional double control_conversions = 450; + * @return The controlConversions. + */ + double getControlConversions(); + + /** + *
+   * The margin of error when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the radius of the confidence
+   * interval, which is centered at
+   * `conversions_absolute_change_point_estimate`.
+   * 
+ * + * optional double conversions_absolute_change_margin_of_error = 451; + * @return Whether the conversionsAbsoluteChangeMarginOfError field is set. + */ + boolean hasConversionsAbsoluteChangeMarginOfError(); + /** + *
+   * The margin of error when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the radius of the confidence
+   * interval, which is centered at
+   * `conversions_absolute_change_point_estimate`.
+   * 
+ * + * optional double conversions_absolute_change_margin_of_error = 451; + * @return The conversionsAbsoluteChangeMarginOfError. + */ + double getConversionsAbsoluteChangeMarginOfError(); + + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversions absolute change. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversions absolute change, is
+   * 3%.
+   * 
+ * + * optional double conversions_absolute_change_p_value = 452; + * @return Whether the conversionsAbsoluteChangePValue field is set. + */ + boolean hasConversionsAbsoluteChangePValue(); + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversions absolute change. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversions absolute change, is
+   * 3%.
+   * 
+ * + * optional double conversions_absolute_change_p_value = 452; + * @return The conversionsAbsoluteChangePValue. + */ + double getConversionsAbsoluteChangePValue(); + + /** + *
+   * The point estimate when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the point estimate, which is
+   * the center of the confidence interval:
+   * `(conversions_absolute_change_point_estimate -
+   * conversions_absolute_change_margin_of_error,
+   * conversions_absolute_change_point_estimate +
+   * conversions_absolute_change_margin_of_error)`.
+   * 
+ * + * optional double conversions_absolute_change_point_estimate = 453; + * @return Whether the conversionsAbsoluteChangePointEstimate field is set. + */ + boolean hasConversionsAbsoluteChangePointEstimate(); + /** + *
+   * The point estimate when estimating the experiment's effect on conversions
+   * absolute change.
+   *
+   * Together with `conversions_absolute_change_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment - control). This field specifies the point estimate, which is
+   * the center of the confidence interval:
+   * `(conversions_absolute_change_point_estimate -
+   * conversions_absolute_change_margin_of_error,
+   * conversions_absolute_change_point_estimate +
+   * conversions_absolute_change_margin_of_error)`.
+   * 
+ * + * optional double conversions_absolute_change_point_estimate = 453; + * @return The conversionsAbsoluteChangePointEstimate. + */ + double getConversionsAbsoluteChangePointEstimate(); + + /** + *
+   * The conversion value per cost metric on the control arm of the
+   * experiment. The treatment conversion value per cost value can be
+   * selected by using `conversions_value_per_cost`.
+   * 
+ * + * optional double control_conversion_value_per_cost = 454; + * @return Whether the controlConversionValuePerCost field is set. + */ + boolean hasControlConversionValuePerCost(); + /** + *
+   * The conversion value per cost metric on the control arm of the
+   * experiment. The treatment conversion value per cost value can be
+   * selected by using `conversions_value_per_cost`.
+   * 
+ * + * optional double control_conversion_value_per_cost = 454; + * @return The controlConversionValuePerCost. + */ + double getControlConversionValuePerCost(); + + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value per cost.
+   *
+   * Together with `conversion_value_per_cost_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_per_cost_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_per_cost_margin_of_error = 455; + * @return Whether the conversionValuePerCostMarginOfError field is set. + */ + boolean hasConversionValuePerCostMarginOfError(); + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value per cost.
+   *
+   * Together with `conversion_value_per_cost_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_per_cost_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_per_cost_margin_of_error = 455; + * @return The conversionValuePerCostMarginOfError. + */ + double getConversionValuePerCostMarginOfError(); + + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value per cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value per cost, is 3%.
+   * 
+ * + * optional double conversion_value_per_cost_p_value = 456; + * @return Whether the conversionValuePerCostPValue field is set. + */ + boolean hasConversionValuePerCostPValue(); + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value per cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value per cost, is 3%.
+   * 
+ * + * optional double conversion_value_per_cost_p_value = 456; + * @return The conversionValuePerCostPValue. + */ + double getConversionValuePerCostPValue(); + + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value per cost change.
+   *
+   * Together with `conversion_value_per_cost_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_per_cost_change_point_estimate -
+   * conversion_value_per_cost_margin_of_error,
+   * conversion_value_per_cost_change_point_estimate +
+   * conversion_value_per_cost_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_per_cost_change_point_estimate = 457; + * @return Whether the conversionValuePerCostChangePointEstimate field is set. + */ + boolean hasConversionValuePerCostChangePointEstimate(); + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value per cost change.
+   *
+   * Together with `conversion_value_per_cost_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_per_cost_change_point_estimate -
+   * conversion_value_per_cost_margin_of_error,
+   * conversion_value_per_cost_change_point_estimate +
+   * conversion_value_per_cost_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_per_cost_change_point_estimate = 457; + * @return The conversionValuePerCostChangePointEstimate. + */ + double getConversionValuePerCostChangePointEstimate(); + + /** + *
+   * The cost metric on the control arm of the experiment.
+   * The treatment cost value can be selected by using `cost_micros`.
+   * 
+ * + * optional int64 control_cost_micros = 458; + * @return Whether the controlCostMicros field is set. + */ + boolean hasControlCostMicros(); + /** + *
+   * The cost metric on the control arm of the experiment.
+   * The treatment cost value can be selected by using `cost_micros`.
+   * 
+ * + * optional int64 control_cost_micros = 458; + * @return The controlCostMicros. + */ + long getControlCostMicros(); + + /** + *
+   * The margin of error when estimating the experiment's effect on cost.
+   *
+   * Together with `cost_micros_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_micros_change_point_estimate`.
+   * 
+ * + * optional double cost_micros_margin_of_error = 459; + * @return Whether the costMicrosMarginOfError field is set. + */ + boolean hasCostMicrosMarginOfError(); + /** + *
+   * The margin of error when estimating the experiment's effect on cost.
+   *
+   * Together with `cost_micros_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `cost_micros_change_point_estimate`.
+   * 
+ * + * optional double cost_micros_margin_of_error = 459; + * @return The costMicrosMarginOfError. + */ + double getCostMicrosMarginOfError(); + + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost, is 3%.
+   * 
+ * + * optional double cost_micros_p_value = 460; + * @return Whether the costMicrosPValue field is set. + */ + boolean hasCostMicrosPValue(); + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * cost. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on cost, is 3%.
+   * 
+ * + * optional double cost_micros_p_value = 460; + * @return The costMicrosPValue. + */ + double getCostMicrosPValue(); + + /** + *
+   * The point estimate when estimating the experiment's effect on cost change.
+   *
+   * Together with `cost_micros_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+   * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
+   * 
+ * + * optional double cost_micros_change_point_estimate = 461; + * @return Whether the costMicrosChangePointEstimate field is set. + */ + boolean hasCostMicrosChangePointEstimate(); + /** + *
+   * The point estimate when estimating the experiment's effect on cost change.
+   *
+   * Together with `cost_micros_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(cost_micros_change_point_estimate - cost_micros_margin_of_error,
+   * cost_micros_change_point_estimate + cost_micros_margin_of_error)`.
+   * 
+ * + * optional double cost_micros_change_point_estimate = 461; + * @return The costMicrosChangePointEstimate. + */ + double getCostMicrosChangePointEstimate(); + + /** + *
+   * The impressions metric on the control arm of the experiment.
+   * The treatment impressions value can be selected by using `impressions`.
+   * 
+ * + * optional int64 control_impressions = 462; + * @return Whether the controlImpressions field is set. + */ + boolean hasControlImpressions(); + /** + *
+   * The impressions metric on the control arm of the experiment.
+   * The treatment impressions value can be selected by using `impressions`.
+   * 
+ * + * optional int64 control_impressions = 462; + * @return The controlImpressions. + */ + long getControlImpressions(); + + /** + *
+   * The margin of error when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `impressions_point_estimate`.
+   * 
+ * + * optional double impressions_margin_of_error = 463; + * @return Whether the impressionsMarginOfError field is set. + */ + boolean hasImpressionsMarginOfError(); + /** + *
+   * The margin of error when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `impressions_point_estimate`.
+   * 
+ * + * optional double impressions_margin_of_error = 463; + * @return The impressionsMarginOfError. + */ + double getImpressionsMarginOfError(); + + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * impressions. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on impressions, is 3%.
+   * 
+ * + * optional double impressions_p_value = 464; + * @return Whether the impressionsPValue field is set. + */ + boolean hasImpressionsPValue(); + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * impressions. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on impressions, is 3%.
+   * 
+ * + * optional double impressions_p_value = 464; + * @return The impressionsPValue. + */ + double getImpressionsPValue(); + + /** + *
+   * The point estimate when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(impressions_point_estimate - impressions_margin_of_error,
+   * impressions_point_estimate + impressions_margin_of_error)`.
+   * 
+ * + * optional double impressions_point_estimate = 465; + * @return Whether the impressionsPointEstimate field is set. + */ + boolean hasImpressionsPointEstimate(); + /** + *
+   * The point estimate when estimating the experiment's effect on impressions.
+   *
+   * Together with `impressions_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(impressions_point_estimate - impressions_margin_of_error,
+   * impressions_point_estimate + impressions_margin_of_error)`.
+   * 
+ * + * optional double impressions_point_estimate = 465; + * @return The impressionsPointEstimate. + */ + double getImpressionsPointEstimate(); + + /** + *
+   * The margin of error when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at `clicks_point_estimate`.
+   * 
+ * + * optional double clicks_margin_of_error = 466; + * @return Whether the clicksMarginOfError field is set. + */ + boolean hasClicksMarginOfError(); + /** + *
+   * The margin of error when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at `clicks_point_estimate`.
+   * 
+ * + * optional double clicks_margin_of_error = 466; + * @return The clicksMarginOfError. + */ + double getClicksMarginOfError(); + + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * clicks. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on clicks, is 3%.
+   * 
+ * + * optional double clicks_p_value = 467; + * @return Whether the clicksPValue field is set. + */ + boolean hasClicksPValue(); + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * clicks. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on clicks, is 3%.
+   * 
+ * + * optional double clicks_p_value = 467; + * @return The clicksPValue. + */ + double getClicksPValue(); + + /** + *
+   * The point estimate when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval: `(clicks_point_estimate -
+   * clicks_margin_of_error,
+   * clicks_point_estimate + clicks_margin_of_error)`.
+   * 
+ * + * optional double clicks_point_estimate = 468; + * @return Whether the clicksPointEstimate field is set. + */ + boolean hasClicksPointEstimate(); + /** + *
+   * The point estimate when estimating the experiment's effect on clicks.
+   *
+   * Together with `clicks_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval: `(clicks_point_estimate -
+   * clicks_margin_of_error,
+   * clicks_point_estimate + clicks_margin_of_error)`.
+   * 
+ * + * optional double clicks_point_estimate = 468; + * @return The clicksPointEstimate. + */ + double getClicksPointEstimate(); + + /** + *
+   * The conversion value metric on the control arm of the experiment.
+   * The treatment conversion value can be selected by using
+   * `conversions_value`.
+   * 
+ * + * optional double control_conversion_value = 469; + * @return Whether the controlConversionValue field is set. + */ + boolean hasControlConversionValue(); + /** + *
+   * The conversion value metric on the control arm of the experiment.
+   * The treatment conversion value can be selected by using
+   * `conversions_value`.
+   * 
+ * + * optional double control_conversion_value = 469; + * @return The controlConversionValue. + */ + double getControlConversionValue(); + + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value.
+   *
+   * Together with `conversion_value_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_margin_of_error = 470; + * @return Whether the conversionValueMarginOfError field is set. + */ + boolean hasConversionValueMarginOfError(); + /** + *
+   * The margin of error when estimating the experiment's effect on
+   * conversion value.
+   *
+   * Together with `conversion_value_change_point_estimate`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the radius of the
+   * confidence interval, which is centered at
+   * `conversion_value_change_point_estimate`.
+   * 
+ * + * optional double conversion_value_margin_of_error = 470; + * @return The conversionValueMarginOfError. + */ + double getConversionValueMarginOfError(); + + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value, is 3%.
+   * 
+ * + * optional double conversion_value_p_value = 471; + * @return Whether the conversionValuePValue field is set. + */ + boolean hasConversionValuePValue(); + /** + *
+   * The p-value for the null hypothesis that the experiment has no effect on
+   * conversion value. Ranges from 0 to 1.
+   *
+   * Say if the p-value is 0.03, that means the probability of observing the
+   * data, if the experiment has no effect on conversion value, is 3%.
+   * 
+ * + * optional double conversion_value_p_value = 471; + * @return The conversionValuePValue. + */ + double getConversionValuePValue(); + + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value change.
+   *
+   * Together with `conversion_value_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_change_point_estimate -
+   * conversion_value_margin_of_error,
+   * conversion_value_change_point_estimate +
+   * conversion_value_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_change_point_estimate = 472; + * @return Whether the conversionValueChangePointEstimate field is set. + */ + boolean hasConversionValueChangePointEstimate(); + /** + *
+   * The point estimate when estimating the experiment's effect on
+   * conversion value change.
+   *
+   * Together with `conversion_value_margin_of_error`,
+   * they describe a confidence interval with a prescribed confidence level
+   * for the difference being estimated. The quantity being estimated is
+   * (treatment / control - 1). This field specifies the point estimate, which
+   * is the center of the confidence interval:
+   * `(conversion_value_change_point_estimate -
+   * conversion_value_margin_of_error,
+   * conversion_value_change_point_estimate +
+   * conversion_value_margin_of_error)`.
+   * 
+ * + * optional double conversion_value_change_point_estimate = 472; + * @return The conversionValueChangePointEstimate. + */ + double getConversionValueChangePointEstimate(); } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsProto.java index 9f422314f..faba764c5 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/MetricsProto.java @@ -50,7 +50,7 @@ public static void registerAllExtensions( "\032;google/ads/googleads/v24/enums/interac" + "tion_event_type.proto\0329google/ads/google" + "ads/v24/enums/quality_score_bucket.proto" + - "\"\306\240\001\n\007Metrics\0220\n\"absolute_top_impression" + + "\"\360\261\001\n\007Metrics\0220\n\"absolute_top_impression" + "_percentage\030\267\001 \001(\001H\000\210\001\001\022\035\n\017active_view_c" + "pm\030\270\001 \001(\001H\001\210\001\001\022\035\n\017active_view_ctr\030\271\001 \001(\001" + "H\002\210\001\001\022%\n\027active_view_impressions\030\272\001 \001(\003H" + @@ -97,481 +97,537 @@ public static void registerAllExtensions( "versions\030\377\001 \001(\001H&\210\001\001\022:\n,biddable_cohort_" + "app_post_install_conversions\030\372\002 \001(\001H\'\210\001\001" + "\022\033\n\rbenchmark_ctr\030\323\001 \001(\001H(\210\001\001\022\031\n\013bounce_" + - "rate\030\324\001 \001(\001H)\210\001\001\022\024\n\006clicks\030\203\001 \001(\003H*\210\001\001\022\035" + - "\n\017combined_clicks\030\234\001 \001(\003H+\210\001\001\022\'\n\031combine" + - "d_clicks_per_query\030\235\001 \001(\001H,\210\001\001\022\036\n\020combin" + - "ed_queries\030\236\001 \001(\003H-\210\001\001\0222\n$content_budget" + - "_lost_impression_share\030\237\001 \001(\001H.\210\001\001\022&\n\030co" + - "ntent_impression_share\030\240\001 \001(\001H/\210\001\001\0228\n*co" + - "nversion_last_received_request_date_time" + - "\030\241\001 \001(\tH0\210\001\001\022-\n\037conversion_last_conversi" + - "on_date\030\242\001 \001(\tH1\210\001\001\0220\n\"content_rank_lost" + - "_impression_share\030\243\001 \001(\001H2\210\001\001\0220\n\"convers" + - "ions_from_interactions_rate\030\244\001 \001(\001H3\210\001\001\022" + - "\037\n\021conversions_value\030\245\001 \001(\001H4\210\001\001\0222\n$conv" + - "ersions_value_by_conversion_date\030\362\001 \001(\001H" + - "5\210\001\001\022)\n\033new_customer_lifetime_value\030\245\002 \001" + - "(\001H6\210\001\001\022(\n\032conversions_value_per_cost\030\246\001" + - " \001(\001H7\210\001\001\022A\n3conversions_from_interactio" + - "ns_value_per_interaction\030\247\001 \001(\001H8\210\001\001\022\031\n\013" + - "conversions\030\250\001 \001(\001H9\210\001\001\022,\n\036conversions_b" + - "y_conversion_date\030\363\001 \001(\001H:\210\001\001\022\031\n\013cost_mi" + - "cros\030\251\001 \001(\003H;\210\001\001\022&\n\030cost_per_all_convers" + - "ions\030\252\001 \001(\001H<\210\001\001\022!\n\023cost_per_conversion\030" + - "\253\001 \001(\001H=\210\001\001\022:\n,cost_per_current_model_at" + - "tributed_conversion\030\254\001 \001(\001H>\210\001\001\022&\n\030cross" + - "_device_conversions\030\255\001 \001(\001H?\210\001\001\0229\n+cross" + - "_device_conversions_by_conversion_date\030\364" + - "\002 \001(\001H@\210\001\001\022,\n\036cross_device_conversions_v" + - "alue\030\375\001 \001(\001HA\210\001\001\0223\n%cross_device_convers" + - "ions_value_micros\030\270\002 \001(\003HB\210\001\001\022?\n1cross_d" + - "evice_conversions_value_by_conversion_da" + - "te\030\365\002 \001(\001HC\210\001\001\022\021\n\003ctr\030\256\001 \001(\001HD\210\001\001\0222\n$cur" + - "rent_model_attributed_conversions\030\257\001 \001(\001" + - "HE\210\001\001\022I\n;current_model_attributed_conver" + - "sions_from_interactions_rate\030\260\001 \001(\001HF\210\001\001" + - "\022Z\nLcurrent_model_attributed_conversions" + - "_from_interactions_value_per_interaction" + - "\030\261\001 \001(\001HG\210\001\001\0228\n*current_model_attributed" + - "_conversions_value\030\262\001 \001(\001HH\210\001\001\022A\n3curren" + - "t_model_attributed_conversions_value_per" + - "_cost\030\263\001 \001(\001HI\210\001\001\022\035\n\017engagement_rate\030\264\001 " + - "\001(\001HJ\210\001\001\022\031\n\013engagements\030\265\001 \001(\003HK\210\001\001\022-\n\037h" + - "otel_average_lead_value_micros\030\325\001 \001(\001HL\210" + - "\001\001\022*\n\034hotel_commission_rate_micros\030\200\002 \001(" + - "\003HM\210\001\001\022,\n\036hotel_expected_commission_cost" + - "\030\201\002 \001(\001HN\210\001\001\022/\n!hotel_price_difference_p" + - "ercentage\030\326\001 \001(\001HO\210\001\001\022(\n\032hotel_eligible_" + - "impressions\030\327\001 \001(\003HP\210\001\001\022t\n!historical_cr" + - "eative_quality_score\030P \001(\0162I.google.ads." + - "googleads.v24.enums.QualityScoreBucketEn" + - "um.QualityScoreBucket\022x\n%historical_land" + - "ing_page_quality_score\030Q \001(\0162I.google.ad" + - "s.googleads.v24.enums.QualityScoreBucket" + - "Enum.QualityScoreBucket\022&\n\030historical_qu" + - "ality_score\030\330\001 \001(\003HQ\210\001\001\022r\n\037historical_se" + - "arch_predicted_ctr\030S \001(\0162I.google.ads.go" + - "ogleads.v24.enums.QualityScoreBucketEnum" + - ".QualityScoreBucket\022\034\n\016gmail_forwards\030\331\001" + - " \001(\003HR\210\001\001\022\031\n\013gmail_saves\030\332\001 \001(\003HS\210\001\001\022$\n\026" + - "gmail_secondary_clicks\030\333\001 \001(\003HT\210\001\001\022*\n\034im" + - "pressions_from_store_reach\030\334\001 \001(\003HU\210\001\001\022\031" + - "\n\013impressions\030\335\001 \001(\003HV\210\001\001\022\036\n\020interaction" + - "_rate\030\336\001 \001(\001HW\210\001\001\022\032\n\014interactions\030\337\001 \001(\003" + - "HX\210\001\001\022n\n\027interaction_event_types\030d \003(\0162M" + - ".google.ads.googleads.v24.enums.Interact" + - "ionEventTypeEnum.InteractionEventType\022 \n" + - "\022invalid_click_rate\030\340\001 \001(\001HY\210\001\001\022\034\n\016inval" + - "id_clicks\030\341\001 \001(\003HZ\210\001\001\022(\n\032general_invalid" + - "_click_rate\030\362\002 \001(\001H[\210\001\001\022$\n\026general_inval" + - "id_clicks\030\363\002 \001(\003H\\\210\001\001\022\033\n\rmessage_chats\030\342" + - "\001 \001(\003H]\210\001\001\022!\n\023message_impressions\030\343\001 \001(\003" + - "H^\210\001\001\022\037\n\021message_chat_rate\030\344\001 \001(\001H_\210\001\001\022/" + - "\n!mobile_friendly_clicks_percentage\030\345\001 \001" + - "(\001H`\210\001\001\022\'\n\031optimization_score_uplift\030\367\001 " + - "\001(\001Ha\210\001\001\022$\n\026optimization_score_url\030\370\001 \001(" + - "\tHb\210\001\001\022\034\n\016organic_clicks\030\346\001 \001(\003Hc\210\001\001\022&\n\030" + - "organic_clicks_per_query\030\347\001 \001(\001Hd\210\001\001\022!\n\023" + - "organic_impressions\030\350\001 \001(\003He\210\001\001\022+\n\035organ" + - "ic_impressions_per_query\030\351\001 \001(\001Hf\210\001\001\022\035\n\017" + - "organic_queries\030\352\001 \001(\003Hg\210\001\001\022\"\n\024percent_n" + - "ew_visitors\030\353\001 \001(\001Hh\210\001\001\022\031\n\013phone_calls\030\354" + - "\001 \001(\003Hi\210\001\001\022\037\n\021phone_impressions\030\355\001 \001(\003Hj" + - "\210\001\001\022 \n\022phone_through_rate\030\356\001 \001(\001Hk\210\001\001\022\032\n" + - "\014relative_ctr\030\357\001 \001(\001Hl\210\001\001\0222\n$search_abso" + - "lute_top_impression_share\030\210\001 \001(\001Hm\210\001\001\022>\n" + - "0search_budget_lost_absolute_top_impress" + - "ion_share\030\211\001 \001(\001Hn\210\001\001\0221\n#search_budget_l" + - "ost_impression_share\030\212\001 \001(\001Ho\210\001\001\0225\n\'sear" + - "ch_budget_lost_top_impression_share\030\213\001 \001" + - "(\001Hp\210\001\001\022 \n\022search_click_share\030\214\001 \001(\001Hq\210\001" + - "\001\0221\n#search_exact_match_impression_share" + - "\030\215\001 \001(\001Hr\210\001\001\022%\n\027search_impression_share\030" + - "\216\001 \001(\001Hs\210\001\001\022<\n.search_rank_lost_absolute" + - "_top_impression_share\030\217\001 \001(\001Ht\210\001\001\022/\n!sea" + - "rch_rank_lost_impression_share\030\220\001 \001(\001Hu\210" + - "\001\001\0223\n%search_rank_lost_top_impression_sh" + - "are\030\221\001 \001(\001Hv\210\001\001\022)\n\033search_top_impression" + - "_share\030\222\001 \001(\001Hw\210\001\001\022O\n\rsearch_volume\030\247\002 \001" + - "(\01322.google.ads.googleads.v24.common.Sea" + - "rchVolumeRangeHx\210\001\001\022\031\n\013speed_score\030\223\001 \001(" + - "\003Hy\210\001\001\022\'\n\031average_target_cpa_micros\030\242\002 \001" + - "(\003Hz\210\001\001\022!\n\023average_target_roas\030\372\001 \001(\001H{\210" + - "\001\001\022\'\n\031top_impression_percentage\030\224\001 \001(\001H|" + - "\210\001\001\022>\n0valid_accelerated_mobile_pages_cl" + - "icks_percentage\030\225\001 \001(\001H}\210\001\001\022\'\n\031value_per" + - "_all_conversions\030\226\001 \001(\001H~\210\001\001\022:\n,value_pe" + - "r_all_conversions_by_conversion_date\030\364\001 " + - "\001(\001H\177\210\001\001\022#\n\024value_per_conversion\030\227\001 \001(\001H" + - "\200\001\210\001\001\0227\n(value_per_conversions_by_conver" + - "sion_date\030\365\001 \001(\001H\201\001\210\001\001\022<\n-value_per_curr" + - "ent_model_attributed_conversion\030\230\001 \001(\001H\202" + - "\001\210\001\001\022\'\n\030video_quartile_p100_rate\030\204\001 \001(\001H" + - "\203\001\210\001\001\022&\n\027video_quartile_p25_rate\030\205\001 \001(\001H" + - "\204\001\210\001\001\022&\n\027video_quartile_p50_rate\030\206\001 \001(\001H" + - "\205\001\210\001\001\022&\n\027video_quartile_p75_rate\030\207\001 \001(\001H" + - "\206\001\210\001\001\022\'\n\030video_trueview_view_rate\030\226\003 \001(\001" + - "H\207\001\210\001\001\022#\n\024video_trueview_views\030\227\003 \001(\003H\210\001" + - "\210\001\001\022\'\n\030view_through_conversions\030\233\001 \001(\003H\211" + - "\001\210\001\001\022\037\n\026sk_ad_network_installs\030\366\001 \001(\003\022(\n" + - "\037sk_ad_network_total_conversions\030\244\002 \001(\003\022" + - "#\n\032publisher_purchased_clicks\030\210\002 \001(\003\022!\n\030" + - "publisher_organic_clicks\030\211\002 \001(\003\022!\n\030publi" + - "sher_unknown_clicks\030\212\002 \001(\003\022@\n1all_conver" + - "sions_from_location_asset_click_to_call\030" + - "\213\002 \001(\001H\212\001\210\001\001\022=\n.all_conversions_from_loc" + - "ation_asset_directions\030\214\002 \001(\001H\213\001\210\001\001\0227\n(a" + - "ll_conversions_from_location_asset_menu\030" + - "\215\002 \001(\001H\214\001\210\001\001\0228\n)all_conversions_from_loc" + - "ation_asset_order\030\216\002 \001(\001H\215\001\210\001\001\022C\n4all_co" + - "nversions_from_location_asset_other_enga" + - "gement\030\217\002 \001(\001H\216\001\210\001\001\022?\n0all_conversions_f" + - "rom_location_asset_store_visits\030\220\002 \001(\001H\217" + - "\001\210\001\001\022:\n+all_conversions_from_location_as" + - "set_website\030\221\002 \001(\001H\220\001\210\001\001\022C\n4eligible_imp" + - "ressions_from_location_asset_store_reach" + - "\030\222\002 \001(\003H\221\001\210\001\001\022I\n:view_through_conversion" + - "s_from_location_asset_click_to_call\030\223\002 \001" + - "(\001H\222\001\210\001\001\022F\n7view_through_conversions_fro" + - "m_location_asset_directions\030\224\002 \001(\001H\223\001\210\001\001" + - "\022@\n1view_through_conversions_from_locati" + - "on_asset_menu\030\225\002 \001(\001H\224\001\210\001\001\022A\n2view_throu" + - "gh_conversions_from_location_asset_order" + - "\030\226\002 \001(\001H\225\001\210\001\001\022L\n=view_through_conversion" + - "s_from_location_asset_other_engagement\030\227" + - "\002 \001(\001H\226\001\210\001\001\022H\n9view_through_conversions_" + - "from_location_asset_store_visits\030\230\002 \001(\001H" + - "\227\001\210\001\001\022C\n4view_through_conversions_from_l" + - "ocation_asset_website\030\231\002 \001(\001H\230\001\210\001\001\022\025\n\006or" + - "ders\030\250\002 \001(\001H\231\001\210\001\001\022)\n\032average_order_value" + - "_micros\030\251\002 \001(\003H\232\001\210\001\001\022 \n\021average_cart_siz" + - "e\030\252\002 \001(\001H\233\001\210\001\001\022(\n\031cost_of_goods_sold_mic" + - "ros\030\253\002 \001(\003H\234\001\210\001\001\022\"\n\023gross_profit_micros\030" + - "\254\002 \001(\003H\235\001\210\001\001\022\"\n\023gross_profit_margin\030\255\002 \001" + - "(\001H\236\001\210\001\001\022\035\n\016revenue_micros\030\256\002 \001(\003H\237\001\210\001\001\022" + - "\031\n\nunits_sold\030\257\002 \001(\001H\240\001\210\001\001\0223\n$cross_sell" + - "_cost_of_goods_sold_micros\030\260\002 \001(\003H\241\001\210\001\001\022" + - "-\n\036cross_sell_gross_profit_micros\030\261\002 \001(\003" + - "H\242\001\210\001\001\022(\n\031cross_sell_revenue_micros\030\262\002 \001" + - "(\003H\243\001\210\001\001\022$\n\025cross_sell_units_sold\030\263\002 \001(\001" + - "H\244\001\210\001\001\022-\n\036lead_cost_of_goods_sold_micros" + - "\030\264\002 \001(\003H\245\001\210\001\001\022\'\n\030lead_gross_profit_micro" + - "s\030\265\002 \001(\003H\246\001\210\001\001\022\"\n\023lead_revenue_micros\030\266\002" + - " \001(\003H\247\001\210\001\001\022\036\n\017lead_units_sold\030\267\002 \001(\001H\250\001\210" + - "\001\001\022\033\n\014unique_users\030\277\002 \001(\003H\251\001\210\001\001\0224\n%avera" + - "ge_impression_frequency_per_user\030\300\002 \001(\001H" + - "\252\001\210\001\001\022$\n\025linked_entities_count\030\325\002 \001(\003H\253\001" + - "\210\001\001\022\037\n\026linked_sample_entities\030\326\002 \003(\t\022\'\n\030" + - "asset_pinned_total_count\030\334\002 \001(\003H\254\001\210\001\001\022:\n" + - "+asset_pinned_as_headline_position_one_c" + - "ount\030\335\002 \001(\003H\255\001\210\001\001\022:\n+asset_pinned_as_hea" + - "dline_position_two_count\030\336\002 \001(\003H\256\001\210\001\001\022<\n" + - "-asset_pinned_as_headline_position_three" + - "_count\030\337\002 \001(\003H\257\001\210\001\001\022=\n.asset_pinned_as_d" + - "escription_position_one_count\030\340\002 \001(\003H\260\001\210" + - "\001\001\022=\n.asset_pinned_as_description_positi" + - "on_two_count\030\341\002 \001(\003H\261\001\210\001\001\022C\n4store_visit" + - "s_last_click_model_attributed_conversion" + - "s\030\355\002 \001(\001H\262\001\210\001\001\022+\n\034results_conversions_pu" + - "rchase\030\356\002 \001(\001H\263\001\210\001\001\022/\n video_trueview_vi" + - "ew_rate_in_feed\030\230\003 \001(\001H\264\001\210\001\001\0221\n\"video_tr" + - "ueview_view_rate_in_stream\030\231\003 \001(\001H\265\001\210\001\001\022" + - ".\n\037video_trueview_view_rate_shorts\030\232\003 \001(" + - "\001H\266\001\210\001\001\022#\n\024coviewed_impressions\030\374\002 \001(\003H\267" + - "\001\210\001\001\022\"\n\023primary_impressions\030\375\002 \001(\003H\270\001\210\001\001" + - "\022E\n6platform_comparable_conversions_from" + - "_interactions_rate\030\376\002 \001(\001H\271\001\210\001\001\022.\n\037platf" + - "orm_comparable_conversions\030\377\002 \001(\001H\272\001\210\001\001\022" + - "4\n%platform_comparable_conversions_value" + - "\030\200\003 \001(\001H\273\001\210\001\001\022=\n.platform_comparable_con" + - "versions_value_per_cost\030\201\003 \001(\001H\274\001\210\001\001\022A\n2" + - "platform_comparable_conversions_by_conve" + - "rsion_date\030\202\003 \001(\001H\275\001\210\001\001\022G\n8platform_comp" + - "arable_conversions_value_by_conversion_d" + - "ate\030\203\003 \001(\001H\276\001\210\001\001\022V\nGplatform_comparable_" + - "conversions_from_interactions_value_per_" + - "interaction\030\204\003 \001(\001H\277\001\210\001\001\0226\n\'cost_per_pla" + - "tform_comparable_conversion\030\205\003 \001(\001H\300\001\210\001\001" + - "\0227\n(value_per_platform_comparable_conver" + - "sion\030\206\003 \001(\001H\301\001\210\001\001\022K\n\210\001" + + "\001\022:\n,cost_per_current_model_attributed_c" + + "onversion\030\254\001 \001(\001H?\210\001\001\022&\n\030cross_device_co" + + "nversions\030\255\001 \001(\001H@\210\001\001\0229\n+cross_device_co" + + "nversions_by_conversion_date\030\364\002 \001(\001HA\210\001\001" + + "\022,\n\036cross_device_conversions_value\030\375\001 \001(" + + "\001HB\210\001\001\0223\n%cross_device_conversions_value" + + "_micros\030\270\002 \001(\003HC\210\001\001\022?\n1cross_device_conv" + + "ersions_value_by_conversion_date\030\365\002 \001(\001H" + + "D\210\001\001\022\021\n\003ctr\030\256\001 \001(\001HE\210\001\001\0222\n$current_model" + + "_attributed_conversions\030\257\001 \001(\001HF\210\001\001\022I\n;c" + + "urrent_model_attributed_conversions_from" + + "_interactions_rate\030\260\001 \001(\001HG\210\001\001\022Z\nLcurren" + + "t_model_attributed_conversions_from_inte" + + "ractions_value_per_interaction\030\261\001 \001(\001HH\210" + + "\001\001\0228\n*current_model_attributed_conversio" + + "ns_value\030\262\001 \001(\001HI\210\001\001\022A\n3current_model_at" + + "tributed_conversions_value_per_cost\030\263\001 \001" + + "(\001HJ\210\001\001\022\035\n\017engagement_rate\030\264\001 \001(\001HK\210\001\001\022\031" + + "\n\013engagements\030\265\001 \001(\003HL\210\001\001\022-\n\037hotel_avera" + + "ge_lead_value_micros\030\325\001 \001(\001HM\210\001\001\022*\n\034hote" + + "l_commission_rate_micros\030\200\002 \001(\003HN\210\001\001\022,\n\036" + + "hotel_expected_commission_cost\030\201\002 \001(\001HO\210" + + "\001\001\022/\n!hotel_price_difference_percentage\030" + + "\326\001 \001(\001HP\210\001\001\022(\n\032hotel_eligible_impression" + + "s\030\327\001 \001(\003HQ\210\001\001\022t\n!historical_creative_qua" + + "lity_score\030P \001(\0162I.google.ads.googleads." + + "v24.enums.QualityScoreBucketEnum.Quality" + + "ScoreBucket\022x\n%historical_landing_page_q" + + "uality_score\030Q \001(\0162I.google.ads.googlead" + + "s.v24.enums.QualityScoreBucketEnum.Quali" + + "tyScoreBucket\022&\n\030historical_quality_scor" + + "e\030\330\001 \001(\003HR\210\001\001\022r\n\037historical_search_predi" + + "cted_ctr\030S \001(\0162I.google.ads.googleads.v2" + + "4.enums.QualityScoreBucketEnum.QualitySc" + + "oreBucket\022\034\n\016gmail_forwards\030\331\001 \001(\003HS\210\001\001\022" + + "\031\n\013gmail_saves\030\332\001 \001(\003HT\210\001\001\022$\n\026gmail_seco" + + "ndary_clicks\030\333\001 \001(\003HU\210\001\001\022*\n\034impressions_" + + "from_store_reach\030\334\001 \001(\003HV\210\001\001\022\031\n\013impressi" + + "ons\030\335\001 \001(\003HW\210\001\001\022\036\n\020interaction_rate\030\336\001 \001" + + "(\001HX\210\001\001\022\032\n\014interactions\030\337\001 \001(\003HY\210\001\001\022n\n\027i" + + "nteraction_event_types\030d \003(\0162M.google.ad" + + "s.googleads.v24.enums.InteractionEventTy" + + "peEnum.InteractionEventType\022 \n\022invalid_c" + + "lick_rate\030\340\001 \001(\001HZ\210\001\001\022\034\n\016invalid_clicks\030" + + "\341\001 \001(\003H[\210\001\001\022(\n\032general_invalid_click_rat" + + "e\030\362\002 \001(\001H\\\210\001\001\022$\n\026general_invalid_clicks\030" + + "\363\002 \001(\003H]\210\001\001\022\033\n\rmessage_chats\030\342\001 \001(\003H^\210\001\001" + + "\022!\n\023message_impressions\030\343\001 \001(\003H_\210\001\001\022\037\n\021m" + + "essage_chat_rate\030\344\001 \001(\001H`\210\001\001\022/\n!mobile_f" + + "riendly_clicks_percentage\030\345\001 \001(\001Ha\210\001\001\022\'\n" + + "\031optimization_score_uplift\030\367\001 \001(\001Hb\210\001\001\022$" + + "\n\026optimization_score_url\030\370\001 \001(\tHc\210\001\001\022\034\n\016" + + "organic_clicks\030\346\001 \001(\003Hd\210\001\001\022&\n\030organic_cl" + + "icks_per_query\030\347\001 \001(\001He\210\001\001\022!\n\023organic_im" + + "pressions\030\350\001 \001(\003Hf\210\001\001\022+\n\035organic_impress" + + "ions_per_query\030\351\001 \001(\001Hg\210\001\001\022\035\n\017organic_qu" + + "eries\030\352\001 \001(\003Hh\210\001\001\022\"\n\024percent_new_visitor" + + "s\030\353\001 \001(\001Hi\210\001\001\022\031\n\013phone_calls\030\354\001 \001(\003Hj\210\001\001" + + "\022\037\n\021phone_impressions\030\355\001 \001(\003Hk\210\001\001\022 \n\022pho" + + "ne_through_rate\030\356\001 \001(\001Hl\210\001\001\022\032\n\014relative_" + + "ctr\030\357\001 \001(\001Hm\210\001\001\0222\n$search_absolute_top_i" + + "mpression_share\030\210\001 \001(\001Hn\210\001\001\022>\n0search_bu" + + "dget_lost_absolute_top_impression_share\030" + + "\211\001 \001(\001Ho\210\001\001\0221\n#search_budget_lost_impres" + + "sion_share\030\212\001 \001(\001Hp\210\001\001\0225\n\'search_budget_" + + "lost_top_impression_share\030\213\001 \001(\001Hq\210\001\001\022 \n" + + "\022search_click_share\030\214\001 \001(\001Hr\210\001\001\0221\n#searc" + + "h_exact_match_impression_share\030\215\001 \001(\001Hs\210" + + "\001\001\022%\n\027search_impression_share\030\216\001 \001(\001Ht\210\001" + + "\001\022<\n.search_rank_lost_absolute_top_impre" + + "ssion_share\030\217\001 \001(\001Hu\210\001\001\022/\n!search_rank_l" + + "ost_impression_share\030\220\001 \001(\001Hv\210\001\001\0223\n%sear" + + "ch_rank_lost_top_impression_share\030\221\001 \001(\001" + + "Hw\210\001\001\022)\n\033search_top_impression_share\030\222\001 " + + "\001(\001Hx\210\001\001\022O\n\rsearch_volume\030\247\002 \001(\01322.googl" + + "e.ads.googleads.v24.common.SearchVolumeR" + + "angeHy\210\001\001\022\031\n\013speed_score\030\223\001 \001(\003Hz\210\001\001\022\'\n\031" + + "average_target_cpa_micros\030\242\002 \001(\003H{\210\001\001\022!\n" + + "\023average_target_roas\030\372\001 \001(\001H|\210\001\001\022\'\n\031top_" + + "impression_percentage\030\224\001 \001(\001H}\210\001\001\022>\n0val" + + "id_accelerated_mobile_pages_clicks_perce" + + "ntage\030\225\001 \001(\001H~\210\001\001\022\'\n\031value_per_all_conve" + + "rsions\030\226\001 \001(\001H\177\210\001\001\022;\n,value_per_all_conv" + + "ersions_by_conversion_date\030\364\001 \001(\001H\200\001\210\001\001\022" + + "#\n\024value_per_conversion\030\227\001 \001(\001H\201\001\210\001\001\0227\n(" + + "value_per_conversions_by_conversion_date" + + "\030\365\001 \001(\001H\202\001\210\001\001\022<\n-value_per_current_model" + + "_attributed_conversion\030\230\001 \001(\001H\203\001\210\001\001\022\'\n\030v" + + "ideo_quartile_p100_rate\030\204\001 \001(\001H\204\001\210\001\001\022&\n\027" + + "video_quartile_p25_rate\030\205\001 \001(\001H\205\001\210\001\001\022&\n\027" + + "video_quartile_p50_rate\030\206\001 \001(\001H\206\001\210\001\001\022&\n\027" + + "video_quartile_p75_rate\030\207\001 \001(\001H\207\001\210\001\001\022\'\n\030" + + "video_trueview_view_rate\030\226\003 \001(\001H\210\001\210\001\001\022#\n" + + "\024video_trueview_views\030\227\003 \001(\003H\211\001\210\001\001\022\'\n\030vi" + + "ew_through_conversions\030\233\001 \001(\003H\212\001\210\001\001\022\037\n\026s" + + "k_ad_network_installs\030\366\001 \001(\003\022(\n\037sk_ad_ne" + + "twork_total_conversions\030\244\002 \001(\003\022#\n\032publis" + + "her_purchased_clicks\030\210\002 \001(\003\022!\n\030publisher" + + "_organic_clicks\030\211\002 \001(\003\022!\n\030publisher_unkn" + + "own_clicks\030\212\002 \001(\003\022@\n1all_conversions_fro" + + "m_location_asset_click_to_call\030\213\002 \001(\001H\213\001" + + "\210\001\001\022=\n.all_conversions_from_location_ass" + + "et_directions\030\214\002 \001(\001H\214\001\210\001\001\0227\n(all_conver" + + "sions_from_location_asset_menu\030\215\002 \001(\001H\215\001" + + "\210\001\001\0228\n)all_conversions_from_location_ass" + + "et_order\030\216\002 \001(\001H\216\001\210\001\001\022C\n4all_conversions" + + "_from_location_asset_other_engagement\030\217\002" + + " \001(\001H\217\001\210\001\001\022?\n0all_conversions_from_locat" + + "ion_asset_store_visits\030\220\002 \001(\001H\220\001\210\001\001\022:\n+a" + + "ll_conversions_from_location_asset_websi" + + "te\030\221\002 \001(\001H\221\001\210\001\001\022C\n4eligible_impressions_" + + "from_location_asset_store_reach\030\222\002 \001(\003H\222" + + "\001\210\001\001\022I\n:view_through_conversions_from_lo" + + "cation_asset_click_to_call\030\223\002 \001(\001H\223\001\210\001\001\022" + + "F\n7view_through_conversions_from_locatio" + + "n_asset_directions\030\224\002 \001(\001H\224\001\210\001\001\022@\n1view_" + + "through_conversions_from_location_asset_" + + "menu\030\225\002 \001(\001H\225\001\210\001\001\022A\n2view_through_conver" + + "sions_from_location_asset_order\030\226\002 \001(\001H\226" + + "\001\210\001\001\022L\n=view_through_conversions_from_lo" + + "cation_asset_other_engagement\030\227\002 \001(\001H\227\001\210" + + "\001\001\022H\n9view_through_conversions_from_loca" + + "tion_asset_store_visits\030\230\002 \001(\001H\230\001\210\001\001\022C\n4" + + "view_through_conversions_from_location_a" + + "sset_website\030\231\002 \001(\001H\231\001\210\001\001\022\025\n\006orders\030\250\002 \001" + + "(\001H\232\001\210\001\001\022)\n\032average_order_value_micros\030\251" + + "\002 \001(\003H\233\001\210\001\001\022 \n\021average_cart_size\030\252\002 \001(\001H" + + "\234\001\210\001\001\022(\n\031cost_of_goods_sold_micros\030\253\002 \001(" + + "\003H\235\001\210\001\001\022\"\n\023gross_profit_micros\030\254\002 \001(\003H\236\001" + + "\210\001\001\022\"\n\023gross_profit_margin\030\255\002 \001(\001H\237\001\210\001\001\022" + + "\035\n\016revenue_micros\030\256\002 \001(\003H\240\001\210\001\001\022\031\n\nunits_" + + "sold\030\257\002 \001(\001H\241\001\210\001\001\0223\n$cross_sell_cost_of_" + + "goods_sold_micros\030\260\002 \001(\003H\242\001\210\001\001\022-\n\036cross_" + + "sell_gross_profit_micros\030\261\002 \001(\003H\243\001\210\001\001\022(\n" + + "\031cross_sell_revenue_micros\030\262\002 \001(\003H\244\001\210\001\001\022" + + "$\n\025cross_sell_units_sold\030\263\002 \001(\001H\245\001\210\001\001\022-\n" + + "\036lead_cost_of_goods_sold_micros\030\264\002 \001(\003H\246" + + "\001\210\001\001\022\'\n\030lead_gross_profit_micros\030\265\002 \001(\003H" + + "\247\001\210\001\001\022\"\n\023lead_revenue_micros\030\266\002 \001(\003H\250\001\210\001" + + "\001\022\036\n\017lead_units_sold\030\267\002 \001(\001H\251\001\210\001\001\022\033\n\014uni" + + "que_users\030\277\002 \001(\003H\252\001\210\001\001\0224\n%average_impres" + + "sion_frequency_per_user\030\300\002 \001(\001H\253\001\210\001\001\022$\n\025" + + "linked_entities_count\030\325\002 \001(\003H\254\001\210\001\001\022\037\n\026li" + + "nked_sample_entities\030\326\002 \003(\t\022\'\n\030asset_pin" + + "ned_total_count\030\334\002 \001(\003H\255\001\210\001\001\022:\n+asset_pi" + + "nned_as_headline_position_one_count\030\335\002 \001" + + "(\003H\256\001\210\001\001\022:\n+asset_pinned_as_headline_pos" + + "ition_two_count\030\336\002 \001(\003H\257\001\210\001\001\022<\n-asset_pi" + + "nned_as_headline_position_three_count\030\337\002" + + " \001(\003H\260\001\210\001\001\022=\n.asset_pinned_as_descriptio" + + "n_position_one_count\030\340\002 \001(\003H\261\001\210\001\001\022=\n.ass" + + "et_pinned_as_description_position_two_co" + + "unt\030\341\002 \001(\003H\262\001\210\001\001\022C\n4store_visits_last_cl" + + "ick_model_attributed_conversions\030\355\002 \001(\001H" + + "\263\001\210\001\001\022+\n\034results_conversions_purchase\030\356\002" + + " \001(\001H\264\001\210\001\001\022/\n video_trueview_view_rate_i" + + "n_feed\030\230\003 \001(\001H\265\001\210\001\001\0221\n\"video_trueview_vi" + + "ew_rate_in_stream\030\231\003 \001(\001H\266\001\210\001\001\022.\n\037video_" + + "trueview_view_rate_shorts\030\232\003 \001(\001H\267\001\210\001\001\022#" + + "\n\024coviewed_impressions\030\374\002 \001(\003H\270\001\210\001\001\022\"\n\023p" + + "rimary_impressions\030\375\002 \001(\003H\271\001\210\001\001\022E\n6platf" + + "orm_comparable_conversions_from_interact" + + "ions_rate\030\376\002 \001(\001H\272\001\210\001\001\022.\n\037platform_compa" + + "rable_conversions\030\377\002 \001(\001H\273\001\210\001\001\0224\n%platfo" + + "rm_comparable_conversions_value\030\200\003 \001(\001H\274" + + "\001\210\001\001\022=\n.platform_comparable_conversions_" + + "value_per_cost\030\201\003 \001(\001H\275\001\210\001\001\022A\n2platform_" + "comparable_conversions_by_conversion_dat" + - "e\030\207\003 \001(\001H\302\001\210\001\001\022I\n:cost_converted_currenc" + - "y_per_platform_comparable_conversion\030\210\003 " + - "\001(\001H\303\001\210\001\001\022$\n\025unique_users_two_plus\030\211\003 \001(" + - "\003H\304\001\210\001\001\022&\n\027unique_users_three_plus\030\212\003 \001(" + - "\003H\305\001\210\001\001\022%\n\026unique_users_four_plus\030\213\003 \001(\003" + - "H\306\001\210\001\001\022%\n\026unique_users_five_plus\030\214\003 \001(\003H" + - "\307\001\210\001\001\022$\n\025unique_users_ten_plus\030\215\003 \001(\003H\310\001" + - "\210\001\001\022\037\n\020value_adjustment\030\216\003 \001(\001H\311\001\210\001\001\022#\n\024" + - "all_value_adjustment\030\217\003 \001(\001H\312\001\210\001\001\022+\n\034cli" + - "cks_unique_query_clusters\030\220\003 \001(\003H\313\001\210\001\001\0220" + - "\n!conversions_unique_query_clusters\030\221\003 \001" + - "(\003H\314\001\210\001\001\0220\n!impressions_unique_query_clu" + - "sters\030\222\003 \001(\003H\315\001\210\001\001\022/\n video_watch_time_d" + - "uration_millis\030\223\003 \001(\003H\316\001\210\001\001\0227\n(average_v" + - "ideo_watch_time_duration_millis\030\224\003 \001(\003H\317" + - "\001\210\001\001\022\022\n\003svr\030\233\003 \001(\003H\320\001\210\001\001\022<\n-active_view_" + - "audibility_measurable_impressions\030\234\003 \001(\003" + - "H\321\001\210\001\001\022A\n2active_view_audibility_measura" + - "ble_impressions_rate\030\235\003 \001(\001H\322\001\210\001\001\022I\n:act" + - "ive_view_audibility_invalid_measurable_i" + - "mpressions_rate\030\236\003 \001(\001H\323\001\210\001\001\022N\n?active_v" + - "iew_audibility_invalid_givt_measurable_i" + - "mpressions_rate\030\237\003 \001(\001H\324\001\210\001\001\022.\n\037active_v" + - "iew_audible_impressions\030\240\003 \001(\003H\325\001\210\001\001\0223\n$" + - "active_view_audible_impressions_rate\030\241\003 " + - "\001(\001H\326\001\210\001\001\022:\n+active_view_audible_two_sec" + - "onds_impressions\030\242\003 \001(\003H\327\001\210\001\001\022?\n0active_" + - "view_audible_two_seconds_impressions_rat" + - "e\030\243\003 \001(\001H\330\001\210\001\001\022=\n.active_view_audible_th" + - "irty_seconds_impressions\030\244\003 \001(\003H\331\001\210\001\001\022B\n" + - "3active_view_audible_thirty_seconds_impr" + - "essions_rate\030\245\003 \001(\001H\332\001\210\001\001\0224\n%active_view" + - "_audible_quartile_p25_rate\030\246\003 \001(\001H\333\001\210\001\001\022" + - "4\n%active_view_audible_quartile_p50_rate" + - "\030\247\003 \001(\001H\334\001\210\001\001\0224\n%active_view_audible_qua" + - "rtile_p75_rate\030\250\003 \001(\001H\335\001\210\001\001\0225\n&active_vi" + - "ew_audible_quartile_p100_rate\030\251\003 \001(\001H\336\001\210" + - "\001\001\022G\n8biddable_indirect_install_first_in" + - "_app_conversion_micros\030\252\003 \001(\003H\337\001\210\001\001\022$\n\025a" + - "ll_average_cart_size\030\253\003 \001(\001H\340\001\210\001\001\022-\n\036all" + - "_average_order_value_micros\030\254\003 \001(\003H\341\001\210\001\001" + - "\022,\n\035all_cost_of_goods_sold_micros\030\255\003 \001(\003" + - "H\342\001\210\001\001\0227\n(all_cross_sell_cost_of_goods_s" + - "old_micros\030\256\003 \001(\003H\343\001\210\001\001\0221\n\"all_cross_sel" + - "l_gross_profit_micros\030\257\003 \001(\003H\344\001\210\001\001\022,\n\035al" + - "l_cross_sell_revenue_micros\030\260\003 \001(\003H\345\001\210\001\001" + - "\022(\n\031all_cross_sell_units_sold\030\261\003 \001(\001H\346\001\210" + - "\001\001\022&\n\027all_gross_profit_margin\030\262\003 \001(\001H\347\001\210" + - "\001\001\022&\n\027all_gross_profit_micros\030\263\003 \001(\003H\350\001\210" + - "\001\001\0221\n\"all_lead_cost_of_goods_sold_micros" + - "\030\264\003 \001(\003H\351\001\210\001\001\022+\n\034all_lead_gross_profit_m" + - "icros\030\265\003 \001(\003H\352\001\210\001\001\022&\n\027all_lead_revenue_m" + - "icros\030\266\003 \001(\003H\353\001\210\001\001\022\"\n\023all_lead_units_sol" + - "d\030\267\003 \001(\001H\354\001\210\001\001\022\031\n\nall_orders\030\270\003 \001(\001H\355\001\210\001" + - "\001\022!\n\022all_revenue_micros\030\271\003 \001(\003H\356\001\210\001\001\022\035\n\016" + - "all_units_sold\030\272\003 \001(\001H\357\001\210\001\001B%\n#_absolute" + - "_top_impression_percentageB\022\n\020_active_vi" + - "ew_cpmB\022\n\020_active_view_ctrB\032\n\030_active_vi" + - "ew_impressionsB\034\n\032_active_view_measurabi" + - "lityB%\n#_active_view_measurable_cost_mic" + - "rosB%\n#_active_view_measurable_impressio" + - "nsB\032\n\030_active_view_viewabilityB)\n\'_all_c" + - "onversions_from_interactions_rateB\030\n\026_al" + - "l_conversions_valueB+\n)_all_conversions_" + - "value_by_conversion_dateB\"\n _all_new_cus" + - "tomer_lifetime_valueB\022\n\020_all_conversions" + - "B%\n#_all_conversions_by_conversion_dateB" + - "!\n\037_all_conversions_value_per_costB%\n#_a" + - "ll_conversions_from_click_to_callB\"\n _al" + - "l_conversions_from_directionsB:\n8_all_co" + - "nversions_from_interactions_value_per_in" + - "teractionB\034\n\032_all_conversions_from_menuB" + - "\035\n\033_all_conversions_from_orderB(\n&_all_c" + - "onversions_from_other_engagementB#\n!_all" + - "_conversions_from_store_visitB%\n#_all_co" + - "nversions_from_store_websiteB<\n:_auction" + - "_insight_search_absolute_top_impression_" + - "percentageB*\n(_auction_insight_search_im" + - "pression_shareB*\n(_auction_insight_searc" + - "h_outranking_shareB&\n$_auction_insight_s" + - "earch_overlap_rateB-\n+_auction_insight_s" + - "earch_position_above_rateB3\n1_auction_in" + - "sight_search_top_impression_percentageB\017" + - "\n\r_average_costB\016\n\014_average_cpcB\016\n\014_aver" + - "age_cpeB\016\n\014_average_cpmB\027\n\025_trueview_ave" + - "rage_cpvB\025\n\023_average_page_viewsB\027\n\025_aver" + - "age_time_on_siteB\034\n\032_benchmark_average_m" + - "ax_cpcB#\n!_biddable_app_install_conversi" + - "onsB(\n&_biddable_app_post_install_conver" + - "sionsB/\n-_biddable_cohort_app_post_insta" + - "ll_conversionsB\020\n\016_benchmark_ctrB\016\n\014_bou" + - "nce_rateB\t\n\007_clicksB\022\n\020_combined_clicksB" + - "\034\n\032_combined_clicks_per_queryB\023\n\021_combin" + - "ed_queriesB\'\n%_content_budget_lost_impre" + - "ssion_shareB\033\n\031_content_impression_share" + - "B-\n+_conversion_last_received_request_da" + - "te_timeB\"\n _conversion_last_conversion_d" + - "ateB%\n#_content_rank_lost_impression_sha" + - "reB%\n#_conversions_from_interactions_rat" + - "eB\024\n\022_conversions_valueB\'\n%_conversions_" + - "value_by_conversion_dateB\036\n\034_new_custome" + - "r_lifetime_valueB\035\n\033_conversions_value_p" + - "er_costB6\n4_conversions_from_interaction" + - "s_value_per_interactionB\016\n\014_conversionsB" + - "!\n\037_conversions_by_conversion_dateB\016\n\014_c" + - "ost_microsB\033\n\031_cost_per_all_conversionsB" + - "\026\n\024_cost_per_conversionB/\n-_cost_per_cur" + - "rent_model_attributed_conversionB\033\n\031_cro" + - "ss_device_conversionsB.\n,_cross_device_c" + - "onversions_by_conversion_dateB!\n\037_cross_" + - "device_conversions_valueB(\n&_cross_devic" + - "e_conversions_value_microsB4\n2_cross_dev" + - "ice_conversions_value_by_conversion_date" + - "B\006\n\004_ctrB\'\n%_current_model_attributed_co" + - "nversionsB>\n<_current_model_attributed_c" + - "onversions_from_interactions_rateBO\nM_cu" + - "rrent_model_attributed_conversions_from_" + - "interactions_value_per_interactionB-\n+_c" + - "urrent_model_attributed_conversions_valu" + - "eB6\n4_current_model_attributed_conversio" + - "ns_value_per_costB\022\n\020_engagement_rateB\016\n" + - "\014_engagementsB\"\n _hotel_average_lead_val" + - "ue_microsB\037\n\035_hotel_commission_rate_micr" + - "osB!\n\037_hotel_expected_commission_costB$\n" + - "\"_hotel_price_difference_percentageB\035\n\033_" + - "hotel_eligible_impressionsB\033\n\031_historica" + - "l_quality_scoreB\021\n\017_gmail_forwardsB\016\n\014_g" + - "mail_savesB\031\n\027_gmail_secondary_clicksB\037\n" + - "\035_impressions_from_store_reachB\016\n\014_impre" + - "ssionsB\023\n\021_interaction_rateB\017\n\r_interact" + - "ionsB\025\n\023_invalid_click_rateB\021\n\017_invalid_" + - "clicksB\035\n\033_general_invalid_click_rateB\031\n" + - "\027_general_invalid_clicksB\020\n\016_message_cha" + - "tsB\026\n\024_message_impressionsB\024\n\022_message_c" + - "hat_rateB$\n\"_mobile_friendly_clicks_perc" + - "entageB\034\n\032_optimization_score_upliftB\031\n\027" + - "_optimization_score_urlB\021\n\017_organic_clic" + - "ksB\033\n\031_organic_clicks_per_queryB\026\n\024_orga" + - "nic_impressionsB \n\036_organic_impressions_" + - "per_queryB\022\n\020_organic_queriesB\027\n\025_percen" + - "t_new_visitorsB\016\n\014_phone_callsB\024\n\022_phone" + - "_impressionsB\025\n\023_phone_through_rateB\017\n\r_" + - "relative_ctrB\'\n%_search_absolute_top_imp" + - "ression_shareB3\n1_search_budget_lost_abs" + - "olute_top_impression_shareB&\n$_search_bu" + - "dget_lost_impression_shareB*\n(_search_bu" + - "dget_lost_top_impression_shareB\025\n\023_searc" + - "h_click_shareB&\n$_search_exact_match_imp" + - "ression_shareB\032\n\030_search_impression_shar" + - "eB1\n/_search_rank_lost_absolute_top_impr", - "ession_shareB$\n\"_search_rank_lost_impres" + - "sion_shareB(\n&_search_rank_lost_top_impr" + - "ession_shareB\036\n\034_search_top_impression_s" + - "hareB\020\n\016_search_volumeB\016\n\014_speed_scoreB\034" + - "\n\032_average_target_cpa_microsB\026\n\024_average" + - "_target_roasB\034\n\032_top_impression_percenta" + - "geB3\n1_valid_accelerated_mobile_pages_cl" + - "icks_percentageB\034\n\032_value_per_all_conver" + - "sionsB/\n-_value_per_all_conversions_by_c" + - "onversion_dateB\027\n\025_value_per_conversionB" + - "+\n)_value_per_conversions_by_conversion_" + - "dateB0\n._value_per_current_model_attribu" + - "ted_conversionB\033\n\031_video_quartile_p100_r" + - "ateB\032\n\030_video_quartile_p25_rateB\032\n\030_vide" + - "o_quartile_p50_rateB\032\n\030_video_quartile_p" + - "75_rateB\033\n\031_video_trueview_view_rateB\027\n\025" + - "_video_trueview_viewsB\033\n\031_view_through_c" + - "onversionsB4\n2_all_conversions_from_loca" + - "tion_asset_click_to_callB1\n/_all_convers" + - "ions_from_location_asset_directionsB+\n)_" + - "all_conversions_from_location_asset_menu" + - "B,\n*_all_conversions_from_location_asset" + - "_orderB7\n5_all_conversions_from_location" + - "_asset_other_engagementB3\n1_all_conversi" + - "ons_from_location_asset_store_visitsB.\n," + - "_all_conversions_from_location_asset_web" + - "siteB7\n5_eligible_impressions_from_locat" + - "ion_asset_store_reachB=\n;_view_through_c" + - "onversions_from_location_asset_click_to_" + - "callB:\n8_view_through_conversions_from_l" + - "ocation_asset_directionsB4\n2_view_throug" + - "h_conversions_from_location_asset_menuB5" + - "\n3_view_through_conversions_from_locatio" + - "n_asset_orderB@\n>_view_through_conversio" + + "e\030\202\003 \001(\001H\276\001\210\001\001\022G\n8platform_comparable_co" + + "nversions_value_by_conversion_date\030\203\003 \001(" + + "\001H\277\001\210\001\001\022V\nGplatform_comparable_conversio" + + "ns_from_interactions_value_per_interacti" + + "on\030\204\003 \001(\001H\300\001\210\001\001\0226\n\'cost_per_platform_com" + + "parable_conversion\030\205\003 \001(\001H\301\001\210\001\001\0227\n(value" + + "_per_platform_comparable_conversion\030\206\003 \001" + + "(\001H\302\001\210\001\001\022K\n\n/conversion_valu" + + "e_per_cost_change_point_estimate\030\311\003 \001(\001H" + + "\374\001\210\001\001\022\"\n\023control_cost_micros\030\312\003 \001(\003H\375\001\210\001" + + "\001\022*\n\033cost_micros_margin_of_error\030\313\003 \001(\001H" + + "\376\001\210\001\001\022\"\n\023cost_micros_p_value\030\314\003 \001(\001H\377\001\210\001" + + "\001\0220\n!cost_micros_change_point_estimate\030\315" + + "\003 \001(\001H\200\002\210\001\001\022\"\n\023control_impressions\030\316\003 \001(" + + "\003H\201\002\210\001\001\022*\n\033impressions_margin_of_error\030\317" + + "\003 \001(\001H\202\002\210\001\001\022\"\n\023impressions_p_value\030\320\003 \001(" + + "\001H\203\002\210\001\001\022)\n\032impressions_point_estimate\030\321\003" + + " \001(\001H\204\002\210\001\001\022%\n\026clicks_margin_of_error\030\322\003 " + + "\001(\001H\205\002\210\001\001\022\035\n\016clicks_p_value\030\323\003 \001(\001H\206\002\210\001\001" + + "\022$\n\025clicks_point_estimate\030\324\003 \001(\001H\207\002\210\001\001\022\'" + + "\n\030control_conversion_value\030\325\003 \001(\001H\210\002\210\001\001\022" + + "/\n conversion_value_margin_of_error\030\326\003 \001" + + "(\001H\211\002\210\001\001\022\'\n\030conversion_value_p_value\030\327\003 " + + "\001(\001H\212\002\210\001\001\0225\n&conversion_value_change_poi" + + "nt_estimate\030\330\003 \001(\001H\213\002\210\001\001B%\n#_absolute_to" + + "p_impression_percentageB\022\n\020_active_view_" + + "cpmB\022\n\020_active_view_ctrB\032\n\030_active_view_" + + "impressionsB\034\n\032_active_view_measurabilit" + + "yB%\n#_active_view_measurable_cost_micros" + + "B%\n#_active_view_measurable_impressionsB" + + "\032\n\030_active_view_viewabilityB)\n\'_all_conv" + + "ersions_from_interactions_rateB\030\n\026_all_c" + + "onversions_valueB+\n)_all_conversions_val" + + "ue_by_conversion_dateB\"\n _all_new_custom" + + "er_lifetime_valueB\022\n\020_all_conversionsB%\n" + + "#_all_conversions_by_conversion_dateB!\n\037" + + "_all_conversions_value_per_costB%\n#_all_" + + "conversions_from_click_to_callB\"\n _all_c" + + "onversions_from_directionsB:\n8_all_conve" + + "rsions_from_interactions_value_per_inter" + + "actionB\034\n\032_all_conversions_from_menuB\035\n\033" + + "_all_conversions_from_orderB(\n&_all_conv" + + "ersions_from_other_engagementB#\n!_all_co" + + "nversions_from_store_visitB%\n#_all_conve" + + "rsions_from_store_websiteB<\n:_auction_in" + + "sight_search_absolute_top_impression_per" + + "centageB*\n(_auction_insight_search_impre" + + "ssion_shareB*\n(_auction_insight_search_o" + + "utranking_shareB&\n$_auction_insight_sear" + + "ch_overlap_rateB-\n+_auction_insight_sear" + + "ch_position_above_rateB3\n1_auction_insig" + + "ht_search_top_impression_percentageB\017\n\r_" + + "average_costB\016\n\014_average_cpcB\016\n\014_average" + + "_cpeB\016\n\014_average_cpmB\027\n\025_trueview_averag" + + "e_cpvB\025\n\023_average_page_viewsB\027\n\025_average" + + "_time_on_siteB\034\n\032_benchmark_average_max_" + + "cpcB#\n!_biddable_app_install_conversions" + + "B(\n&_biddable_app_post_install_conversio" + + "nsB/\n-_biddable_cohort_app_post_install_" + + "conversionsB\020\n\016_benchmark_ctrB\016\n\014_bounce" + + "_rateB\t\n\007_clicksB\021\n\017_control_clicksB\022\n\020_" + + "combined_clicksB\034\n\032_combined_clicks_per_" + + "queryB\023\n\021_combined_queriesB\'\n%_content_b" + + "udget_lost_impression_shareB\033\n\031_content_" + + "impression_shareB-\n+_conversion_last_rec" + + "eived_request_date_timeB\"\n _conversion_l" + + "ast_conversion_dateB%\n#_content_rank_los" + + "t_impression_shareB%\n#_conversions_from_" + + "interactions_rateB\024\n\022_conversions_valueB" + + "\'\n%_conversions_value_by_conversion_date" + + "B\036\n\034_new_customer_lifetime_valueB\035\n\033_con" + + "versions_value_per_costB6\n4_conversions_" + + "from_interactions_value_per_interactionB" + + "\016\n\014_conversionsB!\n\037_conversions_by_conve" + + "rsion_dateB\016\n\014_cost_microsB\033\n\031_cost_per_" + + "all_conversionsB\026\n\024_cost_per_conversionB" + + "/\n-_cost_per_current_model_attributed_co" + + "nversionB\033\n\031_cross_device_conversionsB.\n" + + ",_cross_device_conversions_by_conversion" + + "_dateB!\n\037_cross_device_conversions_value" + + "B(\n&_cross_device_conversions_value_micr" + + "osB4\n2_cross_device_conversions_value_by" + + "_conversion_dateB\006\n\004_ctrB\'\n%_current_mod" + + "el_attributed_conversionsB>\n<_current_mo" + + "del_attributed_conversions_from_interact" + + "ions_rateBO\nM_current_model_attributed_c" + + "onversions_from_interactions_value_per_i", + "nteractionB-\n+_current_model_attributed_" + + "conversions_valueB6\n4_current_model_attr" + + "ibuted_conversions_value_per_costB\022\n\020_en" + + "gagement_rateB\016\n\014_engagementsB\"\n _hotel_" + + "average_lead_value_microsB\037\n\035_hotel_comm" + + "ission_rate_microsB!\n\037_hotel_expected_co" + + "mmission_costB$\n\"_hotel_price_difference" + + "_percentageB\035\n\033_hotel_eligible_impressio" + + "nsB\033\n\031_historical_quality_scoreB\021\n\017_gmai" + + "l_forwardsB\016\n\014_gmail_savesB\031\n\027_gmail_sec" + + "ondary_clicksB\037\n\035_impressions_from_store" + + "_reachB\016\n\014_impressionsB\023\n\021_interaction_r" + + "ateB\017\n\r_interactionsB\025\n\023_invalid_click_r" + + "ateB\021\n\017_invalid_clicksB\035\n\033_general_inval" + + "id_click_rateB\031\n\027_general_invalid_clicks" + + "B\020\n\016_message_chatsB\026\n\024_message_impressio" + + "nsB\024\n\022_message_chat_rateB$\n\"_mobile_frie" + + "ndly_clicks_percentageB\034\n\032_optimization_" + + "score_upliftB\031\n\027_optimization_score_urlB" + + "\021\n\017_organic_clicksB\033\n\031_organic_clicks_pe" + + "r_queryB\026\n\024_organic_impressionsB \n\036_orga" + + "nic_impressions_per_queryB\022\n\020_organic_qu" + + "eriesB\027\n\025_percent_new_visitorsB\016\n\014_phone" + + "_callsB\024\n\022_phone_impressionsB\025\n\023_phone_t" + + "hrough_rateB\017\n\r_relative_ctrB\'\n%_search_" + + "absolute_top_impression_shareB3\n1_search" + + "_budget_lost_absolute_top_impression_sha" + + "reB&\n$_search_budget_lost_impression_sha" + + "reB*\n(_search_budget_lost_top_impression" + + "_shareB\025\n\023_search_click_shareB&\n$_search" + + "_exact_match_impression_shareB\032\n\030_search" + + "_impression_shareB1\n/_search_rank_lost_a" + + "bsolute_top_impression_shareB$\n\"_search_" + + "rank_lost_impression_shareB(\n&_search_ra" + + "nk_lost_top_impression_shareB\036\n\034_search_" + + "top_impression_shareB\020\n\016_search_volumeB\016" + + "\n\014_speed_scoreB\034\n\032_average_target_cpa_mi" + + "crosB\026\n\024_average_target_roasB\034\n\032_top_imp" + + "ression_percentageB3\n1_valid_accelerated" + + "_mobile_pages_clicks_percentageB\034\n\032_valu" + + "e_per_all_conversionsB/\n-_value_per_all_" + + "conversions_by_conversion_dateB\027\n\025_value" + + "_per_conversionB+\n)_value_per_conversion" + + "s_by_conversion_dateB0\n._value_per_curre" + + "nt_model_attributed_conversionB\033\n\031_video" + + "_quartile_p100_rateB\032\n\030_video_quartile_p" + + "25_rateB\032\n\030_video_quartile_p50_rateB\032\n\030_" + + "video_quartile_p75_rateB\033\n\031_video_truevi" + + "ew_view_rateB\027\n\025_video_trueview_viewsB\033\n" + + "\031_view_through_conversionsB4\n2_all_conve" + + "rsions_from_location_asset_click_to_call" + + "B1\n/_all_conversions_from_location_asset" + + "_directionsB+\n)_all_conversions_from_loc" + + "ation_asset_menuB,\n*_all_conversions_fro" + + "m_location_asset_orderB7\n5_all_conversio" + "ns_from_location_asset_other_engagementB" + - "<\n:_view_through_conversions_from_locati" + - "on_asset_store_visitsB7\n5_view_through_c" + - "onversions_from_location_asset_websiteB\t" + - "\n\007_ordersB\035\n\033_average_order_value_micros" + - "B\024\n\022_average_cart_sizeB\034\n\032_cost_of_goods" + - "_sold_microsB\026\n\024_gross_profit_microsB\026\n\024" + - "_gross_profit_marginB\021\n\017_revenue_microsB" + - "\r\n\013_units_soldB\'\n%_cross_sell_cost_of_go" + - "ods_sold_microsB!\n\037_cross_sell_gross_pro" + - "fit_microsB\034\n\032_cross_sell_revenue_micros" + - "B\030\n\026_cross_sell_units_soldB!\n\037_lead_cost" + - "_of_goods_sold_microsB\033\n\031_lead_gross_pro" + - "fit_microsB\026\n\024_lead_revenue_microsB\022\n\020_l" + - "ead_units_soldB\017\n\r_unique_usersB(\n&_aver" + - "age_impression_frequency_per_userB\030\n\026_li" + - "nked_entities_countB\033\n\031_asset_pinned_tot" + - "al_countB.\n,_asset_pinned_as_headline_po" + - "sition_one_countB.\n,_asset_pinned_as_hea" + - "dline_position_two_countB0\n._asset_pinne" + - "d_as_headline_position_three_countB1\n/_a" + - "sset_pinned_as_description_position_one_" + - "countB1\n/_asset_pinned_as_description_po" + - "sition_two_countB7\n5_store_visits_last_c" + - "lick_model_attributed_conversionsB\037\n\035_re" + - "sults_conversions_purchaseB#\n!_video_tru" + - "eview_view_rate_in_feedB%\n#_video_truevi" + - "ew_view_rate_in_streamB\"\n _video_truevie" + - "w_view_rate_shortsB\027\n\025_coviewed_impressi" + - "onsB\026\n\024_primary_impressionsB9\n7_platform" + + "3\n1_all_conversions_from_location_asset_" + + "store_visitsB.\n,_all_conversions_from_lo" + + "cation_asset_websiteB7\n5_eligible_impres" + + "sions_from_location_asset_store_reachB=\n" + + ";_view_through_conversions_from_location" + + "_asset_click_to_callB:\n8_view_through_co" + + "nversions_from_location_asset_directions" + + "B4\n2_view_through_conversions_from_locat" + + "ion_asset_menuB5\n3_view_through_conversi" + + "ons_from_location_asset_orderB@\n>_view_t" + + "hrough_conversions_from_location_asset_o" + + "ther_engagementB<\n:_view_through_convers" + + "ions_from_location_asset_store_visitsB7\n" + + "5_view_through_conversions_from_location" + + "_asset_websiteB\t\n\007_ordersB\035\n\033_average_or" + + "der_value_microsB\024\n\022_average_cart_sizeB\034" + + "\n\032_cost_of_goods_sold_microsB\026\n\024_gross_p" + + "rofit_microsB\026\n\024_gross_profit_marginB\021\n\017" + + "_revenue_microsB\r\n\013_units_soldB\'\n%_cross" + + "_sell_cost_of_goods_sold_microsB!\n\037_cros" + + "s_sell_gross_profit_microsB\034\n\032_cross_sel" + + "l_revenue_microsB\030\n\026_cross_sell_units_so" + + "ldB!\n\037_lead_cost_of_goods_sold_microsB\033\n" + + "\031_lead_gross_profit_microsB\026\n\024_lead_reve" + + "nue_microsB\022\n\020_lead_units_soldB\017\n\r_uniqu" + + "e_usersB(\n&_average_impression_frequency" + + "_per_userB\030\n\026_linked_entities_countB\033\n\031_" + + "asset_pinned_total_countB.\n,_asset_pinne" + + "d_as_headline_position_one_countB.\n,_ass" + + "et_pinned_as_headline_position_two_count" + + "B0\n._asset_pinned_as_headline_position_t" + + "hree_countB1\n/_asset_pinned_as_descripti" + + "on_position_one_countB1\n/_asset_pinned_a" + + "s_description_position_two_countB7\n5_sto" + + "re_visits_last_click_model_attributed_co" + + "nversionsB\037\n\035_results_conversions_purcha" + + "seB#\n!_video_trueview_view_rate_in_feedB" + + "%\n#_video_trueview_view_rate_in_streamB\"" + + "\n _video_trueview_view_rate_shortsB\027\n\025_c" + + "oviewed_impressionsB\026\n\024_primary_impressi" + + "onsB9\n7_platform_comparable_conversions_" + + "from_interactions_rateB\"\n _platform_comp" + + "arable_conversionsB(\n&_platform_comparab" + + "le_conversions_valueB1\n/_platform_compar" + + "able_conversions_value_per_costB5\n3_plat" + + "form_comparable_conversions_by_conversio" + + "n_dateB;\n9_platform_comparable_conversio" + + "ns_value_by_conversion_dateBJ\nH_platform" + "_comparable_conversions_from_interaction" + - "s_rateB\"\n _platform_comparable_conversio" + - "nsB(\n&_platform_comparable_conversions_v" + - "alueB1\n/_platform_comparable_conversions" + - "_value_per_costB5\n3_platform_comparable_" + - "conversions_by_conversion_dateB;\n9_platf" + - "orm_comparable_conversions_value_by_conv" + - "ersion_dateBJ\nH_platform_comparable_conv" + - "ersions_from_interactions_value_per_inte" + - "ractionB*\n(_cost_per_platform_comparable" + - "_conversionB+\n)_value_per_platform_compa" + - "rable_conversionB?\n=_value_per_platform_" + - "comparable_conversions_by_conversion_dat" + - "eB=\n;_cost_converted_currency_per_platfo" + - "rm_comparable_conversionB\030\n\026_unique_user" + - "s_two_plusB\032\n\030_unique_users_three_plusB\031" + - "\n\027_unique_users_four_plusB\031\n\027_unique_use" + - "rs_five_plusB\030\n\026_unique_users_ten_plusB\023" + - "\n\021_value_adjustmentB\027\n\025_all_value_adjust" + - "mentB\037\n\035_clicks_unique_query_clustersB$\n" + - "\"_conversions_unique_query_clustersB$\n\"_" + - "impressions_unique_query_clustersB#\n!_vi" + - "deo_watch_time_duration_millisB+\n)_avera" + - "ge_video_watch_time_duration_millisB\006\n\004_" + - "svrB0\n._active_view_audibility_measurabl" + - "e_impressionsB5\n3_active_view_audibility" + - "_measurable_impressions_rateB=\n;_active_" + - "view_audibility_invalid_measurable_impre" + - "ssions_rateBB\n@_active_view_audibility_i" + - "nvalid_givt_measurable_impressions_rateB" + - "\"\n _active_view_audible_impressionsB\'\n%_" + - "active_view_audible_impressions_rateB.\n," + - "_active_view_audible_two_seconds_impress" + - "ionsB3\n1_active_view_audible_two_seconds" + - "_impressions_rateB1\n/_active_view_audibl" + - "e_thirty_seconds_impressionsB6\n4_active_" + - "view_audible_thirty_seconds_impressions_" + - "rateB(\n&_active_view_audible_quartile_p2" + - "5_rateB(\n&_active_view_audible_quartile_" + - "p50_rateB(\n&_active_view_audible_quartil" + - "e_p75_rateB)\n\'_active_view_audible_quart" + - "ile_p100_rateB;\n9_biddable_indirect_inst" + - "all_first_in_app_conversion_microsB\030\n\026_a" + - "ll_average_cart_sizeB!\n\037_all_average_ord" + - "er_value_microsB \n\036_all_cost_of_goods_so" + - "ld_microsB+\n)_all_cross_sell_cost_of_goo" + - "ds_sold_microsB%\n#_all_cross_sell_gross_" + - "profit_microsB \n\036_all_cross_sell_revenue" + - "_microsB\034\n\032_all_cross_sell_units_soldB\032\n" + - "\030_all_gross_profit_marginB\032\n\030_all_gross_" + - "profit_microsB%\n#_all_lead_cost_of_goods" + - "_sold_microsB\037\n\035_all_lead_gross_profit_m" + - "icrosB\032\n\030_all_lead_revenue_microsB\026\n\024_al" + - "l_lead_units_soldB\r\n\013_all_ordersB\025\n\023_all" + - "_revenue_microsB\021\n\017_all_units_sold\"G\n\021Se" + - "archVolumeRange\022\020\n\003min\030\001 \001(\003H\000\210\001\001\022\020\n\003max" + - "\030\002 \001(\003H\001\210\001\001B\006\n\004_minB\006\n\004_maxB\354\001\n#com.goog" + - "le.ads.googleads.v24.commonB\014MetricsProt" + - "oP\001ZEgoogle.golang.org/genproto/googleap" + - "is/ads/googleads/v24/common;common\242\002\003GAA" + - "\252\002\037Google.Ads.GoogleAds.V24.Common\312\002\037Goo" + - "gle\\Ads\\GoogleAds\\V24\\Common\352\002#Google::A" + - "ds::GoogleAds::V24::Commonb\006proto3" + "s_value_per_interactionB*\n(_cost_per_pla" + + "tform_comparable_conversionB+\n)_value_pe" + + "r_platform_comparable_conversionB?\n=_val" + + "ue_per_platform_comparable_conversions_b" + + "y_conversion_dateB=\n;_cost_converted_cur" + + "rency_per_platform_comparable_conversion" + + "B\030\n\026_unique_users_two_plusB\032\n\030_unique_us" + + "ers_three_plusB\031\n\027_unique_users_four_plu" + + "sB\031\n\027_unique_users_five_plusB\030\n\026_unique_" + + "users_ten_plusB\023\n\021_value_adjustmentB\027\n\025_" + + "all_value_adjustmentB\037\n\035_clicks_unique_q" + + "uery_clustersB$\n\"_conversions_unique_que" + + "ry_clustersB$\n\"_impressions_unique_query" + + "_clustersB#\n!_video_watch_time_duration_" + + "millisB+\n)_average_video_watch_time_dura" + + "tion_millisB\006\n\004_svrB0\n._active_view_audi" + + "bility_measurable_impressionsB5\n3_active" + + "_view_audibility_measurable_impressions_" + + "rateB=\n;_active_view_audibility_invalid_" + + "measurable_impressions_rateBB\n@_active_v" + + "iew_audibility_invalid_givt_measurable_i" + + "mpressions_rateB\"\n _active_view_audible_" + + "impressionsB\'\n%_active_view_audible_impr" + + "essions_rateB.\n,_active_view_audible_two" + + "_seconds_impressionsB3\n1_active_view_aud" + + "ible_two_seconds_impressions_rateB1\n/_ac" + + "tive_view_audible_thirty_seconds_impress" + + "ionsB6\n4_active_view_audible_thirty_seco" + + "nds_impressions_rateB(\n&_active_view_aud" + + "ible_quartile_p25_rateB(\n&_active_view_a" + + "udible_quartile_p50_rateB(\n&_active_view" + + "_audible_quartile_p75_rateB)\n\'_active_vi" + + "ew_audible_quartile_p100_rateB;\n9_biddab" + + "le_indirect_install_first_in_app_convers" + + "ion_microsB\030\n\026_all_average_cart_sizeB!\n\037" + + "_all_average_order_value_microsB \n\036_all_" + + "cost_of_goods_sold_microsB+\n)_all_cross_" + + "sell_cost_of_goods_sold_microsB%\n#_all_c" + + "ross_sell_gross_profit_microsB \n\036_all_cr" + + "oss_sell_revenue_microsB\034\n\032_all_cross_se" + + "ll_units_soldB\032\n\030_all_gross_profit_margi" + + "nB\032\n\030_all_gross_profit_microsB%\n#_all_le" + + "ad_cost_of_goods_sold_microsB\037\n\035_all_lea" + + "d_gross_profit_microsB\032\n\030_all_lead_reven" + + "ue_microsB\026\n\024_all_lead_units_soldB\r\n\013_al" + + "l_ordersB\025\n\023_all_revenue_microsB\021\n\017_all_" + + "units_soldB\036\n\034_control_cost_per_conversi" + + "onB&\n$_cost_per_conversion_margin_of_err" + + "orB\036\n\034_cost_per_conversion_p_valueB,\n*_c" + + "ost_per_conversion_change_point_estimate" + + "B\026\n\024_control_conversionsB.\n,_conversions" + + "_absolute_change_margin_of_errorB&\n$_con" + + "versions_absolute_change_p_valueB-\n+_con" + + "versions_absolute_change_point_estimateB" + + "$\n\"_control_conversion_value_per_costB,\n" + + "*_conversion_value_per_cost_margin_of_er" + + "rorB$\n\"_conversion_value_per_cost_p_valu" + + "eB2\n0_conversion_value_per_cost_change_p" + + "oint_estimateB\026\n\024_control_cost_microsB\036\n" + + "\034_cost_micros_margin_of_errorB\026\n\024_cost_m" + + "icros_p_valueB$\n\"_cost_micros_change_poi" + + "nt_estimateB\026\n\024_control_impressionsB\036\n\034_" + + "impressions_margin_of_errorB\026\n\024_impressi" + + "ons_p_valueB\035\n\033_impressions_point_estima" + + "teB\031\n\027_clicks_margin_of_errorB\021\n\017_clicks" + + "_p_valueB\030\n\026_clicks_point_estimateB\033\n\031_c" + + "ontrol_conversion_valueB#\n!_conversion_v" + + "alue_margin_of_errorB\033\n\031_conversion_valu" + + "e_p_valueB)\n\'_conversion_value_change_po" + + "int_estimate\"G\n\021SearchVolumeRange\022\020\n\003min" + + "\030\001 \001(\003H\000\210\001\001\022\020\n\003max\030\002 \001(\003H\001\210\001\001B\006\n\004_minB\006\n" + + "\004_maxB\354\001\n#com.google.ads.googleads.v24.c" + + "ommonB\014MetricsProtoP\001ZEgoogle.golang.org" + + "/genproto/googleapis/ads/googleads/v24/c" + + "ommon;common\242\002\003GAA\252\002\037Google.Ads.GoogleAd" + + "s.V24.Common\312\002\037Google\\Ads\\GoogleAds\\V24\\" + + "Common\352\002#Google::Ads::GoogleAds::V24::Co" + + "mmonb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -584,7 +640,7 @@ public static void registerAllExtensions( internal_static_google_ads_googleads_v24_common_Metrics_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_ads_googleads_v24_common_Metrics_descriptor, - new java.lang.String[] { "AbsoluteTopImpressionPercentage", "ActiveViewCpm", "ActiveViewCtr", "ActiveViewImpressions", "ActiveViewMeasurability", "ActiveViewMeasurableCostMicros", "ActiveViewMeasurableImpressions", "ActiveViewViewability", "AllConversionsFromInteractionsRate", "AllConversionsValue", "AllConversionsValueByConversionDate", "AllNewCustomerLifetimeValue", "AllConversions", "AllConversionsByConversionDate", "AllConversionsValuePerCost", "AllConversionsFromClickToCall", "AllConversionsFromDirections", "AllConversionsFromInteractionsValuePerInteraction", "AllConversionsFromMenu", "AllConversionsFromOrder", "AllConversionsFromOtherEngagement", "AllConversionsFromStoreVisit", "AllConversionsFromStoreWebsite", "AuctionInsightSearchAbsoluteTopImpressionPercentage", "AuctionInsightSearchImpressionShare", "AuctionInsightSearchOutrankingShare", "AuctionInsightSearchOverlapRate", "AuctionInsightSearchPositionAboveRate", "AuctionInsightSearchTopImpressionPercentage", "AverageCost", "AverageCpc", "AverageCpe", "AverageCpm", "TrueviewAverageCpv", "AveragePageViews", "AverageTimeOnSite", "BenchmarkAverageMaxCpc", "BiddableAppInstallConversions", "BiddableAppPostInstallConversions", "BiddableCohortAppPostInstallConversions", "BenchmarkCtr", "BounceRate", "Clicks", "CombinedClicks", "CombinedClicksPerQuery", "CombinedQueries", "ContentBudgetLostImpressionShare", "ContentImpressionShare", "ConversionLastReceivedRequestDateTime", "ConversionLastConversionDate", "ContentRankLostImpressionShare", "ConversionsFromInteractionsRate", "ConversionsValue", "ConversionsValueByConversionDate", "NewCustomerLifetimeValue", "ConversionsValuePerCost", "ConversionsFromInteractionsValuePerInteraction", "Conversions", "ConversionsByConversionDate", "CostMicros", "CostPerAllConversions", "CostPerConversion", "CostPerCurrentModelAttributedConversion", "CrossDeviceConversions", "CrossDeviceConversionsByConversionDate", "CrossDeviceConversionsValue", "CrossDeviceConversionsValueMicros", "CrossDeviceConversionsValueByConversionDate", "Ctr", "CurrentModelAttributedConversions", "CurrentModelAttributedConversionsFromInteractionsRate", "CurrentModelAttributedConversionsFromInteractionsValuePerInteraction", "CurrentModelAttributedConversionsValue", "CurrentModelAttributedConversionsValuePerCost", "EngagementRate", "Engagements", "HotelAverageLeadValueMicros", "HotelCommissionRateMicros", "HotelExpectedCommissionCost", "HotelPriceDifferencePercentage", "HotelEligibleImpressions", "HistoricalCreativeQualityScore", "HistoricalLandingPageQualityScore", "HistoricalQualityScore", "HistoricalSearchPredictedCtr", "GmailForwards", "GmailSaves", "GmailSecondaryClicks", "ImpressionsFromStoreReach", "Impressions", "InteractionRate", "Interactions", "InteractionEventTypes", "InvalidClickRate", "InvalidClicks", "GeneralInvalidClickRate", "GeneralInvalidClicks", "MessageChats", "MessageImpressions", "MessageChatRate", "MobileFriendlyClicksPercentage", "OptimizationScoreUplift", "OptimizationScoreUrl", "OrganicClicks", "OrganicClicksPerQuery", "OrganicImpressions", "OrganicImpressionsPerQuery", "OrganicQueries", "PercentNewVisitors", "PhoneCalls", "PhoneImpressions", "PhoneThroughRate", "RelativeCtr", "SearchAbsoluteTopImpressionShare", "SearchBudgetLostAbsoluteTopImpressionShare", "SearchBudgetLostImpressionShare", "SearchBudgetLostTopImpressionShare", "SearchClickShare", "SearchExactMatchImpressionShare", "SearchImpressionShare", "SearchRankLostAbsoluteTopImpressionShare", "SearchRankLostImpressionShare", "SearchRankLostTopImpressionShare", "SearchTopImpressionShare", "SearchVolume", "SpeedScore", "AverageTargetCpaMicros", "AverageTargetRoas", "TopImpressionPercentage", "ValidAcceleratedMobilePagesClicksPercentage", "ValuePerAllConversions", "ValuePerAllConversionsByConversionDate", "ValuePerConversion", "ValuePerConversionsByConversionDate", "ValuePerCurrentModelAttributedConversion", "VideoQuartileP100Rate", "VideoQuartileP25Rate", "VideoQuartileP50Rate", "VideoQuartileP75Rate", "VideoTrueviewViewRate", "VideoTrueviewViews", "ViewThroughConversions", "SkAdNetworkInstalls", "SkAdNetworkTotalConversions", "PublisherPurchasedClicks", "PublisherOrganicClicks", "PublisherUnknownClicks", "AllConversionsFromLocationAssetClickToCall", "AllConversionsFromLocationAssetDirections", "AllConversionsFromLocationAssetMenu", "AllConversionsFromLocationAssetOrder", "AllConversionsFromLocationAssetOtherEngagement", "AllConversionsFromLocationAssetStoreVisits", "AllConversionsFromLocationAssetWebsite", "EligibleImpressionsFromLocationAssetStoreReach", "ViewThroughConversionsFromLocationAssetClickToCall", "ViewThroughConversionsFromLocationAssetDirections", "ViewThroughConversionsFromLocationAssetMenu", "ViewThroughConversionsFromLocationAssetOrder", "ViewThroughConversionsFromLocationAssetOtherEngagement", "ViewThroughConversionsFromLocationAssetStoreVisits", "ViewThroughConversionsFromLocationAssetWebsite", "Orders", "AverageOrderValueMicros", "AverageCartSize", "CostOfGoodsSoldMicros", "GrossProfitMicros", "GrossProfitMargin", "RevenueMicros", "UnitsSold", "CrossSellCostOfGoodsSoldMicros", "CrossSellGrossProfitMicros", "CrossSellRevenueMicros", "CrossSellUnitsSold", "LeadCostOfGoodsSoldMicros", "LeadGrossProfitMicros", "LeadRevenueMicros", "LeadUnitsSold", "UniqueUsers", "AverageImpressionFrequencyPerUser", "LinkedEntitiesCount", "LinkedSampleEntities", "AssetPinnedTotalCount", "AssetPinnedAsHeadlinePositionOneCount", "AssetPinnedAsHeadlinePositionTwoCount", "AssetPinnedAsHeadlinePositionThreeCount", "AssetPinnedAsDescriptionPositionOneCount", "AssetPinnedAsDescriptionPositionTwoCount", "StoreVisitsLastClickModelAttributedConversions", "ResultsConversionsPurchase", "VideoTrueviewViewRateInFeed", "VideoTrueviewViewRateInStream", "VideoTrueviewViewRateShorts", "CoviewedImpressions", "PrimaryImpressions", "PlatformComparableConversionsFromInteractionsRate", "PlatformComparableConversions", "PlatformComparableConversionsValue", "PlatformComparableConversionsValuePerCost", "PlatformComparableConversionsByConversionDate", "PlatformComparableConversionsValueByConversionDate", "PlatformComparableConversionsFromInteractionsValuePerInteraction", "CostPerPlatformComparableConversion", "ValuePerPlatformComparableConversion", "ValuePerPlatformComparableConversionsByConversionDate", "CostConvertedCurrencyPerPlatformComparableConversion", "UniqueUsersTwoPlus", "UniqueUsersThreePlus", "UniqueUsersFourPlus", "UniqueUsersFivePlus", "UniqueUsersTenPlus", "ValueAdjustment", "AllValueAdjustment", "ClicksUniqueQueryClusters", "ConversionsUniqueQueryClusters", "ImpressionsUniqueQueryClusters", "VideoWatchTimeDurationMillis", "AverageVideoWatchTimeDurationMillis", "Svr", "ActiveViewAudibilityMeasurableImpressions", "ActiveViewAudibilityMeasurableImpressionsRate", "ActiveViewAudibilityInvalidMeasurableImpressionsRate", "ActiveViewAudibilityInvalidGivtMeasurableImpressionsRate", "ActiveViewAudibleImpressions", "ActiveViewAudibleImpressionsRate", "ActiveViewAudibleTwoSecondsImpressions", "ActiveViewAudibleTwoSecondsImpressionsRate", "ActiveViewAudibleThirtySecondsImpressions", "ActiveViewAudibleThirtySecondsImpressionsRate", "ActiveViewAudibleQuartileP25Rate", "ActiveViewAudibleQuartileP50Rate", "ActiveViewAudibleQuartileP75Rate", "ActiveViewAudibleQuartileP100Rate", "BiddableIndirectInstallFirstInAppConversionMicros", "AllAverageCartSize", "AllAverageOrderValueMicros", "AllCostOfGoodsSoldMicros", "AllCrossSellCostOfGoodsSoldMicros", "AllCrossSellGrossProfitMicros", "AllCrossSellRevenueMicros", "AllCrossSellUnitsSold", "AllGrossProfitMargin", "AllGrossProfitMicros", "AllLeadCostOfGoodsSoldMicros", "AllLeadGrossProfitMicros", "AllLeadRevenueMicros", "AllLeadUnitsSold", "AllOrders", "AllRevenueMicros", "AllUnitsSold", }); + new java.lang.String[] { "AbsoluteTopImpressionPercentage", "ActiveViewCpm", "ActiveViewCtr", "ActiveViewImpressions", "ActiveViewMeasurability", "ActiveViewMeasurableCostMicros", "ActiveViewMeasurableImpressions", "ActiveViewViewability", "AllConversionsFromInteractionsRate", "AllConversionsValue", "AllConversionsValueByConversionDate", "AllNewCustomerLifetimeValue", "AllConversions", "AllConversionsByConversionDate", "AllConversionsValuePerCost", "AllConversionsFromClickToCall", "AllConversionsFromDirections", "AllConversionsFromInteractionsValuePerInteraction", "AllConversionsFromMenu", "AllConversionsFromOrder", "AllConversionsFromOtherEngagement", "AllConversionsFromStoreVisit", "AllConversionsFromStoreWebsite", "AuctionInsightSearchAbsoluteTopImpressionPercentage", "AuctionInsightSearchImpressionShare", "AuctionInsightSearchOutrankingShare", "AuctionInsightSearchOverlapRate", "AuctionInsightSearchPositionAboveRate", "AuctionInsightSearchTopImpressionPercentage", "AverageCost", "AverageCpc", "AverageCpe", "AverageCpm", "TrueviewAverageCpv", "AveragePageViews", "AverageTimeOnSite", "BenchmarkAverageMaxCpc", "BiddableAppInstallConversions", "BiddableAppPostInstallConversions", "BiddableCohortAppPostInstallConversions", "BenchmarkCtr", "BounceRate", "Clicks", "ControlClicks", "CombinedClicks", "CombinedClicksPerQuery", "CombinedQueries", "ContentBudgetLostImpressionShare", "ContentImpressionShare", "ConversionLastReceivedRequestDateTime", "ConversionLastConversionDate", "ContentRankLostImpressionShare", "ConversionsFromInteractionsRate", "ConversionsValue", "ConversionsValueByConversionDate", "NewCustomerLifetimeValue", "ConversionsValuePerCost", "ConversionsFromInteractionsValuePerInteraction", "Conversions", "ConversionsByConversionDate", "CostMicros", "CostPerAllConversions", "CostPerConversion", "CostPerCurrentModelAttributedConversion", "CrossDeviceConversions", "CrossDeviceConversionsByConversionDate", "CrossDeviceConversionsValue", "CrossDeviceConversionsValueMicros", "CrossDeviceConversionsValueByConversionDate", "Ctr", "CurrentModelAttributedConversions", "CurrentModelAttributedConversionsFromInteractionsRate", "CurrentModelAttributedConversionsFromInteractionsValuePerInteraction", "CurrentModelAttributedConversionsValue", "CurrentModelAttributedConversionsValuePerCost", "EngagementRate", "Engagements", "HotelAverageLeadValueMicros", "HotelCommissionRateMicros", "HotelExpectedCommissionCost", "HotelPriceDifferencePercentage", "HotelEligibleImpressions", "HistoricalCreativeQualityScore", "HistoricalLandingPageQualityScore", "HistoricalQualityScore", "HistoricalSearchPredictedCtr", "GmailForwards", "GmailSaves", "GmailSecondaryClicks", "ImpressionsFromStoreReach", "Impressions", "InteractionRate", "Interactions", "InteractionEventTypes", "InvalidClickRate", "InvalidClicks", "GeneralInvalidClickRate", "GeneralInvalidClicks", "MessageChats", "MessageImpressions", "MessageChatRate", "MobileFriendlyClicksPercentage", "OptimizationScoreUplift", "OptimizationScoreUrl", "OrganicClicks", "OrganicClicksPerQuery", "OrganicImpressions", "OrganicImpressionsPerQuery", "OrganicQueries", "PercentNewVisitors", "PhoneCalls", "PhoneImpressions", "PhoneThroughRate", "RelativeCtr", "SearchAbsoluteTopImpressionShare", "SearchBudgetLostAbsoluteTopImpressionShare", "SearchBudgetLostImpressionShare", "SearchBudgetLostTopImpressionShare", "SearchClickShare", "SearchExactMatchImpressionShare", "SearchImpressionShare", "SearchRankLostAbsoluteTopImpressionShare", "SearchRankLostImpressionShare", "SearchRankLostTopImpressionShare", "SearchTopImpressionShare", "SearchVolume", "SpeedScore", "AverageTargetCpaMicros", "AverageTargetRoas", "TopImpressionPercentage", "ValidAcceleratedMobilePagesClicksPercentage", "ValuePerAllConversions", "ValuePerAllConversionsByConversionDate", "ValuePerConversion", "ValuePerConversionsByConversionDate", "ValuePerCurrentModelAttributedConversion", "VideoQuartileP100Rate", "VideoQuartileP25Rate", "VideoQuartileP50Rate", "VideoQuartileP75Rate", "VideoTrueviewViewRate", "VideoTrueviewViews", "ViewThroughConversions", "SkAdNetworkInstalls", "SkAdNetworkTotalConversions", "PublisherPurchasedClicks", "PublisherOrganicClicks", "PublisherUnknownClicks", "AllConversionsFromLocationAssetClickToCall", "AllConversionsFromLocationAssetDirections", "AllConversionsFromLocationAssetMenu", "AllConversionsFromLocationAssetOrder", "AllConversionsFromLocationAssetOtherEngagement", "AllConversionsFromLocationAssetStoreVisits", "AllConversionsFromLocationAssetWebsite", "EligibleImpressionsFromLocationAssetStoreReach", "ViewThroughConversionsFromLocationAssetClickToCall", "ViewThroughConversionsFromLocationAssetDirections", "ViewThroughConversionsFromLocationAssetMenu", "ViewThroughConversionsFromLocationAssetOrder", "ViewThroughConversionsFromLocationAssetOtherEngagement", "ViewThroughConversionsFromLocationAssetStoreVisits", "ViewThroughConversionsFromLocationAssetWebsite", "Orders", "AverageOrderValueMicros", "AverageCartSize", "CostOfGoodsSoldMicros", "GrossProfitMicros", "GrossProfitMargin", "RevenueMicros", "UnitsSold", "CrossSellCostOfGoodsSoldMicros", "CrossSellGrossProfitMicros", "CrossSellRevenueMicros", "CrossSellUnitsSold", "LeadCostOfGoodsSoldMicros", "LeadGrossProfitMicros", "LeadRevenueMicros", "LeadUnitsSold", "UniqueUsers", "AverageImpressionFrequencyPerUser", "LinkedEntitiesCount", "LinkedSampleEntities", "AssetPinnedTotalCount", "AssetPinnedAsHeadlinePositionOneCount", "AssetPinnedAsHeadlinePositionTwoCount", "AssetPinnedAsHeadlinePositionThreeCount", "AssetPinnedAsDescriptionPositionOneCount", "AssetPinnedAsDescriptionPositionTwoCount", "StoreVisitsLastClickModelAttributedConversions", "ResultsConversionsPurchase", "VideoTrueviewViewRateInFeed", "VideoTrueviewViewRateInStream", "VideoTrueviewViewRateShorts", "CoviewedImpressions", "PrimaryImpressions", "PlatformComparableConversionsFromInteractionsRate", "PlatformComparableConversions", "PlatformComparableConversionsValue", "PlatformComparableConversionsValuePerCost", "PlatformComparableConversionsByConversionDate", "PlatformComparableConversionsValueByConversionDate", "PlatformComparableConversionsFromInteractionsValuePerInteraction", "CostPerPlatformComparableConversion", "ValuePerPlatformComparableConversion", "ValuePerPlatformComparableConversionsByConversionDate", "CostConvertedCurrencyPerPlatformComparableConversion", "UniqueUsersTwoPlus", "UniqueUsersThreePlus", "UniqueUsersFourPlus", "UniqueUsersFivePlus", "UniqueUsersTenPlus", "ValueAdjustment", "AllValueAdjustment", "ClicksUniqueQueryClusters", "ConversionsUniqueQueryClusters", "ImpressionsUniqueQueryClusters", "VideoWatchTimeDurationMillis", "AverageVideoWatchTimeDurationMillis", "Svr", "ActiveViewAudibilityMeasurableImpressions", "ActiveViewAudibilityMeasurableImpressionsRate", "ActiveViewAudibilityInvalidMeasurableImpressionsRate", "ActiveViewAudibilityInvalidGivtMeasurableImpressionsRate", "ActiveViewAudibleImpressions", "ActiveViewAudibleImpressionsRate", "ActiveViewAudibleTwoSecondsImpressions", "ActiveViewAudibleTwoSecondsImpressionsRate", "ActiveViewAudibleThirtySecondsImpressions", "ActiveViewAudibleThirtySecondsImpressionsRate", "ActiveViewAudibleQuartileP25Rate", "ActiveViewAudibleQuartileP50Rate", "ActiveViewAudibleQuartileP75Rate", "ActiveViewAudibleQuartileP100Rate", "BiddableIndirectInstallFirstInAppConversionMicros", "AllAverageCartSize", "AllAverageOrderValueMicros", "AllCostOfGoodsSoldMicros", "AllCrossSellCostOfGoodsSoldMicros", "AllCrossSellGrossProfitMicros", "AllCrossSellRevenueMicros", "AllCrossSellUnitsSold", "AllGrossProfitMargin", "AllGrossProfitMicros", "AllLeadCostOfGoodsSoldMicros", "AllLeadGrossProfitMicros", "AllLeadRevenueMicros", "AllLeadUnitsSold", "AllOrders", "AllRevenueMicros", "AllUnitsSold", "ControlCostPerConversion", "CostPerConversionMarginOfError", "CostPerConversionPValue", "CostPerConversionChangePointEstimate", "ControlConversions", "ConversionsAbsoluteChangeMarginOfError", "ConversionsAbsoluteChangePValue", "ConversionsAbsoluteChangePointEstimate", "ControlConversionValuePerCost", "ConversionValuePerCostMarginOfError", "ConversionValuePerCostPValue", "ConversionValuePerCostChangePointEstimate", "ControlCostMicros", "CostMicrosMarginOfError", "CostMicrosPValue", "CostMicrosChangePointEstimate", "ControlImpressions", "ImpressionsMarginOfError", "ImpressionsPValue", "ImpressionsPointEstimate", "ClicksMarginOfError", "ClicksPValue", "ClicksPointEstimate", "ControlConversionValue", "ConversionValueMarginOfError", "ConversionValuePValue", "ConversionValueChangePointEstimate", }); internal_static_google_ads_googleads_v24_common_SearchVolumeRange_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_google_ads_googleads_v24_common_SearchVolumeRange_fieldAccessorTable = new diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/OptimizeAssetsExperimentInfo.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/OptimizeAssetsExperimentInfo.java new file mode 100644 index 000000000..d51ee6e99 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/OptimizeAssetsExperimentInfo.java @@ -0,0 +1,494 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/common/experiment_types.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.common; + +/** + *
+ * Configuration for an Optimize Assets experiment.
+ * 
+ * + * Protobuf type {@code google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo} + */ +@com.google.protobuf.Generated +public final class OptimizeAssetsExperimentInfo extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) + OptimizeAssetsExperimentInfoOrBuilder { +private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + OptimizeAssetsExperimentInfo.class.getName()); + } + // Use OptimizeAssetsExperimentInfo.newBuilder() to construct. + private OptimizeAssetsExperimentInfo(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private OptimizeAssetsExperimentInfo() { + optimizeAssetsExperimentSubtype_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.class, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.Builder.class); + } + + public static final int OPTIMIZE_ASSETS_EXPERIMENT_SUBTYPE_FIELD_NUMBER = 1; + private int optimizeAssetsExperimentSubtype_ = 0; + /** + *
+   * The subtype of the Optimize Assets experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @return The enum numeric value on the wire for optimizeAssetsExperimentSubtype. + */ + @java.lang.Override public int getOptimizeAssetsExperimentSubtypeValue() { + return optimizeAssetsExperimentSubtype_; + } + /** + *
+   * The subtype of the Optimize Assets experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @return The optimizeAssetsExperimentSubtype. + */ + @java.lang.Override public com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype getOptimizeAssetsExperimentSubtype() { + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype result = com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype.forNumber(optimizeAssetsExperimentSubtype_); + return result == null ? com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (optimizeAssetsExperimentSubtype_ != com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype.UNSPECIFIED.getNumber()) { + output.writeEnum(1, optimizeAssetsExperimentSubtype_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (optimizeAssetsExperimentSubtype_ != com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype.UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, optimizeAssetsExperimentSubtype_); + } + 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.v24.common.OptimizeAssetsExperimentInfo)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo other = (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) obj; + + if (optimizeAssetsExperimentSubtype_ != other.optimizeAssetsExperimentSubtype_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + OPTIMIZE_ASSETS_EXPERIMENT_SUBTYPE_FIELD_NUMBER; + hash = (53 * hash) + optimizeAssetsExperimentSubtype_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo 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.v24.common.OptimizeAssetsExperimentInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo 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.v24.common.OptimizeAssetsExperimentInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.common.OptimizeAssetsExperimentInfo 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Configuration for an Optimize Assets experiment.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.class, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + optimizeAssetsExperimentSubtype_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_OptimizeAssetsExperimentInfo_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo getDefaultInstanceForType() { + return com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo build() { + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo buildPartial() { + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo result = new com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.optimizeAssetsExperimentSubtype_ = optimizeAssetsExperimentSubtype_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) { + return mergeFrom((com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo other) { + if (other == com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance()) return this; + if (other.optimizeAssetsExperimentSubtype_ != 0) { + setOptimizeAssetsExperimentSubtypeValue(other.getOptimizeAssetsExperimentSubtypeValue()); + } + 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 8: { + optimizeAssetsExperimentSubtype_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + 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 optimizeAssetsExperimentSubtype_ = 0; + /** + *
+     * The subtype of the Optimize Assets experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @return The enum numeric value on the wire for optimizeAssetsExperimentSubtype. + */ + @java.lang.Override public int getOptimizeAssetsExperimentSubtypeValue() { + return optimizeAssetsExperimentSubtype_; + } + /** + *
+     * The subtype of the Optimize Assets experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @param value The enum numeric value on the wire for optimizeAssetsExperimentSubtype to set. + * @return This builder for chaining. + */ + public Builder setOptimizeAssetsExperimentSubtypeValue(int value) { + optimizeAssetsExperimentSubtype_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+     * The subtype of the Optimize Assets experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @return The optimizeAssetsExperimentSubtype. + */ + @java.lang.Override + public com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype getOptimizeAssetsExperimentSubtype() { + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype result = com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype.forNumber(optimizeAssetsExperimentSubtype_); + return result == null ? com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype.UNRECOGNIZED : result; + } + /** + *
+     * The subtype of the Optimize Assets experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @param value The optimizeAssetsExperimentSubtype to set. + * @return This builder for chaining. + */ + public Builder setOptimizeAssetsExperimentSubtype(com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype value) { + if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000001; + optimizeAssetsExperimentSubtype_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+     * The subtype of the Optimize Assets experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @return This builder for chaining. + */ + public Builder clearOptimizeAssetsExperimentSubtype() { + bitField0_ = (bitField0_ & ~0x00000001); + optimizeAssetsExperimentSubtype_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) + private static final com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo(); + } + + public static com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public OptimizeAssetsExperimentInfo 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.v24.common.OptimizeAssetsExperimentInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/OptimizeAssetsExperimentInfoOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/OptimizeAssetsExperimentInfoOrBuilder.java new file mode 100644 index 000000000..e46f9e73b --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/OptimizeAssetsExperimentInfoOrBuilder.java @@ -0,0 +1,31 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/common/experiment_types.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.common; + +@com.google.protobuf.Generated +public interface OptimizeAssetsExperimentInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * The subtype of the Optimize Assets experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @return The enum numeric value on the wire for optimizeAssetsExperimentSubtype. + */ + int getOptimizeAssetsExperimentSubtypeValue(); + /** + *
+   * The subtype of the Optimize Assets experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype optimize_assets_experiment_subtype = 1; + * @return The optimizeAssetsExperimentSubtype. + */ + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype getOptimizeAssetsExperimentSubtype(); +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Segments.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Segments.java index e19aa8f7a..41ab15025 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Segments.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/Segments.java @@ -54,6 +54,7 @@ private Segments() { date_ = ""; dayOfWeek_ = 0; device_ = 0; + mobileDevicePlatform_ = 0; externalConversionSource_ = 0; geoTargetAirport_ = ""; geoTargetCanton_ = ""; @@ -134,6 +135,7 @@ private Segments() { verticalAdsListingCity_ = ""; verticalAdsListingCountry_ = ""; verticalAdsListingRegion_ = ""; + verticalAdsListingVenue_ = ""; verticalAdsVertical_ = 0; recommendationType_ = 0; searchEngineResultsPageType_ = 0; @@ -1249,6 +1251,32 @@ public java.lang.String getDate() { return result == null ? com.google.ads.googleads.v24.enums.DeviceEnum.Device.UNRECOGNIZED : result; } + public static final int MOBILE_DEVICE_PLATFORM_FIELD_NUMBER = 219; + private int mobileDevicePlatform_ = 0; + /** + *
+   * Mobile device platform to which metrics apply.
+   * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @return The enum numeric value on the wire for mobileDevicePlatform. + */ + @java.lang.Override public int getMobileDevicePlatformValue() { + return mobileDevicePlatform_; + } + /** + *
+   * Mobile device platform to which metrics apply.
+   * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @return The mobileDevicePlatform. + */ + @java.lang.Override public com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform getMobileDevicePlatform() { + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform result = com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform.forNumber(mobileDevicePlatform_); + return result == null ? com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform.UNRECOGNIZED : result; + } + public static final int EXTERNAL_CONVERSION_SOURCE_FIELD_NUMBER = 55; private int externalConversionSource_ = 0; /** @@ -5917,6 +5945,99 @@ public java.lang.String getVerticalAdsListingRegion() { } } + public static final int VERTICAL_ADS_LISTING_USER_RATING_FIELD_NUMBER = 220; + private long verticalAdsListingUserRating_ = 0L; + /** + *
+   * Integer value specifying the user rating of the vertical ads listing
+   * as a number from 1 to 5, where 5 is the best. The value will always be
+   * within this range.
+   * 
+ * + * optional int64 vertical_ads_listing_user_rating = 220; + * @return Whether the verticalAdsListingUserRating field is set. + */ + @java.lang.Override + public boolean hasVerticalAdsListingUserRating() { + return ((bitField2_ & 0x40000000) != 0); + } + /** + *
+   * Integer value specifying the user rating of the vertical ads listing
+   * as a number from 1 to 5, where 5 is the best. The value will always be
+   * within this range.
+   * 
+ * + * optional int64 vertical_ads_listing_user_rating = 220; + * @return The verticalAdsListingUserRating. + */ + @java.lang.Override + public long getVerticalAdsListingUserRating() { + return verticalAdsListingUserRating_; + } + + public static final int VERTICAL_ADS_LISTING_VENUE_FIELD_NUMBER = 221; + @SuppressWarnings("serial") + private volatile java.lang.Object verticalAdsListingVenue_ = ""; + /** + *
+   * The name of the venue for the vertical ads listing, for example, the
+   * venue for a concert event.
+   * 
+ * + * optional string vertical_ads_listing_venue = 221; + * @return Whether the verticalAdsListingVenue field is set. + */ + @java.lang.Override + public boolean hasVerticalAdsListingVenue() { + return ((bitField2_ & 0x80000000) != 0); + } + /** + *
+   * The name of the venue for the vertical ads listing, for example, the
+   * venue for a concert event.
+   * 
+ * + * optional string vertical_ads_listing_venue = 221; + * @return The verticalAdsListingVenue. + */ + @java.lang.Override + public java.lang.String getVerticalAdsListingVenue() { + java.lang.Object ref = verticalAdsListingVenue_; + 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(); + verticalAdsListingVenue_ = s; + return s; + } + } + /** + *
+   * The name of the venue for the vertical ads listing, for example, the
+   * venue for a concert event.
+   * 
+ * + * optional string vertical_ads_listing_venue = 221; + * @return The bytes for verticalAdsListingVenue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVerticalAdsListingVenueBytes() { + java.lang.Object ref = verticalAdsListingVenue_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + verticalAdsListingVenue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + public static final int VERTICAL_ADS_PARTNER_ACCOUNT_FIELD_NUMBER = 212; private long verticalAdsPartnerAccount_ = 0L; /** @@ -5930,7 +6051,7 @@ public java.lang.String getVerticalAdsListingRegion() { */ @java.lang.Override public boolean hasVerticalAdsPartnerAccount() { - return ((bitField2_ & 0x40000000) != 0); + return ((bitField3_ & 0x00000001) != 0); } /** *
@@ -5959,7 +6080,7 @@ public long getVerticalAdsPartnerAccount() {
    * @return Whether the verticalAdsVertical field is set.
    */
   @java.lang.Override public boolean hasVerticalAdsVertical() {
-    return ((bitField2_ & 0x80000000) != 0);
+    return ((bitField3_ & 0x00000002) != 0);
   }
   /**
    * 
@@ -6055,7 +6176,7 @@ public long getVerticalAdsPartnerAccount() {
    */
   @java.lang.Override
   public boolean hasSearchSubcategory() {
-    return ((bitField3_ & 0x00000001) != 0);
+    return ((bitField3_ & 0x00000004) != 0);
   }
   /**
    * 
@@ -6116,7 +6237,7 @@ public java.lang.String getSearchSubcategory() {
    */
   @java.lang.Override
   public boolean hasSearchTerm() {
-    return ((bitField3_ & 0x00000002) != 0);
+    return ((bitField3_ & 0x00000008) != 0);
   }
   /**
    * 
@@ -6303,7 +6424,7 @@ public java.lang.String getSearchTerm() {
    */
   @java.lang.Override
   public boolean hasWebpage() {
-    return ((bitField3_ & 0x00000004) != 0);
+    return ((bitField3_ & 0x00000010) != 0);
   }
   /**
    * 
@@ -6363,7 +6484,7 @@ public java.lang.String getWebpage() {
    */
   @java.lang.Override
   public boolean hasWeek() {
-    return ((bitField3_ & 0x00000008) != 0);
+    return ((bitField3_ & 0x00000020) != 0);
   }
   /**
    * 
@@ -6423,7 +6544,7 @@ public java.lang.String getWeek() {
    */
   @java.lang.Override
   public boolean hasYear() {
-    return ((bitField3_ & 0x00000010) != 0);
+    return ((bitField3_ & 0x00000040) != 0);
   }
   /**
    * 
@@ -6452,7 +6573,7 @@ public int getYear() {
    */
   @java.lang.Override
   public boolean hasSkAdNetworkFineConversionValue() {
-    return ((bitField3_ & 0x00000020) != 0);
+    return ((bitField3_ & 0x00000080) != 0);
   }
   /**
    * 
@@ -6488,7 +6609,7 @@ public long getSkAdNetworkFineConversionValue() {
    */
   @java.lang.Override
   public boolean hasSkAdNetworkRedistributedFineConversionValue() {
-    return ((bitField3_ & 0x00000040) != 0);
+    return ((bitField3_ & 0x00000100) != 0);
   }
   /**
    * 
@@ -6576,7 +6697,7 @@ public long getSkAdNetworkRedistributedFineConversionValue() {
    */
   @java.lang.Override
   public boolean hasSkAdNetworkSourceApp() {
-    return ((bitField3_ & 0x00000080) != 0);
+    return ((bitField3_ & 0x00000200) != 0);
   }
   /**
    * 
@@ -6673,7 +6794,7 @@ public com.google.ads.googleads.v24.common.SkAdNetworkSourceAppOrBuilder getSkAd
    */
   @java.lang.Override
   public boolean hasSkAdNetworkSourceDomain() {
-    return ((bitField3_ & 0x00000100) != 0);
+    return ((bitField3_ & 0x00000400) != 0);
   }
   /**
    * 
@@ -6767,7 +6888,7 @@ public java.lang.String getSkAdNetworkSourceDomain() {
    */
   @java.lang.Override
   public boolean hasSkAdNetworkPostbackSequenceIndex() {
-    return ((bitField3_ & 0x00000200) != 0);
+    return ((bitField3_ & 0x00000800) != 0);
   }
   /**
    * 
@@ -6795,7 +6916,7 @@ public long getSkAdNetworkPostbackSequenceIndex() {
    */
   @java.lang.Override
   public boolean hasSkAdNetworkVersion() {
-    return ((bitField3_ & 0x00000400) != 0);
+    return ((bitField3_ & 0x00001000) != 0);
   }
   /**
    * 
@@ -6862,7 +6983,7 @@ public java.lang.String getSkAdNetworkVersion() {
    */
   @java.lang.Override
   public boolean hasAssetInteractionTarget() {
-    return ((bitField3_ & 0x00000800) != 0);
+    return ((bitField3_ & 0x00002000) != 0);
   }
   /**
    * 
@@ -7078,7 +7199,7 @@ public com.google.ads.googleads.v24.common.AssetInteractionTargetOrBuilder getAs
    */
   @java.lang.Override
   public boolean hasAdUsingProductData() {
-    return ((bitField3_ & 0x00001000) != 0);
+    return ((bitField3_ & 0x00004000) != 0);
   }
   /**
    * 
@@ -7109,7 +7230,7 @@ public boolean getAdUsingProductData() {
    */
   @java.lang.Override
   public boolean hasAdUsingVideo() {
-    return ((bitField3_ & 0x00002000) != 0);
+    return ((bitField3_ & 0x00008000) != 0);
   }
   /**
    * 
@@ -7338,13 +7459,13 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (((bitField2_ & 0x00080000) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 128, quarter_);
     }
-    if (((bitField3_ & 0x00000004) != 0)) {
+    if (((bitField3_ & 0x00000010) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 129, webpage_);
     }
-    if (((bitField3_ & 0x00000008) != 0)) {
+    if (((bitField3_ & 0x00000020) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 130, week_);
     }
-    if (((bitField3_ & 0x00000010) != 0)) {
+    if (((bitField3_ & 0x00000040) != 0)) {
       output.writeInt32(131, year_);
     }
     if (((bitField1_ & 0x00000200) != 0)) {
@@ -7362,13 +7483,13 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (adDestinationType_ != com.google.ads.googleads.v24.enums.AdDestinationTypeEnum.AdDestinationType.UNSPECIFIED.getNumber()) {
       output.writeEnum(136, adDestinationType_);
     }
-    if (((bitField3_ & 0x00000020) != 0)) {
+    if (((bitField3_ & 0x00000080) != 0)) {
       output.writeInt64(137, skAdNetworkFineConversionValue_);
     }
     if (conversionValueRulePrimaryDimension_ != com.google.ads.googleads.v24.enums.ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension.UNSPECIFIED.getNumber()) {
       output.writeEnum(138, conversionValueRulePrimaryDimension_);
     }
-    if (((bitField3_ & 0x00000800) != 0)) {
+    if (((bitField3_ & 0x00002000) != 0)) {
       output.writeMessage(139, getAssetInteractionTarget());
     }
     if (recommendationType_ != com.google.ads.googleads.v24.enums.RecommendationTypeEnum.RecommendationType.UNSPECIFIED.getNumber()) {
@@ -7380,7 +7501,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (skAdNetworkAdEventType_ != com.google.ads.googleads.v24.enums.SkAdNetworkAdEventTypeEnum.SkAdNetworkAdEventType.UNSPECIFIED.getNumber()) {
       output.writeEnum(142, skAdNetworkAdEventType_);
     }
-    if (((bitField3_ & 0x00000080) != 0)) {
+    if (((bitField3_ & 0x00000200) != 0)) {
       output.writeMessage(143, getSkAdNetworkSourceApp());
     }
     if (skAdNetworkAttributionCredit_ != com.google.ads.googleads.v24.enums.SkAdNetworkAttributionCreditEnum.SkAdNetworkAttributionCredit.UNSPECIFIED.getNumber()) {
@@ -7404,19 +7525,19 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (skAdNetworkCoarseConversionValue_ != com.google.ads.googleads.v24.enums.SkAdNetworkCoarseConversionValueEnum.SkAdNetworkCoarseConversionValue.UNSPECIFIED.getNumber()) {
       output.writeEnum(151, skAdNetworkCoarseConversionValue_);
     }
-    if (((bitField3_ & 0x00000100) != 0)) {
+    if (((bitField3_ & 0x00000400) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 152, skAdNetworkSourceDomain_);
     }
     if (skAdNetworkSourceType_ != com.google.ads.googleads.v24.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType.UNSPECIFIED.getNumber()) {
       output.writeEnum(153, skAdNetworkSourceType_);
     }
-    if (((bitField3_ & 0x00000200) != 0)) {
+    if (((bitField3_ & 0x00000800) != 0)) {
       output.writeInt64(154, skAdNetworkPostbackSequenceIndex_);
     }
-    if (((bitField3_ & 0x00000001) != 0)) {
+    if (((bitField3_ & 0x00000004) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 155, searchSubcategory_);
     }
-    if (((bitField3_ & 0x00000002) != 0)) {
+    if (((bitField3_ & 0x00000008) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 156, searchTerm_);
     }
     if (((bitField0_ & 0x00000400) != 0)) {
@@ -7497,13 +7618,13 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (((bitField0_ & 0x00000010) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 187, activityState_);
     }
-    if (((bitField3_ & 0x00000040) != 0)) {
+    if (((bitField3_ & 0x00000100) != 0)) {
       output.writeInt64(190, skAdNetworkRedistributedFineConversionValue_);
     }
     if (adFormatType_ != com.google.ads.googleads.v24.enums.AdFormatTypeEnum.AdFormatType.UNSPECIFIED.getNumber()) {
       output.writeEnum(191, adFormatType_);
     }
-    if (((bitField3_ & 0x00000400) != 0)) {
+    if (((bitField3_ & 0x00001000) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 192, skAdNetworkVersion_);
     }
     if (((bitField2_ & 0x00100000) != 0)) {
@@ -7533,10 +7654,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (searchTermTargetingStatus_ != com.google.ads.googleads.v24.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatus.UNSPECIFIED.getNumber()) {
       output.writeEnum(201, searchTermTargetingStatus_);
     }
-    if (((bitField3_ & 0x00001000) != 0)) {
+    if (((bitField3_ & 0x00004000) != 0)) {
       output.writeBool(202, adUsingProductData_);
     }
-    if (((bitField3_ & 0x00002000) != 0)) {
+    if (((bitField3_ & 0x00008000) != 0)) {
       output.writeBool(203, adUsingVideo_);
     }
     if (adSubNetworkType_ != com.google.ads.googleads.v24.enums.AdSubNetworkTypeEnum.AdSubNetworkType.UNSPECIFIED.getNumber()) {
@@ -7563,10 +7684,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (((bitField2_ & 0x20000000) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 211, verticalAdsListingRegion_);
     }
-    if (((bitField2_ & 0x40000000) != 0)) {
+    if (((bitField3_ & 0x00000001) != 0)) {
       output.writeInt64(212, verticalAdsPartnerAccount_);
     }
-    if (((bitField2_ & 0x80000000) != 0)) {
+    if (((bitField3_ & 0x00000002) != 0)) {
       output.writeEnum(213, verticalAdsVertical_);
     }
     if (((bitField1_ & 0x04000000) != 0)) {
@@ -7584,6 +7705,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (((bitField1_ & 0x40000000) != 0)) {
       com.google.protobuf.GeneratedMessage.writeString(output, 218, productSoldCategoryLevel5_);
     }
+    if (mobileDevicePlatform_ != com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform.UNSPECIFIED.getNumber()) {
+      output.writeEnum(219, mobileDevicePlatform_);
+    }
+    if (((bitField2_ & 0x40000000) != 0)) {
+      output.writeInt64(220, verticalAdsListingUserRating_);
+    }
+    if (((bitField2_ & 0x80000000) != 0)) {
+      com.google.protobuf.GeneratedMessage.writeString(output, 221, verticalAdsListingVenue_);
+    }
     getUnknownFields().writeTo(output);
   }
 
@@ -7818,13 +7948,13 @@ public int getSerializedSize() {
     if (((bitField2_ & 0x00080000) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(128, quarter_);
     }
-    if (((bitField3_ & 0x00000004) != 0)) {
+    if (((bitField3_ & 0x00000010) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(129, webpage_);
     }
-    if (((bitField3_ & 0x00000008) != 0)) {
+    if (((bitField3_ & 0x00000020) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(130, week_);
     }
-    if (((bitField3_ & 0x00000010) != 0)) {
+    if (((bitField3_ & 0x00000040) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeInt32Size(131, year_);
     }
@@ -7848,7 +7978,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(136, adDestinationType_);
     }
-    if (((bitField3_ & 0x00000020) != 0)) {
+    if (((bitField3_ & 0x00000080) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(137, skAdNetworkFineConversionValue_);
     }
@@ -7856,7 +7986,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(138, conversionValueRulePrimaryDimension_);
     }
-    if (((bitField3_ & 0x00000800) != 0)) {
+    if (((bitField3_ & 0x00002000) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(139, getAssetInteractionTarget());
     }
@@ -7872,7 +8002,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(142, skAdNetworkAdEventType_);
     }
-    if (((bitField3_ & 0x00000080) != 0)) {
+    if (((bitField3_ & 0x00000200) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(143, getSkAdNetworkSourceApp());
     }
@@ -7901,21 +8031,21 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(151, skAdNetworkCoarseConversionValue_);
     }
-    if (((bitField3_ & 0x00000100) != 0)) {
+    if (((bitField3_ & 0x00000400) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(152, skAdNetworkSourceDomain_);
     }
     if (skAdNetworkSourceType_ != com.google.ads.googleads.v24.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType.UNSPECIFIED.getNumber()) {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(153, skAdNetworkSourceType_);
     }
-    if (((bitField3_ & 0x00000200) != 0)) {
+    if (((bitField3_ & 0x00000800) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(154, skAdNetworkPostbackSequenceIndex_);
     }
-    if (((bitField3_ & 0x00000001) != 0)) {
+    if (((bitField3_ & 0x00000004) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(155, searchSubcategory_);
     }
-    if (((bitField3_ & 0x00000002) != 0)) {
+    if (((bitField3_ & 0x00000008) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(156, searchTerm_);
     }
     if (((bitField0_ & 0x00000400) != 0)) {
@@ -7998,7 +8128,7 @@ public int getSerializedSize() {
     if (((bitField0_ & 0x00000010) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(187, activityState_);
     }
-    if (((bitField3_ & 0x00000040) != 0)) {
+    if (((bitField3_ & 0x00000100) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(190, skAdNetworkRedistributedFineConversionValue_);
     }
@@ -8006,7 +8136,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(191, adFormatType_);
     }
-    if (((bitField3_ & 0x00000400) != 0)) {
+    if (((bitField3_ & 0x00001000) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(192, skAdNetworkVersion_);
     }
     if (((bitField2_ & 0x00100000) != 0)) {
@@ -8042,11 +8172,11 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(201, searchTermTargetingStatus_);
     }
-    if (((bitField3_ & 0x00001000) != 0)) {
+    if (((bitField3_ & 0x00004000) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(202, adUsingProductData_);
     }
-    if (((bitField3_ & 0x00002000) != 0)) {
+    if (((bitField3_ & 0x00008000) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(203, adUsingVideo_);
     }
@@ -8076,11 +8206,11 @@ public int getSerializedSize() {
     if (((bitField2_ & 0x20000000) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(211, verticalAdsListingRegion_);
     }
-    if (((bitField2_ & 0x40000000) != 0)) {
+    if (((bitField3_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeInt64Size(212, verticalAdsPartnerAccount_);
     }
-    if (((bitField2_ & 0x80000000) != 0)) {
+    if (((bitField3_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(213, verticalAdsVertical_);
     }
@@ -8099,6 +8229,17 @@ public int getSerializedSize() {
     if (((bitField1_ & 0x40000000) != 0)) {
       size += com.google.protobuf.GeneratedMessage.computeStringSize(218, productSoldCategoryLevel5_);
     }
+    if (mobileDevicePlatform_ != com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform.UNSPECIFIED.getNumber()) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeEnumSize(219, mobileDevicePlatform_);
+    }
+    if (((bitField2_ & 0x40000000) != 0)) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeInt64Size(220, verticalAdsListingUserRating_);
+    }
+    if (((bitField2_ & 0x80000000) != 0)) {
+      size += com.google.protobuf.GeneratedMessage.computeStringSize(221, verticalAdsListingVenue_);
+    }
     size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
@@ -8200,6 +8341,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (dayOfWeek_ != other.dayOfWeek_) return false;
     if (device_ != other.device_) return false;
+    if (mobileDevicePlatform_ != other.mobileDevicePlatform_) return false;
     if (externalConversionSource_ != other.externalConversionSource_) return false;
     if (hasGeoTargetAirport() != other.hasGeoTargetAirport()) return false;
     if (hasGeoTargetAirport()) {
@@ -8606,6 +8748,16 @@ public boolean equals(final java.lang.Object obj) {
       if (!getVerticalAdsListingRegion()
           .equals(other.getVerticalAdsListingRegion())) return false;
     }
+    if (hasVerticalAdsListingUserRating() != other.hasVerticalAdsListingUserRating()) return false;
+    if (hasVerticalAdsListingUserRating()) {
+      if (getVerticalAdsListingUserRating()
+          != other.getVerticalAdsListingUserRating()) return false;
+    }
+    if (hasVerticalAdsListingVenue() != other.hasVerticalAdsListingVenue()) return false;
+    if (hasVerticalAdsListingVenue()) {
+      if (!getVerticalAdsListingVenue()
+          .equals(other.getVerticalAdsListingVenue())) return false;
+    }
     if (hasVerticalAdsPartnerAccount() != other.hasVerticalAdsPartnerAccount()) return false;
     if (hasVerticalAdsPartnerAccount()) {
       if (getVerticalAdsPartnerAccount()
@@ -8797,6 +8949,8 @@ public int hashCode() {
     hash = (53 * hash) + dayOfWeek_;
     hash = (37 * hash) + DEVICE_FIELD_NUMBER;
     hash = (53 * hash) + device_;
+    hash = (37 * hash) + MOBILE_DEVICE_PLATFORM_FIELD_NUMBER;
+    hash = (53 * hash) + mobileDevicePlatform_;
     hash = (37 * hash) + EXTERNAL_CONVERSION_SOURCE_FIELD_NUMBER;
     hash = (53 * hash) + externalConversionSource_;
     if (hasGeoTargetAirport()) {
@@ -9141,6 +9295,15 @@ public int hashCode() {
       hash = (37 * hash) + VERTICAL_ADS_LISTING_REGION_FIELD_NUMBER;
       hash = (53 * hash) + getVerticalAdsListingRegion().hashCode();
     }
+    if (hasVerticalAdsListingUserRating()) {
+      hash = (37 * hash) + VERTICAL_ADS_LISTING_USER_RATING_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getVerticalAdsListingUserRating());
+    }
+    if (hasVerticalAdsListingVenue()) {
+      hash = (37 * hash) + VERTICAL_ADS_LISTING_VENUE_FIELD_NUMBER;
+      hash = (53 * hash) + getVerticalAdsListingVenue().hashCode();
+    }
     if (hasVerticalAdsPartnerAccount()) {
       hash = (37 * hash) + VERTICAL_ADS_PARTNER_ACCOUNT_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
@@ -9421,6 +9584,7 @@ public Builder clear() {
       date_ = "";
       dayOfWeek_ = 0;
       device_ = 0;
+      mobileDevicePlatform_ = 0;
       externalConversionSource_ = 0;
       geoTargetAirport_ = "";
       geoTargetCanton_ = "";
@@ -9515,6 +9679,8 @@ public Builder clear() {
       verticalAdsListingCity_ = "";
       verticalAdsListingCountry_ = "";
       verticalAdsListingRegion_ = "";
+      verticalAdsListingUserRating_ = 0L;
+      verticalAdsListingVenue_ = "";
       verticalAdsPartnerAccount_ = 0L;
       verticalAdsVertical_ = 0;
       recommendationType_ = 0;
@@ -9689,28 +9855,27 @@ private void buildPartial0(com.google.ads.googleads.v24.common.Segments result)
         result.device_ = device_;
       }
       if (((from_bitField0_ & 0x04000000) != 0)) {
-        result.externalConversionSource_ = externalConversionSource_;
+        result.mobileDevicePlatform_ = mobileDevicePlatform_;
       }
       if (((from_bitField0_ & 0x08000000) != 0)) {
+        result.externalConversionSource_ = externalConversionSource_;
+      }
+      if (((from_bitField0_ & 0x10000000) != 0)) {
         result.geoTargetAirport_ = geoTargetAirport_;
         to_bitField0_ |= 0x00008000;
       }
-      if (((from_bitField0_ & 0x10000000) != 0)) {
+      if (((from_bitField0_ & 0x20000000) != 0)) {
         result.geoTargetCanton_ = geoTargetCanton_;
         to_bitField0_ |= 0x00010000;
       }
-      if (((from_bitField0_ & 0x20000000) != 0)) {
+      if (((from_bitField0_ & 0x40000000) != 0)) {
         result.geoTargetCity_ = geoTargetCity_;
         to_bitField0_ |= 0x00020000;
       }
-      if (((from_bitField0_ & 0x40000000) != 0)) {
+      if (((from_bitField0_ & 0x80000000) != 0)) {
         result.geoTargetCountry_ = geoTargetCountry_;
         to_bitField0_ |= 0x00040000;
       }
-      if (((from_bitField0_ & 0x80000000) != 0)) {
-        result.geoTargetCounty_ = geoTargetCounty_;
-        to_bitField0_ |= 0x00080000;
-      }
       result.bitField0_ |= to_bitField0_;
     }
 
@@ -9718,130 +9883,130 @@ private void buildPartial1(com.google.ads.googleads.v24.common.Segments result)
       int from_bitField1_ = bitField1_;
       int to_bitField0_ = 0;
       if (((from_bitField1_ & 0x00000001) != 0)) {
+        result.geoTargetCounty_ = geoTargetCounty_;
+        to_bitField0_ |= 0x00080000;
+      }
+      if (((from_bitField1_ & 0x00000002) != 0)) {
         result.geoTargetDistrict_ = geoTargetDistrict_;
         to_bitField0_ |= 0x00100000;
       }
-      if (((from_bitField1_ & 0x00000002) != 0)) {
+      if (((from_bitField1_ & 0x00000004) != 0)) {
         result.geoTargetMetro_ = geoTargetMetro_;
         to_bitField0_ |= 0x00200000;
       }
-      if (((from_bitField1_ & 0x00000004) != 0)) {
+      if (((from_bitField1_ & 0x00000008) != 0)) {
         result.geoTargetMostSpecificLocation_ = geoTargetMostSpecificLocation_;
         to_bitField0_ |= 0x00400000;
       }
-      if (((from_bitField1_ & 0x00000008) != 0)) {
+      if (((from_bitField1_ & 0x00000010) != 0)) {
         result.geoTargetPostalCode_ = geoTargetPostalCode_;
         to_bitField0_ |= 0x00800000;
       }
-      if (((from_bitField1_ & 0x00000010) != 0)) {
+      if (((from_bitField1_ & 0x00000020) != 0)) {
         result.geoTargetProvince_ = geoTargetProvince_;
         to_bitField0_ |= 0x01000000;
       }
-      if (((from_bitField1_ & 0x00000020) != 0)) {
+      if (((from_bitField1_ & 0x00000040) != 0)) {
         result.geoTargetRegion_ = geoTargetRegion_;
         to_bitField0_ |= 0x02000000;
       }
-      if (((from_bitField1_ & 0x00000040) != 0)) {
+      if (((from_bitField1_ & 0x00000080) != 0)) {
         result.geoTargetState_ = geoTargetState_;
         to_bitField0_ |= 0x04000000;
       }
-      if (((from_bitField1_ & 0x00000080) != 0)) {
+      if (((from_bitField1_ & 0x00000100) != 0)) {
         result.hotelBookingWindowDays_ = hotelBookingWindowDays_;
         to_bitField0_ |= 0x08000000;
       }
-      if (((from_bitField1_ & 0x00000100) != 0)) {
+      if (((from_bitField1_ & 0x00000200) != 0)) {
         result.hotelCenterId_ = hotelCenterId_;
         to_bitField0_ |= 0x10000000;
       }
-      if (((from_bitField1_ & 0x00000200) != 0)) {
+      if (((from_bitField1_ & 0x00000400) != 0)) {
         result.hotelCheckInDate_ = hotelCheckInDate_;
         to_bitField0_ |= 0x20000000;
       }
-      if (((from_bitField1_ & 0x00000400) != 0)) {
+      if (((from_bitField1_ & 0x00000800) != 0)) {
         result.hotelCheckInDayOfWeek_ = hotelCheckInDayOfWeek_;
       }
-      if (((from_bitField1_ & 0x00000800) != 0)) {
+      if (((from_bitField1_ & 0x00001000) != 0)) {
         result.hotelCity_ = hotelCity_;
         to_bitField0_ |= 0x40000000;
       }
-      if (((from_bitField1_ & 0x00001000) != 0)) {
+      if (((from_bitField1_ & 0x00002000) != 0)) {
         result.hotelClass_ = hotelClass_;
         to_bitField0_ |= 0x80000000;
       }
       int to_bitField1_ = 0;
-      if (((from_bitField1_ & 0x00002000) != 0)) {
+      if (((from_bitField1_ & 0x00004000) != 0)) {
         result.hotelCountry_ = hotelCountry_;
         to_bitField1_ |= 0x00000001;
       }
-      if (((from_bitField1_ & 0x00004000) != 0)) {
+      if (((from_bitField1_ & 0x00008000) != 0)) {
         result.hotelDateSelectionType_ = hotelDateSelectionType_;
       }
-      if (((from_bitField1_ & 0x00008000) != 0)) {
+      if (((from_bitField1_ & 0x00010000) != 0)) {
         result.hotelLengthOfStay_ = hotelLengthOfStay_;
         to_bitField1_ |= 0x00000002;
       }
-      if (((from_bitField1_ & 0x00010000) != 0)) {
+      if (((from_bitField1_ & 0x00020000) != 0)) {
         result.hotelRateRuleId_ = hotelRateRuleId_;
         to_bitField1_ |= 0x00000004;
       }
-      if (((from_bitField1_ & 0x00020000) != 0)) {
+      if (((from_bitField1_ & 0x00040000) != 0)) {
         result.hotelRateType_ = hotelRateType_;
       }
-      if (((from_bitField1_ & 0x00040000) != 0)) {
+      if (((from_bitField1_ & 0x00080000) != 0)) {
         result.hotelPriceBucket_ = hotelPriceBucket_;
       }
-      if (((from_bitField1_ & 0x00080000) != 0)) {
+      if (((from_bitField1_ & 0x00100000) != 0)) {
         result.hotelState_ = hotelState_;
         to_bitField1_ |= 0x00000008;
       }
-      if (((from_bitField1_ & 0x00100000) != 0)) {
+      if (((from_bitField1_ & 0x00200000) != 0)) {
         result.hour_ = hour_;
         to_bitField1_ |= 0x00000010;
       }
-      if (((from_bitField1_ & 0x00200000) != 0)) {
+      if (((from_bitField1_ & 0x00400000) != 0)) {
         result.interactionOnThisExtension_ = interactionOnThisExtension_;
         to_bitField1_ |= 0x00000020;
       }
-      if (((from_bitField1_ & 0x00400000) != 0)) {
+      if (((from_bitField1_ & 0x00800000) != 0)) {
         result.keyword_ = keywordBuilder_ == null
             ? keyword_
             : keywordBuilder_.build();
         to_bitField1_ |= 0x00000040;
       }
-      if (((from_bitField1_ & 0x00800000) != 0)) {
+      if (((from_bitField1_ & 0x01000000) != 0)) {
         result.landingPageSource_ = landingPageSource_;
       }
-      if (((from_bitField1_ & 0x01000000) != 0)) {
+      if (((from_bitField1_ & 0x02000000) != 0)) {
         result.month_ = month_;
         to_bitField1_ |= 0x00000080;
       }
-      if (((from_bitField1_ & 0x02000000) != 0)) {
+      if (((from_bitField1_ & 0x04000000) != 0)) {
         result.monthOfYear_ = monthOfYear_;
       }
-      if (((from_bitField1_ & 0x04000000) != 0)) {
+      if (((from_bitField1_ & 0x08000000) != 0)) {
         result.partnerHotelId_ = partnerHotelId_;
         to_bitField1_ |= 0x00000100;
       }
-      if (((from_bitField1_ & 0x08000000) != 0)) {
+      if (((from_bitField1_ & 0x10000000) != 0)) {
         result.productAggregatorId_ = productAggregatorId_;
         to_bitField1_ |= 0x00000200;
       }
-      if (((from_bitField1_ & 0x10000000) != 0)) {
+      if (((from_bitField1_ & 0x20000000) != 0)) {
         result.productCategoryLevel1_ = productCategoryLevel1_;
         to_bitField1_ |= 0x00000400;
       }
-      if (((from_bitField1_ & 0x20000000) != 0)) {
+      if (((from_bitField1_ & 0x40000000) != 0)) {
         result.productCategoryLevel2_ = productCategoryLevel2_;
         to_bitField1_ |= 0x00000800;
       }
-      if (((from_bitField1_ & 0x40000000) != 0)) {
+      if (((from_bitField1_ & 0x80000000) != 0)) {
         result.productCategoryLevel3_ = productCategoryLevel3_;
         to_bitField1_ |= 0x00001000;
       }
-      if (((from_bitField1_ & 0x80000000) != 0)) {
-        result.productCategoryLevel4_ = productCategoryLevel4_;
-        to_bitField1_ |= 0x00002000;
-      }
       result.bitField0_ |= to_bitField0_;
       result.bitField1_ |= to_bitField1_;
     }
@@ -9850,130 +10015,130 @@ private void buildPartial2(com.google.ads.googleads.v24.common.Segments result)
       int from_bitField2_ = bitField2_;
       int to_bitField1_ = 0;
       if (((from_bitField2_ & 0x00000001) != 0)) {
+        result.productCategoryLevel4_ = productCategoryLevel4_;
+        to_bitField1_ |= 0x00002000;
+      }
+      if (((from_bitField2_ & 0x00000002) != 0)) {
         result.productCategoryLevel5_ = productCategoryLevel5_;
         to_bitField1_ |= 0x00004000;
       }
-      if (((from_bitField2_ & 0x00000002) != 0)) {
+      if (((from_bitField2_ & 0x00000004) != 0)) {
         result.productBrand_ = productBrand_;
         to_bitField1_ |= 0x00008000;
       }
-      if (((from_bitField2_ & 0x00000004) != 0)) {
+      if (((from_bitField2_ & 0x00000008) != 0)) {
         result.productChannel_ = productChannel_;
       }
-      if (((from_bitField2_ & 0x00000008) != 0)) {
+      if (((from_bitField2_ & 0x00000010) != 0)) {
         result.productChannelExclusivity_ = productChannelExclusivity_;
       }
-      if (((from_bitField2_ & 0x00000010) != 0)) {
+      if (((from_bitField2_ & 0x00000020) != 0)) {
         result.productCondition_ = productCondition_;
       }
-      if (((from_bitField2_ & 0x00000020) != 0)) {
+      if (((from_bitField2_ & 0x00000040) != 0)) {
         result.productCountry_ = productCountry_;
         to_bitField1_ |= 0x00010000;
       }
-      if (((from_bitField2_ & 0x00000040) != 0)) {
+      if (((from_bitField2_ & 0x00000080) != 0)) {
         result.productCustomAttribute0_ = productCustomAttribute0_;
         to_bitField1_ |= 0x00020000;
       }
-      if (((from_bitField2_ & 0x00000080) != 0)) {
+      if (((from_bitField2_ & 0x00000100) != 0)) {
         result.productCustomAttribute1_ = productCustomAttribute1_;
         to_bitField1_ |= 0x00040000;
       }
-      if (((from_bitField2_ & 0x00000100) != 0)) {
+      if (((from_bitField2_ & 0x00000200) != 0)) {
         result.productCustomAttribute2_ = productCustomAttribute2_;
         to_bitField1_ |= 0x00080000;
       }
-      if (((from_bitField2_ & 0x00000200) != 0)) {
+      if (((from_bitField2_ & 0x00000400) != 0)) {
         result.productCustomAttribute3_ = productCustomAttribute3_;
         to_bitField1_ |= 0x00100000;
       }
-      if (((from_bitField2_ & 0x00000400) != 0)) {
+      if (((from_bitField2_ & 0x00000800) != 0)) {
         result.productCustomAttribute4_ = productCustomAttribute4_;
         to_bitField1_ |= 0x00200000;
       }
-      if (((from_bitField2_ & 0x00000800) != 0)) {
+      if (((from_bitField2_ & 0x00001000) != 0)) {
         result.productFeedLabel_ = productFeedLabel_;
         to_bitField1_ |= 0x00400000;
       }
-      if (((from_bitField2_ & 0x00001000) != 0)) {
+      if (((from_bitField2_ & 0x00002000) != 0)) {
         result.productItemId_ = productItemId_;
         to_bitField1_ |= 0x00800000;
       }
-      if (((from_bitField2_ & 0x00002000) != 0)) {
+      if (((from_bitField2_ & 0x00004000) != 0)) {
         result.productLanguage_ = productLanguage_;
         to_bitField1_ |= 0x01000000;
       }
-      if (((from_bitField2_ & 0x00004000) != 0)) {
+      if (((from_bitField2_ & 0x00008000) != 0)) {
         result.productMerchantId_ = productMerchantId_;
         to_bitField1_ |= 0x02000000;
       }
-      if (((from_bitField2_ & 0x00008000) != 0)) {
+      if (((from_bitField2_ & 0x00010000) != 0)) {
         result.productSoldCategoryLevel1_ = productSoldCategoryLevel1_;
         to_bitField1_ |= 0x04000000;
       }
-      if (((from_bitField2_ & 0x00010000) != 0)) {
+      if (((from_bitField2_ & 0x00020000) != 0)) {
         result.productSoldCategoryLevel2_ = productSoldCategoryLevel2_;
         to_bitField1_ |= 0x08000000;
       }
-      if (((from_bitField2_ & 0x00020000) != 0)) {
+      if (((from_bitField2_ & 0x00040000) != 0)) {
         result.productSoldCategoryLevel3_ = productSoldCategoryLevel3_;
         to_bitField1_ |= 0x10000000;
       }
-      if (((from_bitField2_ & 0x00040000) != 0)) {
+      if (((from_bitField2_ & 0x00080000) != 0)) {
         result.productSoldCategoryLevel4_ = productSoldCategoryLevel4_;
         to_bitField1_ |= 0x20000000;
       }
-      if (((from_bitField2_ & 0x00080000) != 0)) {
+      if (((from_bitField2_ & 0x00100000) != 0)) {
         result.productSoldCategoryLevel5_ = productSoldCategoryLevel5_;
         to_bitField1_ |= 0x40000000;
       }
-      if (((from_bitField2_ & 0x00100000) != 0)) {
+      if (((from_bitField2_ & 0x00200000) != 0)) {
         result.productSoldBrand_ = productSoldBrand_;
         to_bitField1_ |= 0x80000000;
       }
-      if (((from_bitField2_ & 0x00200000) != 0)) {
+      if (((from_bitField2_ & 0x00400000) != 0)) {
         result.productSoldCondition_ = productSoldCondition_;
       }
       int to_bitField2_ = 0;
-      if (((from_bitField2_ & 0x00400000) != 0)) {
+      if (((from_bitField2_ & 0x00800000) != 0)) {
         result.productSoldCustomAttribute0_ = productSoldCustomAttribute0_;
         to_bitField2_ |= 0x00000001;
       }
-      if (((from_bitField2_ & 0x00800000) != 0)) {
+      if (((from_bitField2_ & 0x01000000) != 0)) {
         result.productSoldCustomAttribute1_ = productSoldCustomAttribute1_;
         to_bitField2_ |= 0x00000002;
       }
-      if (((from_bitField2_ & 0x01000000) != 0)) {
+      if (((from_bitField2_ & 0x02000000) != 0)) {
         result.productSoldCustomAttribute2_ = productSoldCustomAttribute2_;
         to_bitField2_ |= 0x00000004;
       }
-      if (((from_bitField2_ & 0x02000000) != 0)) {
+      if (((from_bitField2_ & 0x04000000) != 0)) {
         result.productSoldCustomAttribute3_ = productSoldCustomAttribute3_;
         to_bitField2_ |= 0x00000008;
       }
-      if (((from_bitField2_ & 0x04000000) != 0)) {
+      if (((from_bitField2_ & 0x08000000) != 0)) {
         result.productSoldCustomAttribute4_ = productSoldCustomAttribute4_;
         to_bitField2_ |= 0x00000010;
       }
-      if (((from_bitField2_ & 0x08000000) != 0)) {
+      if (((from_bitField2_ & 0x10000000) != 0)) {
         result.productSoldItemId_ = productSoldItemId_;
         to_bitField2_ |= 0x00000020;
       }
-      if (((from_bitField2_ & 0x10000000) != 0)) {
+      if (((from_bitField2_ & 0x20000000) != 0)) {
         result.productSoldTitle_ = productSoldTitle_;
         to_bitField2_ |= 0x00000040;
       }
-      if (((from_bitField2_ & 0x20000000) != 0)) {
+      if (((from_bitField2_ & 0x40000000) != 0)) {
         result.productSoldTypeL1_ = productSoldTypeL1_;
         to_bitField2_ |= 0x00000080;
       }
-      if (((from_bitField2_ & 0x40000000) != 0)) {
+      if (((from_bitField2_ & 0x80000000) != 0)) {
         result.productSoldTypeL2_ = productSoldTypeL2_;
         to_bitField2_ |= 0x00000100;
       }
-      if (((from_bitField2_ & 0x80000000) != 0)) {
-        result.productSoldTypeL3_ = productSoldTypeL3_;
-        to_bitField2_ |= 0x00000200;
-      }
       result.bitField1_ |= to_bitField1_;
       result.bitField2_ |= to_bitField2_;
     }
@@ -9982,127 +10147,128 @@ private void buildPartial3(com.google.ads.googleads.v24.common.Segments result)
       int from_bitField3_ = bitField3_;
       int to_bitField2_ = 0;
       if (((from_bitField3_ & 0x00000001) != 0)) {
+        result.productSoldTypeL3_ = productSoldTypeL3_;
+        to_bitField2_ |= 0x00000200;
+      }
+      if (((from_bitField3_ & 0x00000002) != 0)) {
         result.productSoldTypeL4_ = productSoldTypeL4_;
         to_bitField2_ |= 0x00000400;
       }
-      if (((from_bitField3_ & 0x00000002) != 0)) {
+      if (((from_bitField3_ & 0x00000004) != 0)) {
         result.productSoldTypeL5_ = productSoldTypeL5_;
         to_bitField2_ |= 0x00000800;
       }
-      if (((from_bitField3_ & 0x00000004) != 0)) {
+      if (((from_bitField3_ & 0x00000008) != 0)) {
         result.productStoreId_ = productStoreId_;
         to_bitField2_ |= 0x00001000;
       }
-      if (((from_bitField3_ & 0x00000008) != 0)) {
+      if (((from_bitField3_ & 0x00000010) != 0)) {
         result.productTitle_ = productTitle_;
         to_bitField2_ |= 0x00002000;
       }
-      if (((from_bitField3_ & 0x00000010) != 0)) {
+      if (((from_bitField3_ & 0x00000020) != 0)) {
         result.productTypeL1_ = productTypeL1_;
         to_bitField2_ |= 0x00004000;
       }
-      if (((from_bitField3_ & 0x00000020) != 0)) {
+      if (((from_bitField3_ & 0x00000040) != 0)) {
         result.productTypeL2_ = productTypeL2_;
         to_bitField2_ |= 0x00008000;
       }
-      if (((from_bitField3_ & 0x00000040) != 0)) {
+      if (((from_bitField3_ & 0x00000080) != 0)) {
         result.productTypeL3_ = productTypeL3_;
         to_bitField2_ |= 0x00010000;
       }
-      if (((from_bitField3_ & 0x00000080) != 0)) {
+      if (((from_bitField3_ & 0x00000100) != 0)) {
         result.productTypeL4_ = productTypeL4_;
         to_bitField2_ |= 0x00020000;
       }
-      if (((from_bitField3_ & 0x00000100) != 0)) {
+      if (((from_bitField3_ & 0x00000200) != 0)) {
         result.productTypeL5_ = productTypeL5_;
         to_bitField2_ |= 0x00040000;
       }
-      if (((from_bitField3_ & 0x00000200) != 0)) {
+      if (((from_bitField3_ & 0x00000400) != 0)) {
         result.quarter_ = quarter_;
         to_bitField2_ |= 0x00080000;
       }
-      if (((from_bitField3_ & 0x00000400) != 0)) {
+      if (((from_bitField3_ & 0x00000800) != 0)) {
         result.travelDestinationCity_ = travelDestinationCity_;
         to_bitField2_ |= 0x00100000;
       }
-      if (((from_bitField3_ & 0x00000800) != 0)) {
+      if (((from_bitField3_ & 0x00001000) != 0)) {
         result.travelDestinationCountry_ = travelDestinationCountry_;
         to_bitField2_ |= 0x00200000;
       }
-      if (((from_bitField3_ & 0x00001000) != 0)) {
+      if (((from_bitField3_ & 0x00002000) != 0)) {
         result.travelDestinationRegion_ = travelDestinationRegion_;
         to_bitField2_ |= 0x00400000;
       }
-      if (((from_bitField3_ & 0x00002000) != 0)) {
+      if (((from_bitField3_ & 0x00004000) != 0)) {
         result.verticalAdsEventParticipantDisplayNames_ = verticalAdsEventParticipantDisplayNames_;
         to_bitField2_ |= 0x00800000;
       }
-      if (((from_bitField3_ & 0x00004000) != 0)) {
+      if (((from_bitField3_ & 0x00008000) != 0)) {
         result.verticalAdsHotelClass_ = verticalAdsHotelClass_;
         to_bitField2_ |= 0x01000000;
       }
-      if (((from_bitField3_ & 0x00008000) != 0)) {
+      if (((from_bitField3_ & 0x00010000) != 0)) {
         result.verticalAdsListing_ = verticalAdsListing_;
         to_bitField2_ |= 0x02000000;
       }
-      if (((from_bitField3_ & 0x00010000) != 0)) {
+      if (((from_bitField3_ & 0x00020000) != 0)) {
         result.verticalAdsListingBrand_ = verticalAdsListingBrand_;
         to_bitField2_ |= 0x04000000;
       }
-      if (((from_bitField3_ & 0x00020000) != 0)) {
+      if (((from_bitField3_ & 0x00040000) != 0)) {
         result.verticalAdsListingCity_ = verticalAdsListingCity_;
         to_bitField2_ |= 0x08000000;
       }
-      if (((from_bitField3_ & 0x00040000) != 0)) {
+      if (((from_bitField3_ & 0x00080000) != 0)) {
         result.verticalAdsListingCountry_ = verticalAdsListingCountry_;
         to_bitField2_ |= 0x10000000;
       }
-      if (((from_bitField3_ & 0x00080000) != 0)) {
+      if (((from_bitField3_ & 0x00100000) != 0)) {
         result.verticalAdsListingRegion_ = verticalAdsListingRegion_;
         to_bitField2_ |= 0x20000000;
       }
-      if (((from_bitField3_ & 0x00100000) != 0)) {
-        result.verticalAdsPartnerAccount_ = verticalAdsPartnerAccount_;
-        to_bitField2_ |= 0x40000000;
-      }
       if (((from_bitField3_ & 0x00200000) != 0)) {
-        result.verticalAdsVertical_ = verticalAdsVertical_;
-        to_bitField2_ |= 0x80000000;
+        result.verticalAdsListingUserRating_ = verticalAdsListingUserRating_;
+        to_bitField2_ |= 0x40000000;
       }
       if (((from_bitField3_ & 0x00400000) != 0)) {
-        result.recommendationType_ = recommendationType_;
+        result.verticalAdsListingVenue_ = verticalAdsListingVenue_;
+        to_bitField2_ |= 0x80000000;
       }
+      int to_bitField3_ = 0;
       if (((from_bitField3_ & 0x00800000) != 0)) {
-        result.searchEngineResultsPageType_ = searchEngineResultsPageType_;
+        result.verticalAdsPartnerAccount_ = verticalAdsPartnerAccount_;
+        to_bitField3_ |= 0x00000001;
       }
-      int to_bitField3_ = 0;
       if (((from_bitField3_ & 0x01000000) != 0)) {
-        result.searchSubcategory_ = searchSubcategory_;
-        to_bitField3_ |= 0x00000001;
+        result.verticalAdsVertical_ = verticalAdsVertical_;
+        to_bitField3_ |= 0x00000002;
       }
       if (((from_bitField3_ & 0x02000000) != 0)) {
-        result.searchTerm_ = searchTerm_;
-        to_bitField3_ |= 0x00000002;
+        result.recommendationType_ = recommendationType_;
       }
       if (((from_bitField3_ & 0x04000000) != 0)) {
-        result.searchTermMatchType_ = searchTermMatchType_;
+        result.searchEngineResultsPageType_ = searchEngineResultsPageType_;
       }
       if (((from_bitField3_ & 0x08000000) != 0)) {
-        result.matchType_ = matchType_;
+        result.searchSubcategory_ = searchSubcategory_;
+        to_bitField3_ |= 0x00000004;
       }
       if (((from_bitField3_ & 0x10000000) != 0)) {
-        result.slot_ = slot_;
+        result.searchTerm_ = searchTerm_;
+        to_bitField3_ |= 0x00000008;
       }
       if (((from_bitField3_ & 0x20000000) != 0)) {
-        result.conversionValueRulePrimaryDimension_ = conversionValueRulePrimaryDimension_;
+        result.searchTermMatchType_ = searchTermMatchType_;
       }
       if (((from_bitField3_ & 0x40000000) != 0)) {
-        result.webpage_ = webpage_;
-        to_bitField3_ |= 0x00000004;
+        result.matchType_ = matchType_;
       }
       if (((from_bitField3_ & 0x80000000) != 0)) {
-        result.week_ = week_;
-        to_bitField3_ |= 0x00000008;
+        result.slot_ = slot_;
       }
       result.bitField2_ |= to_bitField2_;
       result.bitField3_ |= to_bitField3_;
@@ -10110,80 +10276,91 @@ private void buildPartial3(com.google.ads.googleads.v24.common.Segments result)
 
     private void buildPartial4(com.google.ads.googleads.v24.common.Segments result) {
       int from_bitField4_ = bitField4_;
-      int to_bitField3_ = 0;
       if (((from_bitField4_ & 0x00000001) != 0)) {
-        result.year_ = year_;
-        to_bitField3_ |= 0x00000010;
+        result.conversionValueRulePrimaryDimension_ = conversionValueRulePrimaryDimension_;
       }
+      int to_bitField3_ = 0;
       if (((from_bitField4_ & 0x00000002) != 0)) {
-        result.skAdNetworkFineConversionValue_ = skAdNetworkFineConversionValue_;
-        to_bitField3_ |= 0x00000020;
+        result.webpage_ = webpage_;
+        to_bitField3_ |= 0x00000010;
       }
       if (((from_bitField4_ & 0x00000004) != 0)) {
-        result.skAdNetworkRedistributedFineConversionValue_ = skAdNetworkRedistributedFineConversionValue_;
-        to_bitField3_ |= 0x00000040;
+        result.week_ = week_;
+        to_bitField3_ |= 0x00000020;
       }
       if (((from_bitField4_ & 0x00000008) != 0)) {
-        result.skAdNetworkUserType_ = skAdNetworkUserType_;
+        result.year_ = year_;
+        to_bitField3_ |= 0x00000040;
       }
       if (((from_bitField4_ & 0x00000010) != 0)) {
-        result.skAdNetworkAdEventType_ = skAdNetworkAdEventType_;
+        result.skAdNetworkFineConversionValue_ = skAdNetworkFineConversionValue_;
+        to_bitField3_ |= 0x00000080;
       }
       if (((from_bitField4_ & 0x00000020) != 0)) {
+        result.skAdNetworkRedistributedFineConversionValue_ = skAdNetworkRedistributedFineConversionValue_;
+        to_bitField3_ |= 0x00000100;
+      }
+      if (((from_bitField4_ & 0x00000040) != 0)) {
+        result.skAdNetworkUserType_ = skAdNetworkUserType_;
+      }
+      if (((from_bitField4_ & 0x00000080) != 0)) {
+        result.skAdNetworkAdEventType_ = skAdNetworkAdEventType_;
+      }
+      if (((from_bitField4_ & 0x00000100) != 0)) {
         result.skAdNetworkSourceApp_ = skAdNetworkSourceAppBuilder_ == null
             ? skAdNetworkSourceApp_
             : skAdNetworkSourceAppBuilder_.build();
-        to_bitField3_ |= 0x00000080;
+        to_bitField3_ |= 0x00000200;
       }
-      if (((from_bitField4_ & 0x00000040) != 0)) {
+      if (((from_bitField4_ & 0x00000200) != 0)) {
         result.skAdNetworkAttributionCredit_ = skAdNetworkAttributionCredit_;
       }
-      if (((from_bitField4_ & 0x00000080) != 0)) {
+      if (((from_bitField4_ & 0x00000400) != 0)) {
         result.skAdNetworkCoarseConversionValue_ = skAdNetworkCoarseConversionValue_;
       }
-      if (((from_bitField4_ & 0x00000100) != 0)) {
+      if (((from_bitField4_ & 0x00000800) != 0)) {
         result.skAdNetworkSourceDomain_ = skAdNetworkSourceDomain_;
-        to_bitField3_ |= 0x00000100;
+        to_bitField3_ |= 0x00000400;
       }
-      if (((from_bitField4_ & 0x00000200) != 0)) {
+      if (((from_bitField4_ & 0x00001000) != 0)) {
         result.skAdNetworkSourceType_ = skAdNetworkSourceType_;
       }
-      if (((from_bitField4_ & 0x00000400) != 0)) {
+      if (((from_bitField4_ & 0x00002000) != 0)) {
         result.skAdNetworkPostbackSequenceIndex_ = skAdNetworkPostbackSequenceIndex_;
-        to_bitField3_ |= 0x00000200;
+        to_bitField3_ |= 0x00000800;
       }
-      if (((from_bitField4_ & 0x00000800) != 0)) {
+      if (((from_bitField4_ & 0x00004000) != 0)) {
         result.skAdNetworkVersion_ = skAdNetworkVersion_;
-        to_bitField3_ |= 0x00000400;
+        to_bitField3_ |= 0x00001000;
       }
-      if (((from_bitField4_ & 0x00001000) != 0)) {
+      if (((from_bitField4_ & 0x00008000) != 0)) {
         result.assetInteractionTarget_ = assetInteractionTargetBuilder_ == null
             ? assetInteractionTarget_
             : assetInteractionTargetBuilder_.build();
-        to_bitField3_ |= 0x00000800;
+        to_bitField3_ |= 0x00002000;
       }
-      if (((from_bitField4_ & 0x00002000) != 0)) {
+      if (((from_bitField4_ & 0x00010000) != 0)) {
         result.newVersusReturningCustomers_ = newVersusReturningCustomers_;
       }
-      if (((from_bitField4_ & 0x00004000) != 0)) {
+      if (((from_bitField4_ & 0x00020000) != 0)) {
         result.adjustedAgeRange_ = adjustedAgeRange_;
       }
-      if (((from_bitField4_ & 0x00008000) != 0)) {
+      if (((from_bitField4_ & 0x00040000) != 0)) {
         result.adjustedGender_ = adjustedGender_;
       }
-      if (((from_bitField4_ & 0x00010000) != 0)) {
+      if (((from_bitField4_ & 0x00080000) != 0)) {
         result.searchTermMatchSource_ = searchTermMatchSource_;
       }
-      if (((from_bitField4_ & 0x00020000) != 0)) {
+      if (((from_bitField4_ & 0x00100000) != 0)) {
         result.searchTermTargetingStatus_ = searchTermTargetingStatus_;
       }
-      if (((from_bitField4_ & 0x00040000) != 0)) {
+      if (((from_bitField4_ & 0x00200000) != 0)) {
         result.adUsingProductData_ = adUsingProductData_;
-        to_bitField3_ |= 0x00001000;
+        to_bitField3_ |= 0x00004000;
       }
-      if (((from_bitField4_ & 0x00080000) != 0)) {
+      if (((from_bitField4_ & 0x00400000) != 0)) {
         result.adUsingVideo_ = adUsingVideo_;
-        to_bitField3_ |= 0x00002000;
+        to_bitField3_ |= 0x00008000;
       }
       result.bitField3_ |= to_bitField3_;
     }
@@ -10300,67 +10477,70 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       if (other.device_ != 0) {
         setDeviceValue(other.getDeviceValue());
       }
+      if (other.mobileDevicePlatform_ != 0) {
+        setMobileDevicePlatformValue(other.getMobileDevicePlatformValue());
+      }
       if (other.externalConversionSource_ != 0) {
         setExternalConversionSourceValue(other.getExternalConversionSourceValue());
       }
       if (other.hasGeoTargetAirport()) {
         geoTargetAirport_ = other.geoTargetAirport_;
-        bitField0_ |= 0x08000000;
+        bitField0_ |= 0x10000000;
         onChanged();
       }
       if (other.hasGeoTargetCanton()) {
         geoTargetCanton_ = other.geoTargetCanton_;
-        bitField0_ |= 0x10000000;
+        bitField0_ |= 0x20000000;
         onChanged();
       }
       if (other.hasGeoTargetCity()) {
         geoTargetCity_ = other.geoTargetCity_;
-        bitField0_ |= 0x20000000;
+        bitField0_ |= 0x40000000;
         onChanged();
       }
       if (other.hasGeoTargetCountry()) {
         geoTargetCountry_ = other.geoTargetCountry_;
-        bitField0_ |= 0x40000000;
+        bitField0_ |= 0x80000000;
         onChanged();
       }
       if (other.hasGeoTargetCounty()) {
         geoTargetCounty_ = other.geoTargetCounty_;
-        bitField0_ |= 0x80000000;
+        bitField1_ |= 0x00000001;
         onChanged();
       }
       if (other.hasGeoTargetDistrict()) {
         geoTargetDistrict_ = other.geoTargetDistrict_;
-        bitField1_ |= 0x00000001;
+        bitField1_ |= 0x00000002;
         onChanged();
       }
       if (other.hasGeoTargetMetro()) {
         geoTargetMetro_ = other.geoTargetMetro_;
-        bitField1_ |= 0x00000002;
+        bitField1_ |= 0x00000004;
         onChanged();
       }
       if (other.hasGeoTargetMostSpecificLocation()) {
         geoTargetMostSpecificLocation_ = other.geoTargetMostSpecificLocation_;
-        bitField1_ |= 0x00000004;
+        bitField1_ |= 0x00000008;
         onChanged();
       }
       if (other.hasGeoTargetPostalCode()) {
         geoTargetPostalCode_ = other.geoTargetPostalCode_;
-        bitField1_ |= 0x00000008;
+        bitField1_ |= 0x00000010;
         onChanged();
       }
       if (other.hasGeoTargetProvince()) {
         geoTargetProvince_ = other.geoTargetProvince_;
-        bitField1_ |= 0x00000010;
+        bitField1_ |= 0x00000020;
         onChanged();
       }
       if (other.hasGeoTargetRegion()) {
         geoTargetRegion_ = other.geoTargetRegion_;
-        bitField1_ |= 0x00000020;
+        bitField1_ |= 0x00000040;
         onChanged();
       }
       if (other.hasGeoTargetState()) {
         geoTargetState_ = other.geoTargetState_;
-        bitField1_ |= 0x00000040;
+        bitField1_ |= 0x00000080;
         onChanged();
       }
       if (other.hasHotelBookingWindowDays()) {
@@ -10371,7 +10551,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasHotelCheckInDate()) {
         hotelCheckInDate_ = other.hotelCheckInDate_;
-        bitField1_ |= 0x00000200;
+        bitField1_ |= 0x00000400;
         onChanged();
       }
       if (other.hotelCheckInDayOfWeek_ != 0) {
@@ -10379,7 +10559,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasHotelCity()) {
         hotelCity_ = other.hotelCity_;
-        bitField1_ |= 0x00000800;
+        bitField1_ |= 0x00001000;
         onChanged();
       }
       if (other.hasHotelClass()) {
@@ -10387,7 +10567,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasHotelCountry()) {
         hotelCountry_ = other.hotelCountry_;
-        bitField1_ |= 0x00002000;
+        bitField1_ |= 0x00004000;
         onChanged();
       }
       if (other.hotelDateSelectionType_ != 0) {
@@ -10398,7 +10578,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasHotelRateRuleId()) {
         hotelRateRuleId_ = other.hotelRateRuleId_;
-        bitField1_ |= 0x00010000;
+        bitField1_ |= 0x00020000;
         onChanged();
       }
       if (other.hotelRateType_ != 0) {
@@ -10409,7 +10589,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasHotelState()) {
         hotelState_ = other.hotelState_;
-        bitField1_ |= 0x00080000;
+        bitField1_ |= 0x00100000;
         onChanged();
       }
       if (other.hasHour()) {
@@ -10426,7 +10606,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasMonth()) {
         month_ = other.month_;
-        bitField1_ |= 0x01000000;
+        bitField1_ |= 0x02000000;
         onChanged();
       }
       if (other.monthOfYear_ != 0) {
@@ -10434,7 +10614,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasPartnerHotelId()) {
         partnerHotelId_ = other.partnerHotelId_;
-        bitField1_ |= 0x04000000;
+        bitField1_ |= 0x08000000;
         onChanged();
       }
       if (other.hasProductAggregatorId()) {
@@ -10442,32 +10622,32 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasProductCategoryLevel1()) {
         productCategoryLevel1_ = other.productCategoryLevel1_;
-        bitField1_ |= 0x10000000;
+        bitField1_ |= 0x20000000;
         onChanged();
       }
       if (other.hasProductCategoryLevel2()) {
         productCategoryLevel2_ = other.productCategoryLevel2_;
-        bitField1_ |= 0x20000000;
+        bitField1_ |= 0x40000000;
         onChanged();
       }
       if (other.hasProductCategoryLevel3()) {
         productCategoryLevel3_ = other.productCategoryLevel3_;
-        bitField1_ |= 0x40000000;
+        bitField1_ |= 0x80000000;
         onChanged();
       }
       if (other.hasProductCategoryLevel4()) {
         productCategoryLevel4_ = other.productCategoryLevel4_;
-        bitField1_ |= 0x80000000;
+        bitField2_ |= 0x00000001;
         onChanged();
       }
       if (other.hasProductCategoryLevel5()) {
         productCategoryLevel5_ = other.productCategoryLevel5_;
-        bitField2_ |= 0x00000001;
+        bitField2_ |= 0x00000002;
         onChanged();
       }
       if (other.hasProductBrand()) {
         productBrand_ = other.productBrand_;
-        bitField2_ |= 0x00000002;
+        bitField2_ |= 0x00000004;
         onChanged();
       }
       if (other.productChannel_ != 0) {
@@ -10481,47 +10661,47 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasProductCountry()) {
         productCountry_ = other.productCountry_;
-        bitField2_ |= 0x00000020;
+        bitField2_ |= 0x00000040;
         onChanged();
       }
       if (other.hasProductCustomAttribute0()) {
         productCustomAttribute0_ = other.productCustomAttribute0_;
-        bitField2_ |= 0x00000040;
+        bitField2_ |= 0x00000080;
         onChanged();
       }
       if (other.hasProductCustomAttribute1()) {
         productCustomAttribute1_ = other.productCustomAttribute1_;
-        bitField2_ |= 0x00000080;
+        bitField2_ |= 0x00000100;
         onChanged();
       }
       if (other.hasProductCustomAttribute2()) {
         productCustomAttribute2_ = other.productCustomAttribute2_;
-        bitField2_ |= 0x00000100;
+        bitField2_ |= 0x00000200;
         onChanged();
       }
       if (other.hasProductCustomAttribute3()) {
         productCustomAttribute3_ = other.productCustomAttribute3_;
-        bitField2_ |= 0x00000200;
+        bitField2_ |= 0x00000400;
         onChanged();
       }
       if (other.hasProductCustomAttribute4()) {
         productCustomAttribute4_ = other.productCustomAttribute4_;
-        bitField2_ |= 0x00000400;
+        bitField2_ |= 0x00000800;
         onChanged();
       }
       if (other.hasProductFeedLabel()) {
         productFeedLabel_ = other.productFeedLabel_;
-        bitField2_ |= 0x00000800;
+        bitField2_ |= 0x00001000;
         onChanged();
       }
       if (other.hasProductItemId()) {
         productItemId_ = other.productItemId_;
-        bitField2_ |= 0x00001000;
+        bitField2_ |= 0x00002000;
         onChanged();
       }
       if (other.hasProductLanguage()) {
         productLanguage_ = other.productLanguage_;
-        bitField2_ |= 0x00002000;
+        bitField2_ |= 0x00004000;
         onChanged();
       }
       if (other.hasProductMerchantId()) {
@@ -10529,32 +10709,32 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasProductSoldCategoryLevel1()) {
         productSoldCategoryLevel1_ = other.productSoldCategoryLevel1_;
-        bitField2_ |= 0x00008000;
+        bitField2_ |= 0x00010000;
         onChanged();
       }
       if (other.hasProductSoldCategoryLevel2()) {
         productSoldCategoryLevel2_ = other.productSoldCategoryLevel2_;
-        bitField2_ |= 0x00010000;
+        bitField2_ |= 0x00020000;
         onChanged();
       }
       if (other.hasProductSoldCategoryLevel3()) {
         productSoldCategoryLevel3_ = other.productSoldCategoryLevel3_;
-        bitField2_ |= 0x00020000;
+        bitField2_ |= 0x00040000;
         onChanged();
       }
       if (other.hasProductSoldCategoryLevel4()) {
         productSoldCategoryLevel4_ = other.productSoldCategoryLevel4_;
-        bitField2_ |= 0x00040000;
+        bitField2_ |= 0x00080000;
         onChanged();
       }
       if (other.hasProductSoldCategoryLevel5()) {
         productSoldCategoryLevel5_ = other.productSoldCategoryLevel5_;
-        bitField2_ |= 0x00080000;
+        bitField2_ |= 0x00100000;
         onChanged();
       }
       if (other.hasProductSoldBrand()) {
         productSoldBrand_ = other.productSoldBrand_;
-        bitField2_ |= 0x00100000;
+        bitField2_ |= 0x00200000;
         onChanged();
       }
       if (other.productSoldCondition_ != 0) {
@@ -10562,122 +10742,122 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasProductSoldCustomAttribute0()) {
         productSoldCustomAttribute0_ = other.productSoldCustomAttribute0_;
-        bitField2_ |= 0x00400000;
+        bitField2_ |= 0x00800000;
         onChanged();
       }
       if (other.hasProductSoldCustomAttribute1()) {
         productSoldCustomAttribute1_ = other.productSoldCustomAttribute1_;
-        bitField2_ |= 0x00800000;
+        bitField2_ |= 0x01000000;
         onChanged();
       }
       if (other.hasProductSoldCustomAttribute2()) {
         productSoldCustomAttribute2_ = other.productSoldCustomAttribute2_;
-        bitField2_ |= 0x01000000;
+        bitField2_ |= 0x02000000;
         onChanged();
       }
       if (other.hasProductSoldCustomAttribute3()) {
         productSoldCustomAttribute3_ = other.productSoldCustomAttribute3_;
-        bitField2_ |= 0x02000000;
+        bitField2_ |= 0x04000000;
         onChanged();
       }
       if (other.hasProductSoldCustomAttribute4()) {
         productSoldCustomAttribute4_ = other.productSoldCustomAttribute4_;
-        bitField2_ |= 0x04000000;
+        bitField2_ |= 0x08000000;
         onChanged();
       }
       if (other.hasProductSoldItemId()) {
         productSoldItemId_ = other.productSoldItemId_;
-        bitField2_ |= 0x08000000;
+        bitField2_ |= 0x10000000;
         onChanged();
       }
       if (other.hasProductSoldTitle()) {
         productSoldTitle_ = other.productSoldTitle_;
-        bitField2_ |= 0x10000000;
+        bitField2_ |= 0x20000000;
         onChanged();
       }
       if (other.hasProductSoldTypeL1()) {
         productSoldTypeL1_ = other.productSoldTypeL1_;
-        bitField2_ |= 0x20000000;
+        bitField2_ |= 0x40000000;
         onChanged();
       }
       if (other.hasProductSoldTypeL2()) {
         productSoldTypeL2_ = other.productSoldTypeL2_;
-        bitField2_ |= 0x40000000;
+        bitField2_ |= 0x80000000;
         onChanged();
       }
       if (other.hasProductSoldTypeL3()) {
         productSoldTypeL3_ = other.productSoldTypeL3_;
-        bitField2_ |= 0x80000000;
+        bitField3_ |= 0x00000001;
         onChanged();
       }
       if (other.hasProductSoldTypeL4()) {
         productSoldTypeL4_ = other.productSoldTypeL4_;
-        bitField3_ |= 0x00000001;
+        bitField3_ |= 0x00000002;
         onChanged();
       }
       if (other.hasProductSoldTypeL5()) {
         productSoldTypeL5_ = other.productSoldTypeL5_;
-        bitField3_ |= 0x00000002;
+        bitField3_ |= 0x00000004;
         onChanged();
       }
       if (other.hasProductStoreId()) {
         productStoreId_ = other.productStoreId_;
-        bitField3_ |= 0x00000004;
+        bitField3_ |= 0x00000008;
         onChanged();
       }
       if (other.hasProductTitle()) {
         productTitle_ = other.productTitle_;
-        bitField3_ |= 0x00000008;
+        bitField3_ |= 0x00000010;
         onChanged();
       }
       if (other.hasProductTypeL1()) {
         productTypeL1_ = other.productTypeL1_;
-        bitField3_ |= 0x00000010;
+        bitField3_ |= 0x00000020;
         onChanged();
       }
       if (other.hasProductTypeL2()) {
         productTypeL2_ = other.productTypeL2_;
-        bitField3_ |= 0x00000020;
+        bitField3_ |= 0x00000040;
         onChanged();
       }
       if (other.hasProductTypeL3()) {
         productTypeL3_ = other.productTypeL3_;
-        bitField3_ |= 0x00000040;
+        bitField3_ |= 0x00000080;
         onChanged();
       }
       if (other.hasProductTypeL4()) {
         productTypeL4_ = other.productTypeL4_;
-        bitField3_ |= 0x00000080;
+        bitField3_ |= 0x00000100;
         onChanged();
       }
       if (other.hasProductTypeL5()) {
         productTypeL5_ = other.productTypeL5_;
-        bitField3_ |= 0x00000100;
+        bitField3_ |= 0x00000200;
         onChanged();
       }
       if (other.hasQuarter()) {
         quarter_ = other.quarter_;
-        bitField3_ |= 0x00000200;
+        bitField3_ |= 0x00000400;
         onChanged();
       }
       if (other.hasTravelDestinationCity()) {
         travelDestinationCity_ = other.travelDestinationCity_;
-        bitField3_ |= 0x00000400;
+        bitField3_ |= 0x00000800;
         onChanged();
       }
       if (other.hasTravelDestinationCountry()) {
         travelDestinationCountry_ = other.travelDestinationCountry_;
-        bitField3_ |= 0x00000800;
+        bitField3_ |= 0x00001000;
         onChanged();
       }
       if (other.hasTravelDestinationRegion()) {
         travelDestinationRegion_ = other.travelDestinationRegion_;
-        bitField3_ |= 0x00001000;
+        bitField3_ |= 0x00002000;
         onChanged();
       }
       if (other.hasVerticalAdsEventParticipantDisplayNames()) {
         verticalAdsEventParticipantDisplayNames_ = other.verticalAdsEventParticipantDisplayNames_;
-        bitField3_ |= 0x00002000;
+        bitField3_ |= 0x00004000;
         onChanged();
       }
       if (other.hasVerticalAdsHotelClass()) {
@@ -10685,27 +10865,35 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasVerticalAdsListing()) {
         verticalAdsListing_ = other.verticalAdsListing_;
-        bitField3_ |= 0x00008000;
+        bitField3_ |= 0x00010000;
         onChanged();
       }
       if (other.hasVerticalAdsListingBrand()) {
         verticalAdsListingBrand_ = other.verticalAdsListingBrand_;
-        bitField3_ |= 0x00010000;
+        bitField3_ |= 0x00020000;
         onChanged();
       }
       if (other.hasVerticalAdsListingCity()) {
         verticalAdsListingCity_ = other.verticalAdsListingCity_;
-        bitField3_ |= 0x00020000;
+        bitField3_ |= 0x00040000;
         onChanged();
       }
       if (other.hasVerticalAdsListingCountry()) {
         verticalAdsListingCountry_ = other.verticalAdsListingCountry_;
-        bitField3_ |= 0x00040000;
+        bitField3_ |= 0x00080000;
         onChanged();
       }
       if (other.hasVerticalAdsListingRegion()) {
         verticalAdsListingRegion_ = other.verticalAdsListingRegion_;
-        bitField3_ |= 0x00080000;
+        bitField3_ |= 0x00100000;
+        onChanged();
+      }
+      if (other.hasVerticalAdsListingUserRating()) {
+        setVerticalAdsListingUserRating(other.getVerticalAdsListingUserRating());
+      }
+      if (other.hasVerticalAdsListingVenue()) {
+        verticalAdsListingVenue_ = other.verticalAdsListingVenue_;
+        bitField3_ |= 0x00400000;
         onChanged();
       }
       if (other.hasVerticalAdsPartnerAccount()) {
@@ -10722,12 +10910,12 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasSearchSubcategory()) {
         searchSubcategory_ = other.searchSubcategory_;
-        bitField3_ |= 0x01000000;
+        bitField3_ |= 0x08000000;
         onChanged();
       }
       if (other.hasSearchTerm()) {
         searchTerm_ = other.searchTerm_;
-        bitField3_ |= 0x02000000;
+        bitField3_ |= 0x10000000;
         onChanged();
       }
       if (other.searchTermMatchType_ != 0) {
@@ -10744,12 +10932,12 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasWebpage()) {
         webpage_ = other.webpage_;
-        bitField3_ |= 0x40000000;
+        bitField4_ |= 0x00000002;
         onChanged();
       }
       if (other.hasWeek()) {
         week_ = other.week_;
-        bitField3_ |= 0x80000000;
+        bitField4_ |= 0x00000004;
         onChanged();
       }
       if (other.hasYear()) {
@@ -10778,7 +10966,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasSkAdNetworkSourceDomain()) {
         skAdNetworkSourceDomain_ = other.skAdNetworkSourceDomain_;
-        bitField4_ |= 0x00000100;
+        bitField4_ |= 0x00000800;
         onChanged();
       }
       if (other.skAdNetworkSourceType_ != 0) {
@@ -10789,7 +10977,7 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.Segments other) {
       }
       if (other.hasSkAdNetworkVersion()) {
         skAdNetworkVersion_ = other.skAdNetworkVersion_;
-        bitField4_ |= 0x00000800;
+        bitField4_ |= 0x00004000;
         onChanged();
       }
       if (other.hasAssetInteractionTarget()) {
@@ -10864,27 +11052,27 @@ public Builder mergeFrom(
             } // case 40
             case 72: {
               hotelCheckInDayOfWeek_ = input.readEnum();
-              bitField1_ |= 0x00000400;
+              bitField1_ |= 0x00000800;
               break;
             } // case 72
             case 104: {
               hotelDateSelectionType_ = input.readEnum();
-              bitField1_ |= 0x00004000;
+              bitField1_ |= 0x00008000;
               break;
             } // case 104
             case 144: {
               monthOfYear_ = input.readEnum();
-              bitField1_ |= 0x02000000;
+              bitField1_ |= 0x04000000;
               break;
             } // case 144
             case 176: {
               searchTermMatchType_ = input.readEnum();
-              bitField3_ |= 0x04000000;
+              bitField3_ |= 0x20000000;
               break;
             } // case 176
             case 184: {
               slot_ = input.readEnum();
-              bitField3_ |= 0x10000000;
+              bitField3_ |= 0x80000000;
               break;
             } // case 184
             case 208: {
@@ -10894,17 +11082,17 @@ public Builder mergeFrom(
             } // case 208
             case 240: {
               productChannel_ = input.readEnum();
-              bitField2_ |= 0x00000004;
+              bitField2_ |= 0x00000008;
               break;
             } // case 240
             case 248: {
               productChannelExclusivity_ = input.readEnum();
-              bitField2_ |= 0x00000008;
+              bitField2_ |= 0x00000010;
               break;
             } // case 248
             case 256: {
               productCondition_ = input.readEnum();
-              bitField2_ |= 0x00000010;
+              bitField2_ |= 0x00000020;
               break;
             } // case 256
             case 400: {
@@ -10924,29 +11112,29 @@ public Builder mergeFrom(
             } // case 424
             case 440: {
               externalConversionSource_ = input.readEnum();
-              bitField0_ |= 0x04000000;
+              bitField0_ |= 0x08000000;
               break;
             } // case 440
             case 490: {
               input.readMessage(
                   internalGetKeywordFieldBuilder().getBuilder(),
                   extensionRegistry);
-              bitField1_ |= 0x00400000;
+              bitField1_ |= 0x00800000;
               break;
             } // case 490
             case 560: {
               searchEngineResultsPageType_ = input.readEnum();
-              bitField3_ |= 0x00800000;
+              bitField3_ |= 0x04000000;
               break;
             } // case 560
             case 592: {
               hotelRateType_ = input.readEnum();
-              bitField1_ |= 0x00020000;
+              bitField1_ |= 0x00040000;
               break;
             } // case 592
             case 624: {
               hotelPriceBucket_ = input.readEnum();
-              bitField1_ |= 0x00040000;
+              bitField1_ |= 0x00080000;
               break;
             } // case 624
             case 634: {
@@ -10956,142 +11144,142 @@ public Builder mergeFrom(
             } // case 634
             case 640: {
               hotelCenterId_ = input.readInt64();
-              bitField1_ |= 0x00000100;
+              bitField1_ |= 0x00000200;
               break;
             } // case 640
             case 650: {
               hotelCheckInDate_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000200;
+              bitField1_ |= 0x00000400;
               break;
             } // case 650
             case 658: {
               hotelCity_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000800;
+              bitField1_ |= 0x00001000;
               break;
             } // case 658
             case 664: {
               hotelClass_ = input.readInt32();
-              bitField1_ |= 0x00001000;
+              bitField1_ |= 0x00002000;
               break;
             } // case 664
             case 674: {
               hotelCountry_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00002000;
+              bitField1_ |= 0x00004000;
               break;
             } // case 674
             case 680: {
               hotelLengthOfStay_ = input.readInt32();
-              bitField1_ |= 0x00008000;
+              bitField1_ |= 0x00010000;
               break;
             } // case 680
             case 690: {
               hotelRateRuleId_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00010000;
+              bitField1_ |= 0x00020000;
               break;
             } // case 690
             case 698: {
               hotelState_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00080000;
+              bitField1_ |= 0x00100000;
               break;
             } // case 698
             case 704: {
               hour_ = input.readInt32();
-              bitField1_ |= 0x00100000;
+              bitField1_ |= 0x00200000;
               break;
             } // case 704
             case 712: {
               interactionOnThisExtension_ = input.readBool();
-              bitField1_ |= 0x00200000;
+              bitField1_ |= 0x00400000;
               break;
             } // case 712
             case 722: {
               month_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x01000000;
+              bitField1_ |= 0x02000000;
               break;
             } // case 722
             case 730: {
               partnerHotelId_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x04000000;
+              bitField1_ |= 0x08000000;
               break;
             } // case 730
             case 778: {
               productBrand_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000002;
+              bitField2_ |= 0x00000004;
               break;
             } // case 778
             case 786: {
               productCountry_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000020;
+              bitField2_ |= 0x00000040;
               break;
             } // case 786
             case 794: {
               productCustomAttribute0_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000040;
+              bitField2_ |= 0x00000080;
               break;
             } // case 794
             case 802: {
               productCustomAttribute1_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000080;
+              bitField2_ |= 0x00000100;
               break;
             } // case 802
             case 810: {
               productCustomAttribute2_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000100;
+              bitField2_ |= 0x00000200;
               break;
             } // case 810
             case 818: {
               productCustomAttribute3_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000200;
+              bitField2_ |= 0x00000400;
               break;
             } // case 818
             case 826: {
               productCustomAttribute4_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000400;
+              bitField2_ |= 0x00000800;
               break;
             } // case 826
             case 834: {
               productItemId_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00001000;
+              bitField2_ |= 0x00002000;
               break;
             } // case 834
             case 842: {
               productLanguage_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00002000;
+              bitField2_ |= 0x00004000;
               break;
             } // case 842
             case 850: {
               productStoreId_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000004;
+              bitField3_ |= 0x00000008;
               break;
             } // case 850
             case 858: {
               productTitle_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000008;
+              bitField3_ |= 0x00000010;
               break;
             } // case 858
             case 866: {
               productTypeL1_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000010;
+              bitField3_ |= 0x00000020;
               break;
             } // case 866
             case 874: {
               productTypeL2_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000020;
+              bitField3_ |= 0x00000040;
               break;
             } // case 874
             case 882: {
               productTypeL3_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000040;
+              bitField3_ |= 0x00000080;
               break;
             } // case 882
             case 890: {
               productTypeL4_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000080;
+              bitField3_ |= 0x00000100;
               break;
             } // case 890
             case 898: {
               productTypeL5_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000100;
+              bitField3_ |= 0x00000200;
               break;
             } // case 898
             case 906: {
@@ -11111,92 +11299,92 @@ public Builder mergeFrom(
             } // case 920
             case 930: {
               geoTargetAirport_ = input.readStringRequireUtf8();
-              bitField0_ |= 0x08000000;
+              bitField0_ |= 0x10000000;
               break;
             } // case 930
             case 938: {
               geoTargetCanton_ = input.readStringRequireUtf8();
-              bitField0_ |= 0x10000000;
+              bitField0_ |= 0x20000000;
               break;
             } // case 938
             case 946: {
               geoTargetCity_ = input.readStringRequireUtf8();
-              bitField0_ |= 0x20000000;
+              bitField0_ |= 0x40000000;
               break;
             } // case 946
             case 954: {
               geoTargetCountry_ = input.readStringRequireUtf8();
-              bitField0_ |= 0x40000000;
+              bitField0_ |= 0x80000000;
               break;
             } // case 954
             case 962: {
               geoTargetCounty_ = input.readStringRequireUtf8();
-              bitField0_ |= 0x80000000;
+              bitField1_ |= 0x00000001;
               break;
             } // case 962
             case 970: {
               geoTargetDistrict_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000001;
+              bitField1_ |= 0x00000002;
               break;
             } // case 970
             case 978: {
               geoTargetMetro_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000002;
+              bitField1_ |= 0x00000004;
               break;
             } // case 978
             case 986: {
               geoTargetMostSpecificLocation_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000004;
+              bitField1_ |= 0x00000008;
               break;
             } // case 986
             case 994: {
               geoTargetPostalCode_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000008;
+              bitField1_ |= 0x00000010;
               break;
             } // case 994
             case 1002: {
               geoTargetProvince_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000010;
+              bitField1_ |= 0x00000020;
               break;
             } // case 1002
             case 1010: {
               geoTargetRegion_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000020;
+              bitField1_ |= 0x00000040;
               break;
             } // case 1010
             case 1018: {
               geoTargetState_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x00000040;
+              bitField1_ |= 0x00000080;
               break;
             } // case 1018
             case 1026: {
               quarter_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000200;
+              bitField3_ |= 0x00000400;
               break;
             } // case 1026
             case 1034: {
               webpage_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x40000000;
+              bitField4_ |= 0x00000002;
               break;
             } // case 1034
             case 1042: {
               week_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x80000000;
+              bitField4_ |= 0x00000004;
               break;
             } // case 1042
             case 1048: {
               year_ = input.readInt32();
-              bitField4_ |= 0x00000001;
+              bitField4_ |= 0x00000008;
               break;
             } // case 1048
             case 1056: {
               productAggregatorId_ = input.readInt64();
-              bitField1_ |= 0x08000000;
+              bitField1_ |= 0x10000000;
               break;
             } // case 1056
             case 1064: {
               productMerchantId_ = input.readInt64();
-              bitField2_ |= 0x00004000;
+              bitField2_ |= 0x00008000;
               break;
             } // case 1064
             case 1074: {
@@ -11208,7 +11396,7 @@ public Builder mergeFrom(
             } // case 1074
             case 1080: {
               hotelBookingWindowDays_ = input.readInt64();
-              bitField1_ |= 0x00000080;
+              bitField1_ |= 0x00000100;
               break;
             } // case 1080
             case 1088: {
@@ -11218,46 +11406,46 @@ public Builder mergeFrom(
             } // case 1088
             case 1096: {
               skAdNetworkFineConversionValue_ = input.readInt64();
-              bitField4_ |= 0x00000002;
+              bitField4_ |= 0x00000010;
               break;
             } // case 1096
             case 1104: {
               conversionValueRulePrimaryDimension_ = input.readEnum();
-              bitField3_ |= 0x20000000;
+              bitField4_ |= 0x00000001;
               break;
             } // case 1104
             case 1114: {
               input.readMessage(
                   internalGetAssetInteractionTargetFieldBuilder().getBuilder(),
                   extensionRegistry);
-              bitField4_ |= 0x00001000;
+              bitField4_ |= 0x00008000;
               break;
             } // case 1114
             case 1120: {
               recommendationType_ = input.readEnum();
-              bitField3_ |= 0x00400000;
+              bitField3_ |= 0x02000000;
               break;
             } // case 1120
             case 1128: {
               skAdNetworkUserType_ = input.readEnum();
-              bitField4_ |= 0x00000008;
+              bitField4_ |= 0x00000040;
               break;
             } // case 1128
             case 1136: {
               skAdNetworkAdEventType_ = input.readEnum();
-              bitField4_ |= 0x00000010;
+              bitField4_ |= 0x00000080;
               break;
             } // case 1136
             case 1146: {
               input.readMessage(
                   internalGetSkAdNetworkSourceAppFieldBuilder().getBuilder(),
                   extensionRegistry);
-              bitField4_ |= 0x00000020;
+              bitField4_ |= 0x00000100;
               break;
             } // case 1146
             case 1152: {
               skAdNetworkAttributionCredit_ = input.readEnum();
-              bitField4_ |= 0x00000040;
+              bitField4_ |= 0x00000200;
               break;
             } // case 1152
             case 1162: {
@@ -11267,7 +11455,7 @@ public Builder mergeFrom(
             } // case 1162
             case 1178: {
               productFeedLabel_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000800;
+              bitField2_ |= 0x00001000;
               break;
             } // case 1178
             case 1184: {
@@ -11287,32 +11475,32 @@ public Builder mergeFrom(
             } // case 1202
             case 1208: {
               skAdNetworkCoarseConversionValue_ = input.readEnum();
-              bitField4_ |= 0x00000080;
+              bitField4_ |= 0x00000400;
               break;
             } // case 1208
             case 1218: {
               skAdNetworkSourceDomain_ = input.readStringRequireUtf8();
-              bitField4_ |= 0x00000100;
+              bitField4_ |= 0x00000800;
               break;
             } // case 1218
             case 1224: {
               skAdNetworkSourceType_ = input.readEnum();
-              bitField4_ |= 0x00000200;
+              bitField4_ |= 0x00001000;
               break;
             } // case 1224
             case 1232: {
               skAdNetworkPostbackSequenceIndex_ = input.readInt64();
-              bitField4_ |= 0x00000400;
+              bitField4_ |= 0x00002000;
               break;
             } // case 1232
             case 1242: {
               searchSubcategory_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x01000000;
+              bitField3_ |= 0x08000000;
               break;
             } // case 1242
             case 1250: {
               searchTerm_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x02000000;
+              bitField3_ |= 0x10000000;
               break;
             } // case 1250
             case 1258: {
@@ -11332,102 +11520,102 @@ public Builder mergeFrom(
             } // case 1274
             case 1280: {
               newVersusReturningCustomers_ = input.readEnum();
-              bitField4_ |= 0x00002000;
+              bitField4_ |= 0x00010000;
               break;
             } // case 1280
             case 1290: {
               productCategoryLevel1_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x10000000;
+              bitField1_ |= 0x20000000;
               break;
             } // case 1290
             case 1298: {
               productCategoryLevel2_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x20000000;
+              bitField1_ |= 0x40000000;
               break;
             } // case 1298
             case 1306: {
               productCategoryLevel3_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x40000000;
+              bitField1_ |= 0x80000000;
               break;
             } // case 1306
             case 1314: {
               productCategoryLevel4_ = input.readStringRequireUtf8();
-              bitField1_ |= 0x80000000;
+              bitField2_ |= 0x00000001;
               break;
             } // case 1314
             case 1322: {
               productCategoryLevel5_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00000001;
+              bitField2_ |= 0x00000002;
               break;
             } // case 1322
             case 1370: {
               productSoldBrand_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00100000;
+              bitField2_ |= 0x00200000;
               break;
             } // case 1370
             case 1376: {
               productSoldCondition_ = input.readEnum();
-              bitField2_ |= 0x00200000;
+              bitField2_ |= 0x00400000;
               break;
             } // case 1376
             case 1386: {
               productSoldCustomAttribute0_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00400000;
+              bitField2_ |= 0x00800000;
               break;
             } // case 1386
             case 1394: {
               productSoldCustomAttribute1_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00800000;
+              bitField2_ |= 0x01000000;
               break;
             } // case 1394
             case 1402: {
               productSoldCustomAttribute2_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x01000000;
+              bitField2_ |= 0x02000000;
               break;
             } // case 1402
             case 1410: {
               productSoldCustomAttribute3_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x02000000;
+              bitField2_ |= 0x04000000;
               break;
             } // case 1410
             case 1418: {
               productSoldCustomAttribute4_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x04000000;
+              bitField2_ |= 0x08000000;
               break;
             } // case 1418
             case 1426: {
               productSoldItemId_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x08000000;
+              bitField2_ |= 0x10000000;
               break;
             } // case 1426
             case 1434: {
               productSoldTitle_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x10000000;
+              bitField2_ |= 0x20000000;
               break;
             } // case 1434
             case 1442: {
               productSoldTypeL1_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x20000000;
+              bitField2_ |= 0x40000000;
               break;
             } // case 1442
             case 1450: {
               productSoldTypeL2_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x40000000;
+              bitField2_ |= 0x80000000;
               break;
             } // case 1450
             case 1458: {
               productSoldTypeL3_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x80000000;
+              bitField3_ |= 0x00000001;
               break;
             } // case 1458
             case 1466: {
               productSoldTypeL4_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000001;
+              bitField3_ |= 0x00000002;
               break;
             } // case 1466
             case 1474: {
               productSoldTypeL5_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000002;
+              bitField3_ |= 0x00000004;
               break;
             } // case 1474
             case 1482: {
@@ -11447,7 +11635,7 @@ public Builder mergeFrom(
             } // case 1498
             case 1520: {
               skAdNetworkRedistributedFineConversionValue_ = input.readInt64();
-              bitField4_ |= 0x00000004;
+              bitField4_ |= 0x00000020;
               break;
             } // case 1520
             case 1528: {
@@ -11457,62 +11645,62 @@ public Builder mergeFrom(
             } // case 1528
             case 1538: {
               skAdNetworkVersion_ = input.readStringRequireUtf8();
-              bitField4_ |= 0x00000800;
+              bitField4_ |= 0x00004000;
               break;
             } // case 1538
             case 1546: {
               travelDestinationCity_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000400;
+              bitField3_ |= 0x00000800;
               break;
             } // case 1546
             case 1554: {
               travelDestinationCountry_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00000800;
+              bitField3_ |= 0x00001000;
               break;
             } // case 1554
             case 1562: {
               travelDestinationRegion_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00001000;
+              bitField3_ |= 0x00002000;
               break;
             } // case 1562
             case 1568: {
               adjustedAgeRange_ = input.readEnum();
-              bitField4_ |= 0x00004000;
+              bitField4_ |= 0x00020000;
               break;
             } // case 1568
             case 1576: {
               adjustedGender_ = input.readEnum();
-              bitField4_ |= 0x00008000;
+              bitField4_ |= 0x00040000;
               break;
             } // case 1576
             case 1584: {
               searchTermMatchSource_ = input.readEnum();
-              bitField4_ |= 0x00010000;
+              bitField4_ |= 0x00080000;
               break;
             } // case 1584
             case 1592: {
               matchType_ = input.readEnum();
-              bitField3_ |= 0x08000000;
+              bitField3_ |= 0x40000000;
               break;
             } // case 1592
             case 1600: {
               landingPageSource_ = input.readEnum();
-              bitField1_ |= 0x00800000;
+              bitField1_ |= 0x01000000;
               break;
             } // case 1600
             case 1608: {
               searchTermTargetingStatus_ = input.readEnum();
-              bitField4_ |= 0x00020000;
+              bitField4_ |= 0x00100000;
               break;
             } // case 1608
             case 1616: {
               adUsingProductData_ = input.readBool();
-              bitField4_ |= 0x00040000;
+              bitField4_ |= 0x00200000;
               break;
             } // case 1616
             case 1624: {
               adUsingVideo_ = input.readBool();
-              bitField4_ |= 0x00080000;
+              bitField4_ |= 0x00400000;
               break;
             } // case 1624
             case 1632: {
@@ -11522,74 +11710,89 @@ public Builder mergeFrom(
             } // case 1632
             case 1642: {
               verticalAdsEventParticipantDisplayNames_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00002000;
+              bitField3_ |= 0x00004000;
               break;
             } // case 1642
             case 1648: {
               verticalAdsHotelClass_ = input.readInt64();
-              bitField3_ |= 0x00004000;
+              bitField3_ |= 0x00008000;
               break;
             } // case 1648
             case 1658: {
               verticalAdsListing_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00008000;
+              bitField3_ |= 0x00010000;
               break;
             } // case 1658
             case 1666: {
               verticalAdsListingBrand_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00010000;
+              bitField3_ |= 0x00020000;
               break;
             } // case 1666
             case 1674: {
               verticalAdsListingCity_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00020000;
+              bitField3_ |= 0x00040000;
               break;
             } // case 1674
             case 1682: {
               verticalAdsListingCountry_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00040000;
+              bitField3_ |= 0x00080000;
               break;
             } // case 1682
             case 1690: {
               verticalAdsListingRegion_ = input.readStringRequireUtf8();
-              bitField3_ |= 0x00080000;
+              bitField3_ |= 0x00100000;
               break;
             } // case 1690
             case 1696: {
               verticalAdsPartnerAccount_ = input.readInt64();
-              bitField3_ |= 0x00100000;
+              bitField3_ |= 0x00800000;
               break;
             } // case 1696
             case 1704: {
               verticalAdsVertical_ = input.readEnum();
-              bitField3_ |= 0x00200000;
+              bitField3_ |= 0x01000000;
               break;
             } // case 1704
             case 1714: {
               productSoldCategoryLevel1_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00008000;
+              bitField2_ |= 0x00010000;
               break;
             } // case 1714
             case 1722: {
               productSoldCategoryLevel2_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00010000;
+              bitField2_ |= 0x00020000;
               break;
             } // case 1722
             case 1730: {
               productSoldCategoryLevel3_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00020000;
+              bitField2_ |= 0x00040000;
               break;
             } // case 1730
             case 1738: {
               productSoldCategoryLevel4_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00040000;
+              bitField2_ |= 0x00080000;
               break;
             } // case 1738
             case 1746: {
               productSoldCategoryLevel5_ = input.readStringRequireUtf8();
-              bitField2_ |= 0x00080000;
+              bitField2_ |= 0x00100000;
               break;
             } // case 1746
+            case 1752: {
+              mobileDevicePlatform_ = input.readEnum();
+              bitField0_ |= 0x04000000;
+              break;
+            } // case 1752
+            case 1760: {
+              verticalAdsListingUserRating_ = input.readInt64();
+              bitField3_ |= 0x00200000;
+              break;
+            } // case 1760
+            case 1770: {
+              verticalAdsListingVenue_ = input.readStringRequireUtf8();
+              bitField3_ |= 0x00400000;
+              break;
+            } // case 1770
             default: {
               if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                 done = true; // was an endgroup tag
@@ -13892,6 +14095,77 @@ public Builder clearDevice() {
       return this;
     }
 
+    private int mobileDevicePlatform_ = 0;
+    /**
+     * 
+     * Mobile device platform to which metrics apply.
+     * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @return The enum numeric value on the wire for mobileDevicePlatform. + */ + @java.lang.Override public int getMobileDevicePlatformValue() { + return mobileDevicePlatform_; + } + /** + *
+     * Mobile device platform to which metrics apply.
+     * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @param value The enum numeric value on the wire for mobileDevicePlatform to set. + * @return This builder for chaining. + */ + public Builder setMobileDevicePlatformValue(int value) { + mobileDevicePlatform_ = value; + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + *
+     * Mobile device platform to which metrics apply.
+     * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @return The mobileDevicePlatform. + */ + @java.lang.Override + public com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform getMobileDevicePlatform() { + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform result = com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform.forNumber(mobileDevicePlatform_); + return result == null ? com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform.UNRECOGNIZED : result; + } + /** + *
+     * Mobile device platform to which metrics apply.
+     * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @param value The mobileDevicePlatform to set. + * @return This builder for chaining. + */ + public Builder setMobileDevicePlatform(com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform value) { + if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x04000000; + mobileDevicePlatform_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+     * Mobile device platform to which metrics apply.
+     * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @return This builder for chaining. + */ + public Builder clearMobileDevicePlatform() { + bitField0_ = (bitField0_ & ~0x04000000); + mobileDevicePlatform_ = 0; + onChanged(); + return this; + } + private int externalConversionSource_ = 0; /** *
@@ -13915,7 +14189,7 @@ public Builder clearDevice() {
      */
     public Builder setExternalConversionSourceValue(int value) {
       externalConversionSource_ = value;
-      bitField0_ |= 0x04000000;
+      bitField0_ |= 0x08000000;
       onChanged();
       return this;
     }
@@ -13943,7 +14217,7 @@ public com.google.ads.googleads.v24.enums.ExternalConversionSourceEnum.ExternalC
      */
     public Builder setExternalConversionSource(com.google.ads.googleads.v24.enums.ExternalConversionSourceEnum.ExternalConversionSource value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField0_ |= 0x04000000;
+      bitField0_ |= 0x08000000;
       externalConversionSource_ = value.getNumber();
       onChanged();
       return this;
@@ -13957,7 +14231,7 @@ public Builder setExternalConversionSource(com.google.ads.googleads.v24.enums.Ex
      * @return This builder for chaining.
      */
     public Builder clearExternalConversionSource() {
-      bitField0_ = (bitField0_ & ~0x04000000);
+      bitField0_ = (bitField0_ & ~0x08000000);
       externalConversionSource_ = 0;
       onChanged();
       return this;
@@ -13973,7 +14247,7 @@ public Builder clearExternalConversionSource() {
      * @return Whether the geoTargetAirport field is set.
      */
     public boolean hasGeoTargetAirport() {
-      return ((bitField0_ & 0x08000000) != 0);
+      return ((bitField0_ & 0x10000000) != 0);
     }
     /**
      * 
@@ -14029,7 +14303,7 @@ public Builder setGeoTargetAirport(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetAirport_ = value;
-      bitField0_ |= 0x08000000;
+      bitField0_ |= 0x10000000;
       onChanged();
       return this;
     }
@@ -14043,7 +14317,7 @@ public Builder setGeoTargetAirport(
      */
     public Builder clearGeoTargetAirport() {
       geoTargetAirport_ = getDefaultInstance().getGeoTargetAirport();
-      bitField0_ = (bitField0_ & ~0x08000000);
+      bitField0_ = (bitField0_ & ~0x10000000);
       onChanged();
       return this;
     }
@@ -14061,7 +14335,7 @@ public Builder setGeoTargetAirportBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetAirport_ = value;
-      bitField0_ |= 0x08000000;
+      bitField0_ |= 0x10000000;
       onChanged();
       return this;
     }
@@ -14076,7 +14350,7 @@ public Builder setGeoTargetAirportBytes(
      * @return Whether the geoTargetCanton field is set.
      */
     public boolean hasGeoTargetCanton() {
-      return ((bitField0_ & 0x10000000) != 0);
+      return ((bitField0_ & 0x20000000) != 0);
     }
     /**
      * 
@@ -14132,7 +14406,7 @@ public Builder setGeoTargetCanton(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetCanton_ = value;
-      bitField0_ |= 0x10000000;
+      bitField0_ |= 0x20000000;
       onChanged();
       return this;
     }
@@ -14146,7 +14420,7 @@ public Builder setGeoTargetCanton(
      */
     public Builder clearGeoTargetCanton() {
       geoTargetCanton_ = getDefaultInstance().getGeoTargetCanton();
-      bitField0_ = (bitField0_ & ~0x10000000);
+      bitField0_ = (bitField0_ & ~0x20000000);
       onChanged();
       return this;
     }
@@ -14164,7 +14438,7 @@ public Builder setGeoTargetCantonBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetCanton_ = value;
-      bitField0_ |= 0x10000000;
+      bitField0_ |= 0x20000000;
       onChanged();
       return this;
     }
@@ -14179,7 +14453,7 @@ public Builder setGeoTargetCantonBytes(
      * @return Whether the geoTargetCity field is set.
      */
     public boolean hasGeoTargetCity() {
-      return ((bitField0_ & 0x20000000) != 0);
+      return ((bitField0_ & 0x40000000) != 0);
     }
     /**
      * 
@@ -14235,7 +14509,7 @@ public Builder setGeoTargetCity(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetCity_ = value;
-      bitField0_ |= 0x20000000;
+      bitField0_ |= 0x40000000;
       onChanged();
       return this;
     }
@@ -14249,7 +14523,7 @@ public Builder setGeoTargetCity(
      */
     public Builder clearGeoTargetCity() {
       geoTargetCity_ = getDefaultInstance().getGeoTargetCity();
-      bitField0_ = (bitField0_ & ~0x20000000);
+      bitField0_ = (bitField0_ & ~0x40000000);
       onChanged();
       return this;
     }
@@ -14267,7 +14541,7 @@ public Builder setGeoTargetCityBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetCity_ = value;
-      bitField0_ |= 0x20000000;
+      bitField0_ |= 0x40000000;
       onChanged();
       return this;
     }
@@ -14282,7 +14556,7 @@ public Builder setGeoTargetCityBytes(
      * @return Whether the geoTargetCountry field is set.
      */
     public boolean hasGeoTargetCountry() {
-      return ((bitField0_ & 0x40000000) != 0);
+      return ((bitField0_ & 0x80000000) != 0);
     }
     /**
      * 
@@ -14338,7 +14612,7 @@ public Builder setGeoTargetCountry(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetCountry_ = value;
-      bitField0_ |= 0x40000000;
+      bitField0_ |= 0x80000000;
       onChanged();
       return this;
     }
@@ -14352,7 +14626,7 @@ public Builder setGeoTargetCountry(
      */
     public Builder clearGeoTargetCountry() {
       geoTargetCountry_ = getDefaultInstance().getGeoTargetCountry();
-      bitField0_ = (bitField0_ & ~0x40000000);
+      bitField0_ = (bitField0_ & ~0x80000000);
       onChanged();
       return this;
     }
@@ -14370,7 +14644,7 @@ public Builder setGeoTargetCountryBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetCountry_ = value;
-      bitField0_ |= 0x40000000;
+      bitField0_ |= 0x80000000;
       onChanged();
       return this;
     }
@@ -14385,7 +14659,7 @@ public Builder setGeoTargetCountryBytes(
      * @return Whether the geoTargetCounty field is set.
      */
     public boolean hasGeoTargetCounty() {
-      return ((bitField0_ & 0x80000000) != 0);
+      return ((bitField1_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -14441,7 +14715,7 @@ public Builder setGeoTargetCounty(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetCounty_ = value;
-      bitField0_ |= 0x80000000;
+      bitField1_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -14455,7 +14729,7 @@ public Builder setGeoTargetCounty(
      */
     public Builder clearGeoTargetCounty() {
       geoTargetCounty_ = getDefaultInstance().getGeoTargetCounty();
-      bitField0_ = (bitField0_ & ~0x80000000);
+      bitField1_ = (bitField1_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -14473,7 +14747,7 @@ public Builder setGeoTargetCountyBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetCounty_ = value;
-      bitField0_ |= 0x80000000;
+      bitField1_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -14488,7 +14762,7 @@ public Builder setGeoTargetCountyBytes(
      * @return Whether the geoTargetDistrict field is set.
      */
     public boolean hasGeoTargetDistrict() {
-      return ((bitField1_ & 0x00000001) != 0);
+      return ((bitField1_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -14544,7 +14818,7 @@ public Builder setGeoTargetDistrict(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetDistrict_ = value;
-      bitField1_ |= 0x00000001;
+      bitField1_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -14558,7 +14832,7 @@ public Builder setGeoTargetDistrict(
      */
     public Builder clearGeoTargetDistrict() {
       geoTargetDistrict_ = getDefaultInstance().getGeoTargetDistrict();
-      bitField1_ = (bitField1_ & ~0x00000001);
+      bitField1_ = (bitField1_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -14576,7 +14850,7 @@ public Builder setGeoTargetDistrictBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetDistrict_ = value;
-      bitField1_ |= 0x00000001;
+      bitField1_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -14591,7 +14865,7 @@ public Builder setGeoTargetDistrictBytes(
      * @return Whether the geoTargetMetro field is set.
      */
     public boolean hasGeoTargetMetro() {
-      return ((bitField1_ & 0x00000002) != 0);
+      return ((bitField1_ & 0x00000004) != 0);
     }
     /**
      * 
@@ -14647,7 +14921,7 @@ public Builder setGeoTargetMetro(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetMetro_ = value;
-      bitField1_ |= 0x00000002;
+      bitField1_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -14661,7 +14935,7 @@ public Builder setGeoTargetMetro(
      */
     public Builder clearGeoTargetMetro() {
       geoTargetMetro_ = getDefaultInstance().getGeoTargetMetro();
-      bitField1_ = (bitField1_ & ~0x00000002);
+      bitField1_ = (bitField1_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -14679,7 +14953,7 @@ public Builder setGeoTargetMetroBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetMetro_ = value;
-      bitField1_ |= 0x00000002;
+      bitField1_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -14695,7 +14969,7 @@ public Builder setGeoTargetMetroBytes(
      * @return Whether the geoTargetMostSpecificLocation field is set.
      */
     public boolean hasGeoTargetMostSpecificLocation() {
-      return ((bitField1_ & 0x00000004) != 0);
+      return ((bitField1_ & 0x00000008) != 0);
     }
     /**
      * 
@@ -14754,7 +15028,7 @@ public Builder setGeoTargetMostSpecificLocation(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetMostSpecificLocation_ = value;
-      bitField1_ |= 0x00000004;
+      bitField1_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -14769,7 +15043,7 @@ public Builder setGeoTargetMostSpecificLocation(
      */
     public Builder clearGeoTargetMostSpecificLocation() {
       geoTargetMostSpecificLocation_ = getDefaultInstance().getGeoTargetMostSpecificLocation();
-      bitField1_ = (bitField1_ & ~0x00000004);
+      bitField1_ = (bitField1_ & ~0x00000008);
       onChanged();
       return this;
     }
@@ -14788,7 +15062,7 @@ public Builder setGeoTargetMostSpecificLocationBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetMostSpecificLocation_ = value;
-      bitField1_ |= 0x00000004;
+      bitField1_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -14803,7 +15077,7 @@ public Builder setGeoTargetMostSpecificLocationBytes(
      * @return Whether the geoTargetPostalCode field is set.
      */
     public boolean hasGeoTargetPostalCode() {
-      return ((bitField1_ & 0x00000008) != 0);
+      return ((bitField1_ & 0x00000010) != 0);
     }
     /**
      * 
@@ -14859,7 +15133,7 @@ public Builder setGeoTargetPostalCode(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetPostalCode_ = value;
-      bitField1_ |= 0x00000008;
+      bitField1_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -14873,7 +15147,7 @@ public Builder setGeoTargetPostalCode(
      */
     public Builder clearGeoTargetPostalCode() {
       geoTargetPostalCode_ = getDefaultInstance().getGeoTargetPostalCode();
-      bitField1_ = (bitField1_ & ~0x00000008);
+      bitField1_ = (bitField1_ & ~0x00000010);
       onChanged();
       return this;
     }
@@ -14891,7 +15165,7 @@ public Builder setGeoTargetPostalCodeBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetPostalCode_ = value;
-      bitField1_ |= 0x00000008;
+      bitField1_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -14906,7 +15180,7 @@ public Builder setGeoTargetPostalCodeBytes(
      * @return Whether the geoTargetProvince field is set.
      */
     public boolean hasGeoTargetProvince() {
-      return ((bitField1_ & 0x00000010) != 0);
+      return ((bitField1_ & 0x00000020) != 0);
     }
     /**
      * 
@@ -14962,7 +15236,7 @@ public Builder setGeoTargetProvince(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetProvince_ = value;
-      bitField1_ |= 0x00000010;
+      bitField1_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -14976,7 +15250,7 @@ public Builder setGeoTargetProvince(
      */
     public Builder clearGeoTargetProvince() {
       geoTargetProvince_ = getDefaultInstance().getGeoTargetProvince();
-      bitField1_ = (bitField1_ & ~0x00000010);
+      bitField1_ = (bitField1_ & ~0x00000020);
       onChanged();
       return this;
     }
@@ -14994,7 +15268,7 @@ public Builder setGeoTargetProvinceBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetProvince_ = value;
-      bitField1_ |= 0x00000010;
+      bitField1_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -15009,7 +15283,7 @@ public Builder setGeoTargetProvinceBytes(
      * @return Whether the geoTargetRegion field is set.
      */
     public boolean hasGeoTargetRegion() {
-      return ((bitField1_ & 0x00000020) != 0);
+      return ((bitField1_ & 0x00000040) != 0);
     }
     /**
      * 
@@ -15065,7 +15339,7 @@ public Builder setGeoTargetRegion(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetRegion_ = value;
-      bitField1_ |= 0x00000020;
+      bitField1_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -15079,7 +15353,7 @@ public Builder setGeoTargetRegion(
      */
     public Builder clearGeoTargetRegion() {
       geoTargetRegion_ = getDefaultInstance().getGeoTargetRegion();
-      bitField1_ = (bitField1_ & ~0x00000020);
+      bitField1_ = (bitField1_ & ~0x00000040);
       onChanged();
       return this;
     }
@@ -15097,7 +15371,7 @@ public Builder setGeoTargetRegionBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetRegion_ = value;
-      bitField1_ |= 0x00000020;
+      bitField1_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -15112,7 +15386,7 @@ public Builder setGeoTargetRegionBytes(
      * @return Whether the geoTargetState field is set.
      */
     public boolean hasGeoTargetState() {
-      return ((bitField1_ & 0x00000040) != 0);
+      return ((bitField1_ & 0x00000080) != 0);
     }
     /**
      * 
@@ -15168,7 +15442,7 @@ public Builder setGeoTargetState(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       geoTargetState_ = value;
-      bitField1_ |= 0x00000040;
+      bitField1_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -15182,7 +15456,7 @@ public Builder setGeoTargetState(
      */
     public Builder clearGeoTargetState() {
       geoTargetState_ = getDefaultInstance().getGeoTargetState();
-      bitField1_ = (bitField1_ & ~0x00000040);
+      bitField1_ = (bitField1_ & ~0x00000080);
       onChanged();
       return this;
     }
@@ -15200,7 +15474,7 @@ public Builder setGeoTargetStateBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       geoTargetState_ = value;
-      bitField1_ |= 0x00000040;
+      bitField1_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -15216,7 +15490,7 @@ public Builder setGeoTargetStateBytes(
      */
     @java.lang.Override
     public boolean hasHotelBookingWindowDays() {
-      return ((bitField1_ & 0x00000080) != 0);
+      return ((bitField1_ & 0x00000100) != 0);
     }
     /**
      * 
@@ -15242,7 +15516,7 @@ public long getHotelBookingWindowDays() {
     public Builder setHotelBookingWindowDays(long value) {
 
       hotelBookingWindowDays_ = value;
-      bitField1_ |= 0x00000080;
+      bitField1_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -15255,7 +15529,7 @@ public Builder setHotelBookingWindowDays(long value) {
      * @return This builder for chaining.
      */
     public Builder clearHotelBookingWindowDays() {
-      bitField1_ = (bitField1_ & ~0x00000080);
+      bitField1_ = (bitField1_ & ~0x00000100);
       hotelBookingWindowDays_ = 0L;
       onChanged();
       return this;
@@ -15272,7 +15546,7 @@ public Builder clearHotelBookingWindowDays() {
      */
     @java.lang.Override
     public boolean hasHotelCenterId() {
-      return ((bitField1_ & 0x00000100) != 0);
+      return ((bitField1_ & 0x00000200) != 0);
     }
     /**
      * 
@@ -15298,7 +15572,7 @@ public long getHotelCenterId() {
     public Builder setHotelCenterId(long value) {
 
       hotelCenterId_ = value;
-      bitField1_ |= 0x00000100;
+      bitField1_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -15311,7 +15585,7 @@ public Builder setHotelCenterId(long value) {
      * @return This builder for chaining.
      */
     public Builder clearHotelCenterId() {
-      bitField1_ = (bitField1_ & ~0x00000100);
+      bitField1_ = (bitField1_ & ~0x00000200);
       hotelCenterId_ = 0L;
       onChanged();
       return this;
@@ -15327,7 +15601,7 @@ public Builder clearHotelCenterId() {
      * @return Whether the hotelCheckInDate field is set.
      */
     public boolean hasHotelCheckInDate() {
-      return ((bitField1_ & 0x00000200) != 0);
+      return ((bitField1_ & 0x00000400) != 0);
     }
     /**
      * 
@@ -15383,7 +15657,7 @@ public Builder setHotelCheckInDate(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       hotelCheckInDate_ = value;
-      bitField1_ |= 0x00000200;
+      bitField1_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -15397,7 +15671,7 @@ public Builder setHotelCheckInDate(
      */
     public Builder clearHotelCheckInDate() {
       hotelCheckInDate_ = getDefaultInstance().getHotelCheckInDate();
-      bitField1_ = (bitField1_ & ~0x00000200);
+      bitField1_ = (bitField1_ & ~0x00000400);
       onChanged();
       return this;
     }
@@ -15415,7 +15689,7 @@ public Builder setHotelCheckInDateBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       hotelCheckInDate_ = value;
-      bitField1_ |= 0x00000200;
+      bitField1_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -15443,7 +15717,7 @@ public Builder setHotelCheckInDateBytes(
      */
     public Builder setHotelCheckInDayOfWeekValue(int value) {
       hotelCheckInDayOfWeek_ = value;
-      bitField1_ |= 0x00000400;
+      bitField1_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -15471,7 +15745,7 @@ public com.google.ads.googleads.v24.enums.DayOfWeekEnum.DayOfWeek getHotelCheckI
      */
     public Builder setHotelCheckInDayOfWeek(com.google.ads.googleads.v24.enums.DayOfWeekEnum.DayOfWeek value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField1_ |= 0x00000400;
+      bitField1_ |= 0x00000800;
       hotelCheckInDayOfWeek_ = value.getNumber();
       onChanged();
       return this;
@@ -15485,7 +15759,7 @@ public Builder setHotelCheckInDayOfWeek(com.google.ads.googleads.v24.enums.DayOf
      * @return This builder for chaining.
      */
     public Builder clearHotelCheckInDayOfWeek() {
-      bitField1_ = (bitField1_ & ~0x00000400);
+      bitField1_ = (bitField1_ & ~0x00000800);
       hotelCheckInDayOfWeek_ = 0;
       onChanged();
       return this;
@@ -15501,7 +15775,7 @@ public Builder clearHotelCheckInDayOfWeek() {
      * @return Whether the hotelCity field is set.
      */
     public boolean hasHotelCity() {
-      return ((bitField1_ & 0x00000800) != 0);
+      return ((bitField1_ & 0x00001000) != 0);
     }
     /**
      * 
@@ -15557,7 +15831,7 @@ public Builder setHotelCity(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       hotelCity_ = value;
-      bitField1_ |= 0x00000800;
+      bitField1_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -15571,7 +15845,7 @@ public Builder setHotelCity(
      */
     public Builder clearHotelCity() {
       hotelCity_ = getDefaultInstance().getHotelCity();
-      bitField1_ = (bitField1_ & ~0x00000800);
+      bitField1_ = (bitField1_ & ~0x00001000);
       onChanged();
       return this;
     }
@@ -15589,7 +15863,7 @@ public Builder setHotelCityBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       hotelCity_ = value;
-      bitField1_ |= 0x00000800;
+      bitField1_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -15605,7 +15879,7 @@ public Builder setHotelCityBytes(
      */
     @java.lang.Override
     public boolean hasHotelClass() {
-      return ((bitField1_ & 0x00001000) != 0);
+      return ((bitField1_ & 0x00002000) != 0);
     }
     /**
      * 
@@ -15631,7 +15905,7 @@ public int getHotelClass() {
     public Builder setHotelClass(int value) {
 
       hotelClass_ = value;
-      bitField1_ |= 0x00001000;
+      bitField1_ |= 0x00002000;
       onChanged();
       return this;
     }
@@ -15644,7 +15918,7 @@ public Builder setHotelClass(int value) {
      * @return This builder for chaining.
      */
     public Builder clearHotelClass() {
-      bitField1_ = (bitField1_ & ~0x00001000);
+      bitField1_ = (bitField1_ & ~0x00002000);
       hotelClass_ = 0;
       onChanged();
       return this;
@@ -15660,7 +15934,7 @@ public Builder clearHotelClass() {
      * @return Whether the hotelCountry field is set.
      */
     public boolean hasHotelCountry() {
-      return ((bitField1_ & 0x00002000) != 0);
+      return ((bitField1_ & 0x00004000) != 0);
     }
     /**
      * 
@@ -15716,7 +15990,7 @@ public Builder setHotelCountry(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       hotelCountry_ = value;
-      bitField1_ |= 0x00002000;
+      bitField1_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -15730,7 +16004,7 @@ public Builder setHotelCountry(
      */
     public Builder clearHotelCountry() {
       hotelCountry_ = getDefaultInstance().getHotelCountry();
-      bitField1_ = (bitField1_ & ~0x00002000);
+      bitField1_ = (bitField1_ & ~0x00004000);
       onChanged();
       return this;
     }
@@ -15748,7 +16022,7 @@ public Builder setHotelCountryBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       hotelCountry_ = value;
-      bitField1_ |= 0x00002000;
+      bitField1_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -15776,7 +16050,7 @@ public Builder setHotelCountryBytes(
      */
     public Builder setHotelDateSelectionTypeValue(int value) {
       hotelDateSelectionType_ = value;
-      bitField1_ |= 0x00004000;
+      bitField1_ |= 0x00008000;
       onChanged();
       return this;
     }
@@ -15804,7 +16078,7 @@ public com.google.ads.googleads.v24.enums.HotelDateSelectionTypeEnum.HotelDateSe
      */
     public Builder setHotelDateSelectionType(com.google.ads.googleads.v24.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField1_ |= 0x00004000;
+      bitField1_ |= 0x00008000;
       hotelDateSelectionType_ = value.getNumber();
       onChanged();
       return this;
@@ -15818,7 +16092,7 @@ public Builder setHotelDateSelectionType(com.google.ads.googleads.v24.enums.Hote
      * @return This builder for chaining.
      */
     public Builder clearHotelDateSelectionType() {
-      bitField1_ = (bitField1_ & ~0x00004000);
+      bitField1_ = (bitField1_ & ~0x00008000);
       hotelDateSelectionType_ = 0;
       onChanged();
       return this;
@@ -15835,7 +16109,7 @@ public Builder clearHotelDateSelectionType() {
      */
     @java.lang.Override
     public boolean hasHotelLengthOfStay() {
-      return ((bitField1_ & 0x00008000) != 0);
+      return ((bitField1_ & 0x00010000) != 0);
     }
     /**
      * 
@@ -15861,7 +16135,7 @@ public int getHotelLengthOfStay() {
     public Builder setHotelLengthOfStay(int value) {
 
       hotelLengthOfStay_ = value;
-      bitField1_ |= 0x00008000;
+      bitField1_ |= 0x00010000;
       onChanged();
       return this;
     }
@@ -15874,7 +16148,7 @@ public Builder setHotelLengthOfStay(int value) {
      * @return This builder for chaining.
      */
     public Builder clearHotelLengthOfStay() {
-      bitField1_ = (bitField1_ & ~0x00008000);
+      bitField1_ = (bitField1_ & ~0x00010000);
       hotelLengthOfStay_ = 0;
       onChanged();
       return this;
@@ -15890,7 +16164,7 @@ public Builder clearHotelLengthOfStay() {
      * @return Whether the hotelRateRuleId field is set.
      */
     public boolean hasHotelRateRuleId() {
-      return ((bitField1_ & 0x00010000) != 0);
+      return ((bitField1_ & 0x00020000) != 0);
     }
     /**
      * 
@@ -15946,7 +16220,7 @@ public Builder setHotelRateRuleId(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       hotelRateRuleId_ = value;
-      bitField1_ |= 0x00010000;
+      bitField1_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -15960,7 +16234,7 @@ public Builder setHotelRateRuleId(
      */
     public Builder clearHotelRateRuleId() {
       hotelRateRuleId_ = getDefaultInstance().getHotelRateRuleId();
-      bitField1_ = (bitField1_ & ~0x00010000);
+      bitField1_ = (bitField1_ & ~0x00020000);
       onChanged();
       return this;
     }
@@ -15978,7 +16252,7 @@ public Builder setHotelRateRuleIdBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       hotelRateRuleId_ = value;
-      bitField1_ |= 0x00010000;
+      bitField1_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -16006,7 +16280,7 @@ public Builder setHotelRateRuleIdBytes(
      */
     public Builder setHotelRateTypeValue(int value) {
       hotelRateType_ = value;
-      bitField1_ |= 0x00020000;
+      bitField1_ |= 0x00040000;
       onChanged();
       return this;
     }
@@ -16034,7 +16308,7 @@ public com.google.ads.googleads.v24.enums.HotelRateTypeEnum.HotelRateType getHot
      */
     public Builder setHotelRateType(com.google.ads.googleads.v24.enums.HotelRateTypeEnum.HotelRateType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField1_ |= 0x00020000;
+      bitField1_ |= 0x00040000;
       hotelRateType_ = value.getNumber();
       onChanged();
       return this;
@@ -16048,7 +16322,7 @@ public Builder setHotelRateType(com.google.ads.googleads.v24.enums.HotelRateType
      * @return This builder for chaining.
      */
     public Builder clearHotelRateType() {
-      bitField1_ = (bitField1_ & ~0x00020000);
+      bitField1_ = (bitField1_ & ~0x00040000);
       hotelRateType_ = 0;
       onChanged();
       return this;
@@ -16077,7 +16351,7 @@ public Builder clearHotelRateType() {
      */
     public Builder setHotelPriceBucketValue(int value) {
       hotelPriceBucket_ = value;
-      bitField1_ |= 0x00040000;
+      bitField1_ |= 0x00080000;
       onChanged();
       return this;
     }
@@ -16105,7 +16379,7 @@ public com.google.ads.googleads.v24.enums.HotelPriceBucketEnum.HotelPriceBucket
      */
     public Builder setHotelPriceBucket(com.google.ads.googleads.v24.enums.HotelPriceBucketEnum.HotelPriceBucket value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField1_ |= 0x00040000;
+      bitField1_ |= 0x00080000;
       hotelPriceBucket_ = value.getNumber();
       onChanged();
       return this;
@@ -16119,7 +16393,7 @@ public Builder setHotelPriceBucket(com.google.ads.googleads.v24.enums.HotelPrice
      * @return This builder for chaining.
      */
     public Builder clearHotelPriceBucket() {
-      bitField1_ = (bitField1_ & ~0x00040000);
+      bitField1_ = (bitField1_ & ~0x00080000);
       hotelPriceBucket_ = 0;
       onChanged();
       return this;
@@ -16135,7 +16409,7 @@ public Builder clearHotelPriceBucket() {
      * @return Whether the hotelState field is set.
      */
     public boolean hasHotelState() {
-      return ((bitField1_ & 0x00080000) != 0);
+      return ((bitField1_ & 0x00100000) != 0);
     }
     /**
      * 
@@ -16191,7 +16465,7 @@ public Builder setHotelState(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       hotelState_ = value;
-      bitField1_ |= 0x00080000;
+      bitField1_ |= 0x00100000;
       onChanged();
       return this;
     }
@@ -16205,7 +16479,7 @@ public Builder setHotelState(
      */
     public Builder clearHotelState() {
       hotelState_ = getDefaultInstance().getHotelState();
-      bitField1_ = (bitField1_ & ~0x00080000);
+      bitField1_ = (bitField1_ & ~0x00100000);
       onChanged();
       return this;
     }
@@ -16223,7 +16497,7 @@ public Builder setHotelStateBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       hotelState_ = value;
-      bitField1_ |= 0x00080000;
+      bitField1_ |= 0x00100000;
       onChanged();
       return this;
     }
@@ -16239,7 +16513,7 @@ public Builder setHotelStateBytes(
      */
     @java.lang.Override
     public boolean hasHour() {
-      return ((bitField1_ & 0x00100000) != 0);
+      return ((bitField1_ & 0x00200000) != 0);
     }
     /**
      * 
@@ -16265,7 +16539,7 @@ public int getHour() {
     public Builder setHour(int value) {
 
       hour_ = value;
-      bitField1_ |= 0x00100000;
+      bitField1_ |= 0x00200000;
       onChanged();
       return this;
     }
@@ -16278,7 +16552,7 @@ public Builder setHour(int value) {
      * @return This builder for chaining.
      */
     public Builder clearHour() {
-      bitField1_ = (bitField1_ & ~0x00100000);
+      bitField1_ = (bitField1_ & ~0x00200000);
       hour_ = 0;
       onChanged();
       return this;
@@ -16297,7 +16571,7 @@ public Builder clearHour() {
      */
     @java.lang.Override
     public boolean hasInteractionOnThisExtension() {
-      return ((bitField1_ & 0x00200000) != 0);
+      return ((bitField1_ & 0x00400000) != 0);
     }
     /**
      * 
@@ -16327,7 +16601,7 @@ public boolean getInteractionOnThisExtension() {
     public Builder setInteractionOnThisExtension(boolean value) {
 
       interactionOnThisExtension_ = value;
-      bitField1_ |= 0x00200000;
+      bitField1_ |= 0x00400000;
       onChanged();
       return this;
     }
@@ -16342,7 +16616,7 @@ public Builder setInteractionOnThisExtension(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearInteractionOnThisExtension() {
-      bitField1_ = (bitField1_ & ~0x00200000);
+      bitField1_ = (bitField1_ & ~0x00400000);
       interactionOnThisExtension_ = false;
       onChanged();
       return this;
@@ -16360,7 +16634,7 @@ public Builder clearInteractionOnThisExtension() {
      * @return Whether the keyword field is set.
      */
     public boolean hasKeyword() {
-      return ((bitField1_ & 0x00400000) != 0);
+      return ((bitField1_ & 0x00800000) != 0);
     }
     /**
      * 
@@ -16393,7 +16667,7 @@ public Builder setKeyword(com.google.ads.googleads.v24.common.Keyword value) {
       } else {
         keywordBuilder_.setMessage(value);
       }
-      bitField1_ |= 0x00400000;
+      bitField1_ |= 0x00800000;
       onChanged();
       return this;
     }
@@ -16411,7 +16685,7 @@ public Builder setKeyword(
       } else {
         keywordBuilder_.setMessage(builderForValue.build());
       }
-      bitField1_ |= 0x00400000;
+      bitField1_ |= 0x00800000;
       onChanged();
       return this;
     }
@@ -16424,7 +16698,7 @@ public Builder setKeyword(
      */
     public Builder mergeKeyword(com.google.ads.googleads.v24.common.Keyword value) {
       if (keywordBuilder_ == null) {
-        if (((bitField1_ & 0x00400000) != 0) &&
+        if (((bitField1_ & 0x00800000) != 0) &&
           keyword_ != null &&
           keyword_ != com.google.ads.googleads.v24.common.Keyword.getDefaultInstance()) {
           getKeywordBuilder().mergeFrom(value);
@@ -16435,7 +16709,7 @@ public Builder mergeKeyword(com.google.ads.googleads.v24.common.Keyword value) {
         keywordBuilder_.mergeFrom(value);
       }
       if (keyword_ != null) {
-        bitField1_ |= 0x00400000;
+        bitField1_ |= 0x00800000;
         onChanged();
       }
       return this;
@@ -16448,7 +16722,7 @@ public Builder mergeKeyword(com.google.ads.googleads.v24.common.Keyword value) {
      * .google.ads.googleads.v24.common.Keyword keyword = 61;
      */
     public Builder clearKeyword() {
-      bitField1_ = (bitField1_ & ~0x00400000);
+      bitField1_ = (bitField1_ & ~0x00800000);
       keyword_ = null;
       if (keywordBuilder_ != null) {
         keywordBuilder_.dispose();
@@ -16465,7 +16739,7 @@ public Builder clearKeyword() {
      * .google.ads.googleads.v24.common.Keyword keyword = 61;
      */
     public com.google.ads.googleads.v24.common.Keyword.Builder getKeywordBuilder() {
-      bitField1_ |= 0x00400000;
+      bitField1_ |= 0x00800000;
       onChanged();
       return internalGetKeywordFieldBuilder().getBuilder();
     }
@@ -16528,7 +16802,7 @@ public com.google.ads.googleads.v24.common.KeywordOrBuilder getKeywordOrBuilder(
      */
     public Builder setLandingPageSourceValue(int value) {
       landingPageSource_ = value;
-      bitField1_ |= 0x00800000;
+      bitField1_ |= 0x01000000;
       onChanged();
       return this;
     }
@@ -16556,7 +16830,7 @@ public com.google.ads.googleads.v24.enums.LandingPageSourceEnum.LandingPageSourc
      */
     public Builder setLandingPageSource(com.google.ads.googleads.v24.enums.LandingPageSourceEnum.LandingPageSource value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField1_ |= 0x00800000;
+      bitField1_ |= 0x01000000;
       landingPageSource_ = value.getNumber();
       onChanged();
       return this;
@@ -16570,7 +16844,7 @@ public Builder setLandingPageSource(com.google.ads.googleads.v24.enums.LandingPa
      * @return This builder for chaining.
      */
     public Builder clearLandingPageSource() {
-      bitField1_ = (bitField1_ & ~0x00800000);
+      bitField1_ = (bitField1_ & ~0x01000000);
       landingPageSource_ = 0;
       onChanged();
       return this;
@@ -16587,7 +16861,7 @@ public Builder clearLandingPageSource() {
      * @return Whether the month field is set.
      */
     public boolean hasMonth() {
-      return ((bitField1_ & 0x01000000) != 0);
+      return ((bitField1_ & 0x02000000) != 0);
     }
     /**
      * 
@@ -16646,7 +16920,7 @@ public Builder setMonth(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       month_ = value;
-      bitField1_ |= 0x01000000;
+      bitField1_ |= 0x02000000;
       onChanged();
       return this;
     }
@@ -16661,7 +16935,7 @@ public Builder setMonth(
      */
     public Builder clearMonth() {
       month_ = getDefaultInstance().getMonth();
-      bitField1_ = (bitField1_ & ~0x01000000);
+      bitField1_ = (bitField1_ & ~0x02000000);
       onChanged();
       return this;
     }
@@ -16680,7 +16954,7 @@ public Builder setMonthBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       month_ = value;
-      bitField1_ |= 0x01000000;
+      bitField1_ |= 0x02000000;
       onChanged();
       return this;
     }
@@ -16708,7 +16982,7 @@ public Builder setMonthBytes(
      */
     public Builder setMonthOfYearValue(int value) {
       monthOfYear_ = value;
-      bitField1_ |= 0x02000000;
+      bitField1_ |= 0x04000000;
       onChanged();
       return this;
     }
@@ -16736,7 +17010,7 @@ public com.google.ads.googleads.v24.enums.MonthOfYearEnum.MonthOfYear getMonthOf
      */
     public Builder setMonthOfYear(com.google.ads.googleads.v24.enums.MonthOfYearEnum.MonthOfYear value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField1_ |= 0x02000000;
+      bitField1_ |= 0x04000000;
       monthOfYear_ = value.getNumber();
       onChanged();
       return this;
@@ -16750,7 +17024,7 @@ public Builder setMonthOfYear(com.google.ads.googleads.v24.enums.MonthOfYearEnum
      * @return This builder for chaining.
      */
     public Builder clearMonthOfYear() {
-      bitField1_ = (bitField1_ & ~0x02000000);
+      bitField1_ = (bitField1_ & ~0x04000000);
       monthOfYear_ = 0;
       onChanged();
       return this;
@@ -16766,7 +17040,7 @@ public Builder clearMonthOfYear() {
      * @return Whether the partnerHotelId field is set.
      */
     public boolean hasPartnerHotelId() {
-      return ((bitField1_ & 0x04000000) != 0);
+      return ((bitField1_ & 0x08000000) != 0);
     }
     /**
      * 
@@ -16822,7 +17096,7 @@ public Builder setPartnerHotelId(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       partnerHotelId_ = value;
-      bitField1_ |= 0x04000000;
+      bitField1_ |= 0x08000000;
       onChanged();
       return this;
     }
@@ -16836,7 +17110,7 @@ public Builder setPartnerHotelId(
      */
     public Builder clearPartnerHotelId() {
       partnerHotelId_ = getDefaultInstance().getPartnerHotelId();
-      bitField1_ = (bitField1_ & ~0x04000000);
+      bitField1_ = (bitField1_ & ~0x08000000);
       onChanged();
       return this;
     }
@@ -16854,7 +17128,7 @@ public Builder setPartnerHotelIdBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       partnerHotelId_ = value;
-      bitField1_ |= 0x04000000;
+      bitField1_ |= 0x08000000;
       onChanged();
       return this;
     }
@@ -16870,7 +17144,7 @@ public Builder setPartnerHotelIdBytes(
      */
     @java.lang.Override
     public boolean hasProductAggregatorId() {
-      return ((bitField1_ & 0x08000000) != 0);
+      return ((bitField1_ & 0x10000000) != 0);
     }
     /**
      * 
@@ -16896,7 +17170,7 @@ public long getProductAggregatorId() {
     public Builder setProductAggregatorId(long value) {
 
       productAggregatorId_ = value;
-      bitField1_ |= 0x08000000;
+      bitField1_ |= 0x10000000;
       onChanged();
       return this;
     }
@@ -16909,7 +17183,7 @@ public Builder setProductAggregatorId(long value) {
      * @return This builder for chaining.
      */
     public Builder clearProductAggregatorId() {
-      bitField1_ = (bitField1_ & ~0x08000000);
+      bitField1_ = (bitField1_ & ~0x10000000);
       productAggregatorId_ = 0L;
       onChanged();
       return this;
@@ -16925,7 +17199,7 @@ public Builder clearProductAggregatorId() {
      * @return Whether the productCategoryLevel1 field is set.
      */
     public boolean hasProductCategoryLevel1() {
-      return ((bitField1_ & 0x10000000) != 0);
+      return ((bitField1_ & 0x20000000) != 0);
     }
     /**
      * 
@@ -16981,7 +17255,7 @@ public Builder setProductCategoryLevel1(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCategoryLevel1_ = value;
-      bitField1_ |= 0x10000000;
+      bitField1_ |= 0x20000000;
       onChanged();
       return this;
     }
@@ -16995,7 +17269,7 @@ public Builder setProductCategoryLevel1(
      */
     public Builder clearProductCategoryLevel1() {
       productCategoryLevel1_ = getDefaultInstance().getProductCategoryLevel1();
-      bitField1_ = (bitField1_ & ~0x10000000);
+      bitField1_ = (bitField1_ & ~0x20000000);
       onChanged();
       return this;
     }
@@ -17013,7 +17287,7 @@ public Builder setProductCategoryLevel1Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCategoryLevel1_ = value;
-      bitField1_ |= 0x10000000;
+      bitField1_ |= 0x20000000;
       onChanged();
       return this;
     }
@@ -17028,7 +17302,7 @@ public Builder setProductCategoryLevel1Bytes(
      * @return Whether the productCategoryLevel2 field is set.
      */
     public boolean hasProductCategoryLevel2() {
-      return ((bitField1_ & 0x20000000) != 0);
+      return ((bitField1_ & 0x40000000) != 0);
     }
     /**
      * 
@@ -17084,7 +17358,7 @@ public Builder setProductCategoryLevel2(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCategoryLevel2_ = value;
-      bitField1_ |= 0x20000000;
+      bitField1_ |= 0x40000000;
       onChanged();
       return this;
     }
@@ -17098,7 +17372,7 @@ public Builder setProductCategoryLevel2(
      */
     public Builder clearProductCategoryLevel2() {
       productCategoryLevel2_ = getDefaultInstance().getProductCategoryLevel2();
-      bitField1_ = (bitField1_ & ~0x20000000);
+      bitField1_ = (bitField1_ & ~0x40000000);
       onChanged();
       return this;
     }
@@ -17116,7 +17390,7 @@ public Builder setProductCategoryLevel2Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCategoryLevel2_ = value;
-      bitField1_ |= 0x20000000;
+      bitField1_ |= 0x40000000;
       onChanged();
       return this;
     }
@@ -17131,7 +17405,7 @@ public Builder setProductCategoryLevel2Bytes(
      * @return Whether the productCategoryLevel3 field is set.
      */
     public boolean hasProductCategoryLevel3() {
-      return ((bitField1_ & 0x40000000) != 0);
+      return ((bitField1_ & 0x80000000) != 0);
     }
     /**
      * 
@@ -17187,7 +17461,7 @@ public Builder setProductCategoryLevel3(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCategoryLevel3_ = value;
-      bitField1_ |= 0x40000000;
+      bitField1_ |= 0x80000000;
       onChanged();
       return this;
     }
@@ -17201,7 +17475,7 @@ public Builder setProductCategoryLevel3(
      */
     public Builder clearProductCategoryLevel3() {
       productCategoryLevel3_ = getDefaultInstance().getProductCategoryLevel3();
-      bitField1_ = (bitField1_ & ~0x40000000);
+      bitField1_ = (bitField1_ & ~0x80000000);
       onChanged();
       return this;
     }
@@ -17219,7 +17493,7 @@ public Builder setProductCategoryLevel3Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCategoryLevel3_ = value;
-      bitField1_ |= 0x40000000;
+      bitField1_ |= 0x80000000;
       onChanged();
       return this;
     }
@@ -17234,7 +17508,7 @@ public Builder setProductCategoryLevel3Bytes(
      * @return Whether the productCategoryLevel4 field is set.
      */
     public boolean hasProductCategoryLevel4() {
-      return ((bitField1_ & 0x80000000) != 0);
+      return ((bitField2_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -17290,7 +17564,7 @@ public Builder setProductCategoryLevel4(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCategoryLevel4_ = value;
-      bitField1_ |= 0x80000000;
+      bitField2_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -17304,7 +17578,7 @@ public Builder setProductCategoryLevel4(
      */
     public Builder clearProductCategoryLevel4() {
       productCategoryLevel4_ = getDefaultInstance().getProductCategoryLevel4();
-      bitField1_ = (bitField1_ & ~0x80000000);
+      bitField2_ = (bitField2_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -17322,7 +17596,7 @@ public Builder setProductCategoryLevel4Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCategoryLevel4_ = value;
-      bitField1_ |= 0x80000000;
+      bitField2_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -17337,7 +17611,7 @@ public Builder setProductCategoryLevel4Bytes(
      * @return Whether the productCategoryLevel5 field is set.
      */
     public boolean hasProductCategoryLevel5() {
-      return ((bitField2_ & 0x00000001) != 0);
+      return ((bitField2_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -17393,7 +17667,7 @@ public Builder setProductCategoryLevel5(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCategoryLevel5_ = value;
-      bitField2_ |= 0x00000001;
+      bitField2_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -17407,7 +17681,7 @@ public Builder setProductCategoryLevel5(
      */
     public Builder clearProductCategoryLevel5() {
       productCategoryLevel5_ = getDefaultInstance().getProductCategoryLevel5();
-      bitField2_ = (bitField2_ & ~0x00000001);
+      bitField2_ = (bitField2_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -17425,7 +17699,7 @@ public Builder setProductCategoryLevel5Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCategoryLevel5_ = value;
-      bitField2_ |= 0x00000001;
+      bitField2_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -17440,7 +17714,7 @@ public Builder setProductCategoryLevel5Bytes(
      * @return Whether the productBrand field is set.
      */
     public boolean hasProductBrand() {
-      return ((bitField2_ & 0x00000002) != 0);
+      return ((bitField2_ & 0x00000004) != 0);
     }
     /**
      * 
@@ -17496,7 +17770,7 @@ public Builder setProductBrand(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productBrand_ = value;
-      bitField2_ |= 0x00000002;
+      bitField2_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -17510,7 +17784,7 @@ public Builder setProductBrand(
      */
     public Builder clearProductBrand() {
       productBrand_ = getDefaultInstance().getProductBrand();
-      bitField2_ = (bitField2_ & ~0x00000002);
+      bitField2_ = (bitField2_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -17528,7 +17802,7 @@ public Builder setProductBrandBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productBrand_ = value;
-      bitField2_ |= 0x00000002;
+      bitField2_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -17556,7 +17830,7 @@ public Builder setProductBrandBytes(
      */
     public Builder setProductChannelValue(int value) {
       productChannel_ = value;
-      bitField2_ |= 0x00000004;
+      bitField2_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -17584,7 +17858,7 @@ public com.google.ads.googleads.v24.enums.ProductChannelEnum.ProductChannel getP
      */
     public Builder setProductChannel(com.google.ads.googleads.v24.enums.ProductChannelEnum.ProductChannel value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField2_ |= 0x00000004;
+      bitField2_ |= 0x00000008;
       productChannel_ = value.getNumber();
       onChanged();
       return this;
@@ -17598,7 +17872,7 @@ public Builder setProductChannel(com.google.ads.googleads.v24.enums.ProductChann
      * @return This builder for chaining.
      */
     public Builder clearProductChannel() {
-      bitField2_ = (bitField2_ & ~0x00000004);
+      bitField2_ = (bitField2_ & ~0x00000008);
       productChannel_ = 0;
       onChanged();
       return this;
@@ -17627,7 +17901,7 @@ public Builder clearProductChannel() {
      */
     public Builder setProductChannelExclusivityValue(int value) {
       productChannelExclusivity_ = value;
-      bitField2_ |= 0x00000008;
+      bitField2_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -17655,7 +17929,7 @@ public com.google.ads.googleads.v24.enums.ProductChannelExclusivityEnum.ProductC
      */
     public Builder setProductChannelExclusivity(com.google.ads.googleads.v24.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField2_ |= 0x00000008;
+      bitField2_ |= 0x00000010;
       productChannelExclusivity_ = value.getNumber();
       onChanged();
       return this;
@@ -17669,7 +17943,7 @@ public Builder setProductChannelExclusivity(com.google.ads.googleads.v24.enums.P
      * @return This builder for chaining.
      */
     public Builder clearProductChannelExclusivity() {
-      bitField2_ = (bitField2_ & ~0x00000008);
+      bitField2_ = (bitField2_ & ~0x00000010);
       productChannelExclusivity_ = 0;
       onChanged();
       return this;
@@ -17698,7 +17972,7 @@ public Builder clearProductChannelExclusivity() {
      */
     public Builder setProductConditionValue(int value) {
       productCondition_ = value;
-      bitField2_ |= 0x00000010;
+      bitField2_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -17726,7 +18000,7 @@ public com.google.ads.googleads.v24.enums.ProductConditionEnum.ProductCondition
      */
     public Builder setProductCondition(com.google.ads.googleads.v24.enums.ProductConditionEnum.ProductCondition value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField2_ |= 0x00000010;
+      bitField2_ |= 0x00000020;
       productCondition_ = value.getNumber();
       onChanged();
       return this;
@@ -17740,7 +18014,7 @@ public Builder setProductCondition(com.google.ads.googleads.v24.enums.ProductCon
      * @return This builder for chaining.
      */
     public Builder clearProductCondition() {
-      bitField2_ = (bitField2_ & ~0x00000010);
+      bitField2_ = (bitField2_ & ~0x00000020);
       productCondition_ = 0;
       onChanged();
       return this;
@@ -17757,7 +18031,7 @@ public Builder clearProductCondition() {
      * @return Whether the productCountry field is set.
      */
     public boolean hasProductCountry() {
-      return ((bitField2_ & 0x00000020) != 0);
+      return ((bitField2_ & 0x00000040) != 0);
     }
     /**
      * 
@@ -17816,7 +18090,7 @@ public Builder setProductCountry(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCountry_ = value;
-      bitField2_ |= 0x00000020;
+      bitField2_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -17831,7 +18105,7 @@ public Builder setProductCountry(
      */
     public Builder clearProductCountry() {
       productCountry_ = getDefaultInstance().getProductCountry();
-      bitField2_ = (bitField2_ & ~0x00000020);
+      bitField2_ = (bitField2_ & ~0x00000040);
       onChanged();
       return this;
     }
@@ -17850,7 +18124,7 @@ public Builder setProductCountryBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCountry_ = value;
-      bitField2_ |= 0x00000020;
+      bitField2_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -17865,7 +18139,7 @@ public Builder setProductCountryBytes(
      * @return Whether the productCustomAttribute0 field is set.
      */
     public boolean hasProductCustomAttribute0() {
-      return ((bitField2_ & 0x00000040) != 0);
+      return ((bitField2_ & 0x00000080) != 0);
     }
     /**
      * 
@@ -17921,7 +18195,7 @@ public Builder setProductCustomAttribute0(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCustomAttribute0_ = value;
-      bitField2_ |= 0x00000040;
+      bitField2_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -17935,7 +18209,7 @@ public Builder setProductCustomAttribute0(
      */
     public Builder clearProductCustomAttribute0() {
       productCustomAttribute0_ = getDefaultInstance().getProductCustomAttribute0();
-      bitField2_ = (bitField2_ & ~0x00000040);
+      bitField2_ = (bitField2_ & ~0x00000080);
       onChanged();
       return this;
     }
@@ -17953,7 +18227,7 @@ public Builder setProductCustomAttribute0Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCustomAttribute0_ = value;
-      bitField2_ |= 0x00000040;
+      bitField2_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -17968,7 +18242,7 @@ public Builder setProductCustomAttribute0Bytes(
      * @return Whether the productCustomAttribute1 field is set.
      */
     public boolean hasProductCustomAttribute1() {
-      return ((bitField2_ & 0x00000080) != 0);
+      return ((bitField2_ & 0x00000100) != 0);
     }
     /**
      * 
@@ -18024,7 +18298,7 @@ public Builder setProductCustomAttribute1(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCustomAttribute1_ = value;
-      bitField2_ |= 0x00000080;
+      bitField2_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -18038,7 +18312,7 @@ public Builder setProductCustomAttribute1(
      */
     public Builder clearProductCustomAttribute1() {
       productCustomAttribute1_ = getDefaultInstance().getProductCustomAttribute1();
-      bitField2_ = (bitField2_ & ~0x00000080);
+      bitField2_ = (bitField2_ & ~0x00000100);
       onChanged();
       return this;
     }
@@ -18056,7 +18330,7 @@ public Builder setProductCustomAttribute1Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCustomAttribute1_ = value;
-      bitField2_ |= 0x00000080;
+      bitField2_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -18071,7 +18345,7 @@ public Builder setProductCustomAttribute1Bytes(
      * @return Whether the productCustomAttribute2 field is set.
      */
     public boolean hasProductCustomAttribute2() {
-      return ((bitField2_ & 0x00000100) != 0);
+      return ((bitField2_ & 0x00000200) != 0);
     }
     /**
      * 
@@ -18127,7 +18401,7 @@ public Builder setProductCustomAttribute2(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCustomAttribute2_ = value;
-      bitField2_ |= 0x00000100;
+      bitField2_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -18141,7 +18415,7 @@ public Builder setProductCustomAttribute2(
      */
     public Builder clearProductCustomAttribute2() {
       productCustomAttribute2_ = getDefaultInstance().getProductCustomAttribute2();
-      bitField2_ = (bitField2_ & ~0x00000100);
+      bitField2_ = (bitField2_ & ~0x00000200);
       onChanged();
       return this;
     }
@@ -18159,7 +18433,7 @@ public Builder setProductCustomAttribute2Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCustomAttribute2_ = value;
-      bitField2_ |= 0x00000100;
+      bitField2_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -18174,7 +18448,7 @@ public Builder setProductCustomAttribute2Bytes(
      * @return Whether the productCustomAttribute3 field is set.
      */
     public boolean hasProductCustomAttribute3() {
-      return ((bitField2_ & 0x00000200) != 0);
+      return ((bitField2_ & 0x00000400) != 0);
     }
     /**
      * 
@@ -18230,7 +18504,7 @@ public Builder setProductCustomAttribute3(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCustomAttribute3_ = value;
-      bitField2_ |= 0x00000200;
+      bitField2_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -18244,7 +18518,7 @@ public Builder setProductCustomAttribute3(
      */
     public Builder clearProductCustomAttribute3() {
       productCustomAttribute3_ = getDefaultInstance().getProductCustomAttribute3();
-      bitField2_ = (bitField2_ & ~0x00000200);
+      bitField2_ = (bitField2_ & ~0x00000400);
       onChanged();
       return this;
     }
@@ -18262,7 +18536,7 @@ public Builder setProductCustomAttribute3Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCustomAttribute3_ = value;
-      bitField2_ |= 0x00000200;
+      bitField2_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -18277,7 +18551,7 @@ public Builder setProductCustomAttribute3Bytes(
      * @return Whether the productCustomAttribute4 field is set.
      */
     public boolean hasProductCustomAttribute4() {
-      return ((bitField2_ & 0x00000400) != 0);
+      return ((bitField2_ & 0x00000800) != 0);
     }
     /**
      * 
@@ -18333,7 +18607,7 @@ public Builder setProductCustomAttribute4(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productCustomAttribute4_ = value;
-      bitField2_ |= 0x00000400;
+      bitField2_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -18347,7 +18621,7 @@ public Builder setProductCustomAttribute4(
      */
     public Builder clearProductCustomAttribute4() {
       productCustomAttribute4_ = getDefaultInstance().getProductCustomAttribute4();
-      bitField2_ = (bitField2_ & ~0x00000400);
+      bitField2_ = (bitField2_ & ~0x00000800);
       onChanged();
       return this;
     }
@@ -18365,7 +18639,7 @@ public Builder setProductCustomAttribute4Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productCustomAttribute4_ = value;
-      bitField2_ |= 0x00000400;
+      bitField2_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -18380,7 +18654,7 @@ public Builder setProductCustomAttribute4Bytes(
      * @return Whether the productFeedLabel field is set.
      */
     public boolean hasProductFeedLabel() {
-      return ((bitField2_ & 0x00000800) != 0);
+      return ((bitField2_ & 0x00001000) != 0);
     }
     /**
      * 
@@ -18436,7 +18710,7 @@ public Builder setProductFeedLabel(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productFeedLabel_ = value;
-      bitField2_ |= 0x00000800;
+      bitField2_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -18450,7 +18724,7 @@ public Builder setProductFeedLabel(
      */
     public Builder clearProductFeedLabel() {
       productFeedLabel_ = getDefaultInstance().getProductFeedLabel();
-      bitField2_ = (bitField2_ & ~0x00000800);
+      bitField2_ = (bitField2_ & ~0x00001000);
       onChanged();
       return this;
     }
@@ -18468,7 +18742,7 @@ public Builder setProductFeedLabelBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productFeedLabel_ = value;
-      bitField2_ |= 0x00000800;
+      bitField2_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -18483,7 +18757,7 @@ public Builder setProductFeedLabelBytes(
      * @return Whether the productItemId field is set.
      */
     public boolean hasProductItemId() {
-      return ((bitField2_ & 0x00001000) != 0);
+      return ((bitField2_ & 0x00002000) != 0);
     }
     /**
      * 
@@ -18539,7 +18813,7 @@ public Builder setProductItemId(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productItemId_ = value;
-      bitField2_ |= 0x00001000;
+      bitField2_ |= 0x00002000;
       onChanged();
       return this;
     }
@@ -18553,7 +18827,7 @@ public Builder setProductItemId(
      */
     public Builder clearProductItemId() {
       productItemId_ = getDefaultInstance().getProductItemId();
-      bitField2_ = (bitField2_ & ~0x00001000);
+      bitField2_ = (bitField2_ & ~0x00002000);
       onChanged();
       return this;
     }
@@ -18571,7 +18845,7 @@ public Builder setProductItemIdBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productItemId_ = value;
-      bitField2_ |= 0x00001000;
+      bitField2_ |= 0x00002000;
       onChanged();
       return this;
     }
@@ -18586,7 +18860,7 @@ public Builder setProductItemIdBytes(
      * @return Whether the productLanguage field is set.
      */
     public boolean hasProductLanguage() {
-      return ((bitField2_ & 0x00002000) != 0);
+      return ((bitField2_ & 0x00004000) != 0);
     }
     /**
      * 
@@ -18642,7 +18916,7 @@ public Builder setProductLanguage(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productLanguage_ = value;
-      bitField2_ |= 0x00002000;
+      bitField2_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -18656,7 +18930,7 @@ public Builder setProductLanguage(
      */
     public Builder clearProductLanguage() {
       productLanguage_ = getDefaultInstance().getProductLanguage();
-      bitField2_ = (bitField2_ & ~0x00002000);
+      bitField2_ = (bitField2_ & ~0x00004000);
       onChanged();
       return this;
     }
@@ -18674,7 +18948,7 @@ public Builder setProductLanguageBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productLanguage_ = value;
-      bitField2_ |= 0x00002000;
+      bitField2_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -18690,7 +18964,7 @@ public Builder setProductLanguageBytes(
      */
     @java.lang.Override
     public boolean hasProductMerchantId() {
-      return ((bitField2_ & 0x00004000) != 0);
+      return ((bitField2_ & 0x00008000) != 0);
     }
     /**
      * 
@@ -18716,7 +18990,7 @@ public long getProductMerchantId() {
     public Builder setProductMerchantId(long value) {
 
       productMerchantId_ = value;
-      bitField2_ |= 0x00004000;
+      bitField2_ |= 0x00008000;
       onChanged();
       return this;
     }
@@ -18729,7 +19003,7 @@ public Builder setProductMerchantId(long value) {
      * @return This builder for chaining.
      */
     public Builder clearProductMerchantId() {
-      bitField2_ = (bitField2_ & ~0x00004000);
+      bitField2_ = (bitField2_ & ~0x00008000);
       productMerchantId_ = 0L;
       onChanged();
       return this;
@@ -18745,7 +19019,7 @@ public Builder clearProductMerchantId() {
      * @return Whether the productSoldCategoryLevel1 field is set.
      */
     public boolean hasProductSoldCategoryLevel1() {
-      return ((bitField2_ & 0x00008000) != 0);
+      return ((bitField2_ & 0x00010000) != 0);
     }
     /**
      * 
@@ -18801,7 +19075,7 @@ public Builder setProductSoldCategoryLevel1(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCategoryLevel1_ = value;
-      bitField2_ |= 0x00008000;
+      bitField2_ |= 0x00010000;
       onChanged();
       return this;
     }
@@ -18815,7 +19089,7 @@ public Builder setProductSoldCategoryLevel1(
      */
     public Builder clearProductSoldCategoryLevel1() {
       productSoldCategoryLevel1_ = getDefaultInstance().getProductSoldCategoryLevel1();
-      bitField2_ = (bitField2_ & ~0x00008000);
+      bitField2_ = (bitField2_ & ~0x00010000);
       onChanged();
       return this;
     }
@@ -18833,7 +19107,7 @@ public Builder setProductSoldCategoryLevel1Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCategoryLevel1_ = value;
-      bitField2_ |= 0x00008000;
+      bitField2_ |= 0x00010000;
       onChanged();
       return this;
     }
@@ -18848,7 +19122,7 @@ public Builder setProductSoldCategoryLevel1Bytes(
      * @return Whether the productSoldCategoryLevel2 field is set.
      */
     public boolean hasProductSoldCategoryLevel2() {
-      return ((bitField2_ & 0x00010000) != 0);
+      return ((bitField2_ & 0x00020000) != 0);
     }
     /**
      * 
@@ -18904,7 +19178,7 @@ public Builder setProductSoldCategoryLevel2(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCategoryLevel2_ = value;
-      bitField2_ |= 0x00010000;
+      bitField2_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -18918,7 +19192,7 @@ public Builder setProductSoldCategoryLevel2(
      */
     public Builder clearProductSoldCategoryLevel2() {
       productSoldCategoryLevel2_ = getDefaultInstance().getProductSoldCategoryLevel2();
-      bitField2_ = (bitField2_ & ~0x00010000);
+      bitField2_ = (bitField2_ & ~0x00020000);
       onChanged();
       return this;
     }
@@ -18936,7 +19210,7 @@ public Builder setProductSoldCategoryLevel2Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCategoryLevel2_ = value;
-      bitField2_ |= 0x00010000;
+      bitField2_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -18951,7 +19225,7 @@ public Builder setProductSoldCategoryLevel2Bytes(
      * @return Whether the productSoldCategoryLevel3 field is set.
      */
     public boolean hasProductSoldCategoryLevel3() {
-      return ((bitField2_ & 0x00020000) != 0);
+      return ((bitField2_ & 0x00040000) != 0);
     }
     /**
      * 
@@ -19007,7 +19281,7 @@ public Builder setProductSoldCategoryLevel3(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCategoryLevel3_ = value;
-      bitField2_ |= 0x00020000;
+      bitField2_ |= 0x00040000;
       onChanged();
       return this;
     }
@@ -19021,7 +19295,7 @@ public Builder setProductSoldCategoryLevel3(
      */
     public Builder clearProductSoldCategoryLevel3() {
       productSoldCategoryLevel3_ = getDefaultInstance().getProductSoldCategoryLevel3();
-      bitField2_ = (bitField2_ & ~0x00020000);
+      bitField2_ = (bitField2_ & ~0x00040000);
       onChanged();
       return this;
     }
@@ -19039,7 +19313,7 @@ public Builder setProductSoldCategoryLevel3Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCategoryLevel3_ = value;
-      bitField2_ |= 0x00020000;
+      bitField2_ |= 0x00040000;
       onChanged();
       return this;
     }
@@ -19054,7 +19328,7 @@ public Builder setProductSoldCategoryLevel3Bytes(
      * @return Whether the productSoldCategoryLevel4 field is set.
      */
     public boolean hasProductSoldCategoryLevel4() {
-      return ((bitField2_ & 0x00040000) != 0);
+      return ((bitField2_ & 0x00080000) != 0);
     }
     /**
      * 
@@ -19110,7 +19384,7 @@ public Builder setProductSoldCategoryLevel4(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCategoryLevel4_ = value;
-      bitField2_ |= 0x00040000;
+      bitField2_ |= 0x00080000;
       onChanged();
       return this;
     }
@@ -19124,7 +19398,7 @@ public Builder setProductSoldCategoryLevel4(
      */
     public Builder clearProductSoldCategoryLevel4() {
       productSoldCategoryLevel4_ = getDefaultInstance().getProductSoldCategoryLevel4();
-      bitField2_ = (bitField2_ & ~0x00040000);
+      bitField2_ = (bitField2_ & ~0x00080000);
       onChanged();
       return this;
     }
@@ -19142,7 +19416,7 @@ public Builder setProductSoldCategoryLevel4Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCategoryLevel4_ = value;
-      bitField2_ |= 0x00040000;
+      bitField2_ |= 0x00080000;
       onChanged();
       return this;
     }
@@ -19157,7 +19431,7 @@ public Builder setProductSoldCategoryLevel4Bytes(
      * @return Whether the productSoldCategoryLevel5 field is set.
      */
     public boolean hasProductSoldCategoryLevel5() {
-      return ((bitField2_ & 0x00080000) != 0);
+      return ((bitField2_ & 0x00100000) != 0);
     }
     /**
      * 
@@ -19213,7 +19487,7 @@ public Builder setProductSoldCategoryLevel5(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCategoryLevel5_ = value;
-      bitField2_ |= 0x00080000;
+      bitField2_ |= 0x00100000;
       onChanged();
       return this;
     }
@@ -19227,7 +19501,7 @@ public Builder setProductSoldCategoryLevel5(
      */
     public Builder clearProductSoldCategoryLevel5() {
       productSoldCategoryLevel5_ = getDefaultInstance().getProductSoldCategoryLevel5();
-      bitField2_ = (bitField2_ & ~0x00080000);
+      bitField2_ = (bitField2_ & ~0x00100000);
       onChanged();
       return this;
     }
@@ -19245,7 +19519,7 @@ public Builder setProductSoldCategoryLevel5Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCategoryLevel5_ = value;
-      bitField2_ |= 0x00080000;
+      bitField2_ |= 0x00100000;
       onChanged();
       return this;
     }
@@ -19260,7 +19534,7 @@ public Builder setProductSoldCategoryLevel5Bytes(
      * @return Whether the productSoldBrand field is set.
      */
     public boolean hasProductSoldBrand() {
-      return ((bitField2_ & 0x00100000) != 0);
+      return ((bitField2_ & 0x00200000) != 0);
     }
     /**
      * 
@@ -19316,7 +19590,7 @@ public Builder setProductSoldBrand(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldBrand_ = value;
-      bitField2_ |= 0x00100000;
+      bitField2_ |= 0x00200000;
       onChanged();
       return this;
     }
@@ -19330,7 +19604,7 @@ public Builder setProductSoldBrand(
      */
     public Builder clearProductSoldBrand() {
       productSoldBrand_ = getDefaultInstance().getProductSoldBrand();
-      bitField2_ = (bitField2_ & ~0x00100000);
+      bitField2_ = (bitField2_ & ~0x00200000);
       onChanged();
       return this;
     }
@@ -19348,7 +19622,7 @@ public Builder setProductSoldBrandBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldBrand_ = value;
-      bitField2_ |= 0x00100000;
+      bitField2_ |= 0x00200000;
       onChanged();
       return this;
     }
@@ -19376,7 +19650,7 @@ public Builder setProductSoldBrandBytes(
      */
     public Builder setProductSoldConditionValue(int value) {
       productSoldCondition_ = value;
-      bitField2_ |= 0x00200000;
+      bitField2_ |= 0x00400000;
       onChanged();
       return this;
     }
@@ -19404,7 +19678,7 @@ public com.google.ads.googleads.v24.enums.ProductConditionEnum.ProductCondition
      */
     public Builder setProductSoldCondition(com.google.ads.googleads.v24.enums.ProductConditionEnum.ProductCondition value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField2_ |= 0x00200000;
+      bitField2_ |= 0x00400000;
       productSoldCondition_ = value.getNumber();
       onChanged();
       return this;
@@ -19418,7 +19692,7 @@ public Builder setProductSoldCondition(com.google.ads.googleads.v24.enums.Produc
      * @return This builder for chaining.
      */
     public Builder clearProductSoldCondition() {
-      bitField2_ = (bitField2_ & ~0x00200000);
+      bitField2_ = (bitField2_ & ~0x00400000);
       productSoldCondition_ = 0;
       onChanged();
       return this;
@@ -19434,7 +19708,7 @@ public Builder clearProductSoldCondition() {
      * @return Whether the productSoldCustomAttribute0 field is set.
      */
     public boolean hasProductSoldCustomAttribute0() {
-      return ((bitField2_ & 0x00400000) != 0);
+      return ((bitField2_ & 0x00800000) != 0);
     }
     /**
      * 
@@ -19490,7 +19764,7 @@ public Builder setProductSoldCustomAttribute0(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCustomAttribute0_ = value;
-      bitField2_ |= 0x00400000;
+      bitField2_ |= 0x00800000;
       onChanged();
       return this;
     }
@@ -19504,7 +19778,7 @@ public Builder setProductSoldCustomAttribute0(
      */
     public Builder clearProductSoldCustomAttribute0() {
       productSoldCustomAttribute0_ = getDefaultInstance().getProductSoldCustomAttribute0();
-      bitField2_ = (bitField2_ & ~0x00400000);
+      bitField2_ = (bitField2_ & ~0x00800000);
       onChanged();
       return this;
     }
@@ -19522,7 +19796,7 @@ public Builder setProductSoldCustomAttribute0Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCustomAttribute0_ = value;
-      bitField2_ |= 0x00400000;
+      bitField2_ |= 0x00800000;
       onChanged();
       return this;
     }
@@ -19537,7 +19811,7 @@ public Builder setProductSoldCustomAttribute0Bytes(
      * @return Whether the productSoldCustomAttribute1 field is set.
      */
     public boolean hasProductSoldCustomAttribute1() {
-      return ((bitField2_ & 0x00800000) != 0);
+      return ((bitField2_ & 0x01000000) != 0);
     }
     /**
      * 
@@ -19593,7 +19867,7 @@ public Builder setProductSoldCustomAttribute1(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCustomAttribute1_ = value;
-      bitField2_ |= 0x00800000;
+      bitField2_ |= 0x01000000;
       onChanged();
       return this;
     }
@@ -19607,7 +19881,7 @@ public Builder setProductSoldCustomAttribute1(
      */
     public Builder clearProductSoldCustomAttribute1() {
       productSoldCustomAttribute1_ = getDefaultInstance().getProductSoldCustomAttribute1();
-      bitField2_ = (bitField2_ & ~0x00800000);
+      bitField2_ = (bitField2_ & ~0x01000000);
       onChanged();
       return this;
     }
@@ -19625,7 +19899,7 @@ public Builder setProductSoldCustomAttribute1Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCustomAttribute1_ = value;
-      bitField2_ |= 0x00800000;
+      bitField2_ |= 0x01000000;
       onChanged();
       return this;
     }
@@ -19640,7 +19914,7 @@ public Builder setProductSoldCustomAttribute1Bytes(
      * @return Whether the productSoldCustomAttribute2 field is set.
      */
     public boolean hasProductSoldCustomAttribute2() {
-      return ((bitField2_ & 0x01000000) != 0);
+      return ((bitField2_ & 0x02000000) != 0);
     }
     /**
      * 
@@ -19696,7 +19970,7 @@ public Builder setProductSoldCustomAttribute2(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCustomAttribute2_ = value;
-      bitField2_ |= 0x01000000;
+      bitField2_ |= 0x02000000;
       onChanged();
       return this;
     }
@@ -19710,7 +19984,7 @@ public Builder setProductSoldCustomAttribute2(
      */
     public Builder clearProductSoldCustomAttribute2() {
       productSoldCustomAttribute2_ = getDefaultInstance().getProductSoldCustomAttribute2();
-      bitField2_ = (bitField2_ & ~0x01000000);
+      bitField2_ = (bitField2_ & ~0x02000000);
       onChanged();
       return this;
     }
@@ -19728,7 +20002,7 @@ public Builder setProductSoldCustomAttribute2Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCustomAttribute2_ = value;
-      bitField2_ |= 0x01000000;
+      bitField2_ |= 0x02000000;
       onChanged();
       return this;
     }
@@ -19743,7 +20017,7 @@ public Builder setProductSoldCustomAttribute2Bytes(
      * @return Whether the productSoldCustomAttribute3 field is set.
      */
     public boolean hasProductSoldCustomAttribute3() {
-      return ((bitField2_ & 0x02000000) != 0);
+      return ((bitField2_ & 0x04000000) != 0);
     }
     /**
      * 
@@ -19799,7 +20073,7 @@ public Builder setProductSoldCustomAttribute3(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCustomAttribute3_ = value;
-      bitField2_ |= 0x02000000;
+      bitField2_ |= 0x04000000;
       onChanged();
       return this;
     }
@@ -19813,7 +20087,7 @@ public Builder setProductSoldCustomAttribute3(
      */
     public Builder clearProductSoldCustomAttribute3() {
       productSoldCustomAttribute3_ = getDefaultInstance().getProductSoldCustomAttribute3();
-      bitField2_ = (bitField2_ & ~0x02000000);
+      bitField2_ = (bitField2_ & ~0x04000000);
       onChanged();
       return this;
     }
@@ -19831,7 +20105,7 @@ public Builder setProductSoldCustomAttribute3Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCustomAttribute3_ = value;
-      bitField2_ |= 0x02000000;
+      bitField2_ |= 0x04000000;
       onChanged();
       return this;
     }
@@ -19846,7 +20120,7 @@ public Builder setProductSoldCustomAttribute3Bytes(
      * @return Whether the productSoldCustomAttribute4 field is set.
      */
     public boolean hasProductSoldCustomAttribute4() {
-      return ((bitField2_ & 0x04000000) != 0);
+      return ((bitField2_ & 0x08000000) != 0);
     }
     /**
      * 
@@ -19902,7 +20176,7 @@ public Builder setProductSoldCustomAttribute4(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldCustomAttribute4_ = value;
-      bitField2_ |= 0x04000000;
+      bitField2_ |= 0x08000000;
       onChanged();
       return this;
     }
@@ -19916,7 +20190,7 @@ public Builder setProductSoldCustomAttribute4(
      */
     public Builder clearProductSoldCustomAttribute4() {
       productSoldCustomAttribute4_ = getDefaultInstance().getProductSoldCustomAttribute4();
-      bitField2_ = (bitField2_ & ~0x04000000);
+      bitField2_ = (bitField2_ & ~0x08000000);
       onChanged();
       return this;
     }
@@ -19934,7 +20208,7 @@ public Builder setProductSoldCustomAttribute4Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldCustomAttribute4_ = value;
-      bitField2_ |= 0x04000000;
+      bitField2_ |= 0x08000000;
       onChanged();
       return this;
     }
@@ -19949,7 +20223,7 @@ public Builder setProductSoldCustomAttribute4Bytes(
      * @return Whether the productSoldItemId field is set.
      */
     public boolean hasProductSoldItemId() {
-      return ((bitField2_ & 0x08000000) != 0);
+      return ((bitField2_ & 0x10000000) != 0);
     }
     /**
      * 
@@ -20005,7 +20279,7 @@ public Builder setProductSoldItemId(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldItemId_ = value;
-      bitField2_ |= 0x08000000;
+      bitField2_ |= 0x10000000;
       onChanged();
       return this;
     }
@@ -20019,7 +20293,7 @@ public Builder setProductSoldItemId(
      */
     public Builder clearProductSoldItemId() {
       productSoldItemId_ = getDefaultInstance().getProductSoldItemId();
-      bitField2_ = (bitField2_ & ~0x08000000);
+      bitField2_ = (bitField2_ & ~0x10000000);
       onChanged();
       return this;
     }
@@ -20037,7 +20311,7 @@ public Builder setProductSoldItemIdBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldItemId_ = value;
-      bitField2_ |= 0x08000000;
+      bitField2_ |= 0x10000000;
       onChanged();
       return this;
     }
@@ -20052,7 +20326,7 @@ public Builder setProductSoldItemIdBytes(
      * @return Whether the productSoldTitle field is set.
      */
     public boolean hasProductSoldTitle() {
-      return ((bitField2_ & 0x10000000) != 0);
+      return ((bitField2_ & 0x20000000) != 0);
     }
     /**
      * 
@@ -20108,7 +20382,7 @@ public Builder setProductSoldTitle(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldTitle_ = value;
-      bitField2_ |= 0x10000000;
+      bitField2_ |= 0x20000000;
       onChanged();
       return this;
     }
@@ -20122,7 +20396,7 @@ public Builder setProductSoldTitle(
      */
     public Builder clearProductSoldTitle() {
       productSoldTitle_ = getDefaultInstance().getProductSoldTitle();
-      bitField2_ = (bitField2_ & ~0x10000000);
+      bitField2_ = (bitField2_ & ~0x20000000);
       onChanged();
       return this;
     }
@@ -20140,7 +20414,7 @@ public Builder setProductSoldTitleBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldTitle_ = value;
-      bitField2_ |= 0x10000000;
+      bitField2_ |= 0x20000000;
       onChanged();
       return this;
     }
@@ -20155,7 +20429,7 @@ public Builder setProductSoldTitleBytes(
      * @return Whether the productSoldTypeL1 field is set.
      */
     public boolean hasProductSoldTypeL1() {
-      return ((bitField2_ & 0x20000000) != 0);
+      return ((bitField2_ & 0x40000000) != 0);
     }
     /**
      * 
@@ -20211,7 +20485,7 @@ public Builder setProductSoldTypeL1(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldTypeL1_ = value;
-      bitField2_ |= 0x20000000;
+      bitField2_ |= 0x40000000;
       onChanged();
       return this;
     }
@@ -20225,7 +20499,7 @@ public Builder setProductSoldTypeL1(
      */
     public Builder clearProductSoldTypeL1() {
       productSoldTypeL1_ = getDefaultInstance().getProductSoldTypeL1();
-      bitField2_ = (bitField2_ & ~0x20000000);
+      bitField2_ = (bitField2_ & ~0x40000000);
       onChanged();
       return this;
     }
@@ -20243,7 +20517,7 @@ public Builder setProductSoldTypeL1Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldTypeL1_ = value;
-      bitField2_ |= 0x20000000;
+      bitField2_ |= 0x40000000;
       onChanged();
       return this;
     }
@@ -20258,7 +20532,7 @@ public Builder setProductSoldTypeL1Bytes(
      * @return Whether the productSoldTypeL2 field is set.
      */
     public boolean hasProductSoldTypeL2() {
-      return ((bitField2_ & 0x40000000) != 0);
+      return ((bitField2_ & 0x80000000) != 0);
     }
     /**
      * 
@@ -20314,7 +20588,7 @@ public Builder setProductSoldTypeL2(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldTypeL2_ = value;
-      bitField2_ |= 0x40000000;
+      bitField2_ |= 0x80000000;
       onChanged();
       return this;
     }
@@ -20328,7 +20602,7 @@ public Builder setProductSoldTypeL2(
      */
     public Builder clearProductSoldTypeL2() {
       productSoldTypeL2_ = getDefaultInstance().getProductSoldTypeL2();
-      bitField2_ = (bitField2_ & ~0x40000000);
+      bitField2_ = (bitField2_ & ~0x80000000);
       onChanged();
       return this;
     }
@@ -20346,7 +20620,7 @@ public Builder setProductSoldTypeL2Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldTypeL2_ = value;
-      bitField2_ |= 0x40000000;
+      bitField2_ |= 0x80000000;
       onChanged();
       return this;
     }
@@ -20361,7 +20635,7 @@ public Builder setProductSoldTypeL2Bytes(
      * @return Whether the productSoldTypeL3 field is set.
      */
     public boolean hasProductSoldTypeL3() {
-      return ((bitField2_ & 0x80000000) != 0);
+      return ((bitField3_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -20417,7 +20691,7 @@ public Builder setProductSoldTypeL3(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldTypeL3_ = value;
-      bitField2_ |= 0x80000000;
+      bitField3_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -20431,7 +20705,7 @@ public Builder setProductSoldTypeL3(
      */
     public Builder clearProductSoldTypeL3() {
       productSoldTypeL3_ = getDefaultInstance().getProductSoldTypeL3();
-      bitField2_ = (bitField2_ & ~0x80000000);
+      bitField3_ = (bitField3_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -20449,7 +20723,7 @@ public Builder setProductSoldTypeL3Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldTypeL3_ = value;
-      bitField2_ |= 0x80000000;
+      bitField3_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -20464,7 +20738,7 @@ public Builder setProductSoldTypeL3Bytes(
      * @return Whether the productSoldTypeL4 field is set.
      */
     public boolean hasProductSoldTypeL4() {
-      return ((bitField3_ & 0x00000001) != 0);
+      return ((bitField3_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -20520,7 +20794,7 @@ public Builder setProductSoldTypeL4(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldTypeL4_ = value;
-      bitField3_ |= 0x00000001;
+      bitField3_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -20534,7 +20808,7 @@ public Builder setProductSoldTypeL4(
      */
     public Builder clearProductSoldTypeL4() {
       productSoldTypeL4_ = getDefaultInstance().getProductSoldTypeL4();
-      bitField3_ = (bitField3_ & ~0x00000001);
+      bitField3_ = (bitField3_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -20552,7 +20826,7 @@ public Builder setProductSoldTypeL4Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldTypeL4_ = value;
-      bitField3_ |= 0x00000001;
+      bitField3_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -20567,7 +20841,7 @@ public Builder setProductSoldTypeL4Bytes(
      * @return Whether the productSoldTypeL5 field is set.
      */
     public boolean hasProductSoldTypeL5() {
-      return ((bitField3_ & 0x00000002) != 0);
+      return ((bitField3_ & 0x00000004) != 0);
     }
     /**
      * 
@@ -20623,7 +20897,7 @@ public Builder setProductSoldTypeL5(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productSoldTypeL5_ = value;
-      bitField3_ |= 0x00000002;
+      bitField3_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -20637,7 +20911,7 @@ public Builder setProductSoldTypeL5(
      */
     public Builder clearProductSoldTypeL5() {
       productSoldTypeL5_ = getDefaultInstance().getProductSoldTypeL5();
-      bitField3_ = (bitField3_ & ~0x00000002);
+      bitField3_ = (bitField3_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -20655,7 +20929,7 @@ public Builder setProductSoldTypeL5Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productSoldTypeL5_ = value;
-      bitField3_ |= 0x00000002;
+      bitField3_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -20670,7 +20944,7 @@ public Builder setProductSoldTypeL5Bytes(
      * @return Whether the productStoreId field is set.
      */
     public boolean hasProductStoreId() {
-      return ((bitField3_ & 0x00000004) != 0);
+      return ((bitField3_ & 0x00000008) != 0);
     }
     /**
      * 
@@ -20726,7 +21000,7 @@ public Builder setProductStoreId(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productStoreId_ = value;
-      bitField3_ |= 0x00000004;
+      bitField3_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -20740,7 +21014,7 @@ public Builder setProductStoreId(
      */
     public Builder clearProductStoreId() {
       productStoreId_ = getDefaultInstance().getProductStoreId();
-      bitField3_ = (bitField3_ & ~0x00000004);
+      bitField3_ = (bitField3_ & ~0x00000008);
       onChanged();
       return this;
     }
@@ -20758,7 +21032,7 @@ public Builder setProductStoreIdBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productStoreId_ = value;
-      bitField3_ |= 0x00000004;
+      bitField3_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -20773,7 +21047,7 @@ public Builder setProductStoreIdBytes(
      * @return Whether the productTitle field is set.
      */
     public boolean hasProductTitle() {
-      return ((bitField3_ & 0x00000008) != 0);
+      return ((bitField3_ & 0x00000010) != 0);
     }
     /**
      * 
@@ -20829,7 +21103,7 @@ public Builder setProductTitle(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productTitle_ = value;
-      bitField3_ |= 0x00000008;
+      bitField3_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -20843,7 +21117,7 @@ public Builder setProductTitle(
      */
     public Builder clearProductTitle() {
       productTitle_ = getDefaultInstance().getProductTitle();
-      bitField3_ = (bitField3_ & ~0x00000008);
+      bitField3_ = (bitField3_ & ~0x00000010);
       onChanged();
       return this;
     }
@@ -20861,7 +21135,7 @@ public Builder setProductTitleBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productTitle_ = value;
-      bitField3_ |= 0x00000008;
+      bitField3_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -20876,7 +21150,7 @@ public Builder setProductTitleBytes(
      * @return Whether the productTypeL1 field is set.
      */
     public boolean hasProductTypeL1() {
-      return ((bitField3_ & 0x00000010) != 0);
+      return ((bitField3_ & 0x00000020) != 0);
     }
     /**
      * 
@@ -20932,7 +21206,7 @@ public Builder setProductTypeL1(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productTypeL1_ = value;
-      bitField3_ |= 0x00000010;
+      bitField3_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -20946,7 +21220,7 @@ public Builder setProductTypeL1(
      */
     public Builder clearProductTypeL1() {
       productTypeL1_ = getDefaultInstance().getProductTypeL1();
-      bitField3_ = (bitField3_ & ~0x00000010);
+      bitField3_ = (bitField3_ & ~0x00000020);
       onChanged();
       return this;
     }
@@ -20964,7 +21238,7 @@ public Builder setProductTypeL1Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productTypeL1_ = value;
-      bitField3_ |= 0x00000010;
+      bitField3_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -20979,7 +21253,7 @@ public Builder setProductTypeL1Bytes(
      * @return Whether the productTypeL2 field is set.
      */
     public boolean hasProductTypeL2() {
-      return ((bitField3_ & 0x00000020) != 0);
+      return ((bitField3_ & 0x00000040) != 0);
     }
     /**
      * 
@@ -21035,7 +21309,7 @@ public Builder setProductTypeL2(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productTypeL2_ = value;
-      bitField3_ |= 0x00000020;
+      bitField3_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -21049,7 +21323,7 @@ public Builder setProductTypeL2(
      */
     public Builder clearProductTypeL2() {
       productTypeL2_ = getDefaultInstance().getProductTypeL2();
-      bitField3_ = (bitField3_ & ~0x00000020);
+      bitField3_ = (bitField3_ & ~0x00000040);
       onChanged();
       return this;
     }
@@ -21067,7 +21341,7 @@ public Builder setProductTypeL2Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productTypeL2_ = value;
-      bitField3_ |= 0x00000020;
+      bitField3_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -21082,7 +21356,7 @@ public Builder setProductTypeL2Bytes(
      * @return Whether the productTypeL3 field is set.
      */
     public boolean hasProductTypeL3() {
-      return ((bitField3_ & 0x00000040) != 0);
+      return ((bitField3_ & 0x00000080) != 0);
     }
     /**
      * 
@@ -21138,7 +21412,7 @@ public Builder setProductTypeL3(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productTypeL3_ = value;
-      bitField3_ |= 0x00000040;
+      bitField3_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -21152,7 +21426,7 @@ public Builder setProductTypeL3(
      */
     public Builder clearProductTypeL3() {
       productTypeL3_ = getDefaultInstance().getProductTypeL3();
-      bitField3_ = (bitField3_ & ~0x00000040);
+      bitField3_ = (bitField3_ & ~0x00000080);
       onChanged();
       return this;
     }
@@ -21170,7 +21444,7 @@ public Builder setProductTypeL3Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productTypeL3_ = value;
-      bitField3_ |= 0x00000040;
+      bitField3_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -21185,7 +21459,7 @@ public Builder setProductTypeL3Bytes(
      * @return Whether the productTypeL4 field is set.
      */
     public boolean hasProductTypeL4() {
-      return ((bitField3_ & 0x00000080) != 0);
+      return ((bitField3_ & 0x00000100) != 0);
     }
     /**
      * 
@@ -21241,7 +21515,7 @@ public Builder setProductTypeL4(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productTypeL4_ = value;
-      bitField3_ |= 0x00000080;
+      bitField3_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -21255,7 +21529,7 @@ public Builder setProductTypeL4(
      */
     public Builder clearProductTypeL4() {
       productTypeL4_ = getDefaultInstance().getProductTypeL4();
-      bitField3_ = (bitField3_ & ~0x00000080);
+      bitField3_ = (bitField3_ & ~0x00000100);
       onChanged();
       return this;
     }
@@ -21273,7 +21547,7 @@ public Builder setProductTypeL4Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productTypeL4_ = value;
-      bitField3_ |= 0x00000080;
+      bitField3_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -21288,7 +21562,7 @@ public Builder setProductTypeL4Bytes(
      * @return Whether the productTypeL5 field is set.
      */
     public boolean hasProductTypeL5() {
-      return ((bitField3_ & 0x00000100) != 0);
+      return ((bitField3_ & 0x00000200) != 0);
     }
     /**
      * 
@@ -21344,7 +21618,7 @@ public Builder setProductTypeL5(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       productTypeL5_ = value;
-      bitField3_ |= 0x00000100;
+      bitField3_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -21358,7 +21632,7 @@ public Builder setProductTypeL5(
      */
     public Builder clearProductTypeL5() {
       productTypeL5_ = getDefaultInstance().getProductTypeL5();
-      bitField3_ = (bitField3_ & ~0x00000100);
+      bitField3_ = (bitField3_ & ~0x00000200);
       onChanged();
       return this;
     }
@@ -21376,7 +21650,7 @@ public Builder setProductTypeL5Bytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       productTypeL5_ = value;
-      bitField3_ |= 0x00000100;
+      bitField3_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -21393,7 +21667,7 @@ public Builder setProductTypeL5Bytes(
      * @return Whether the quarter field is set.
      */
     public boolean hasQuarter() {
-      return ((bitField3_ & 0x00000200) != 0);
+      return ((bitField3_ & 0x00000400) != 0);
     }
     /**
      * 
@@ -21455,7 +21729,7 @@ public Builder setQuarter(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       quarter_ = value;
-      bitField3_ |= 0x00000200;
+      bitField3_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -21471,7 +21745,7 @@ public Builder setQuarter(
      */
     public Builder clearQuarter() {
       quarter_ = getDefaultInstance().getQuarter();
-      bitField3_ = (bitField3_ & ~0x00000200);
+      bitField3_ = (bitField3_ & ~0x00000400);
       onChanged();
       return this;
     }
@@ -21491,7 +21765,7 @@ public Builder setQuarterBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       quarter_ = value;
-      bitField3_ |= 0x00000200;
+      bitField3_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -21506,7 +21780,7 @@ public Builder setQuarterBytes(
      * @return Whether the travelDestinationCity field is set.
      */
     public boolean hasTravelDestinationCity() {
-      return ((bitField3_ & 0x00000400) != 0);
+      return ((bitField3_ & 0x00000800) != 0);
     }
     /**
      * 
@@ -21562,7 +21836,7 @@ public Builder setTravelDestinationCity(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       travelDestinationCity_ = value;
-      bitField3_ |= 0x00000400;
+      bitField3_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -21576,7 +21850,7 @@ public Builder setTravelDestinationCity(
      */
     public Builder clearTravelDestinationCity() {
       travelDestinationCity_ = getDefaultInstance().getTravelDestinationCity();
-      bitField3_ = (bitField3_ & ~0x00000400);
+      bitField3_ = (bitField3_ & ~0x00000800);
       onChanged();
       return this;
     }
@@ -21594,7 +21868,7 @@ public Builder setTravelDestinationCityBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       travelDestinationCity_ = value;
-      bitField3_ |= 0x00000400;
+      bitField3_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -21609,7 +21883,7 @@ public Builder setTravelDestinationCityBytes(
      * @return Whether the travelDestinationCountry field is set.
      */
     public boolean hasTravelDestinationCountry() {
-      return ((bitField3_ & 0x00000800) != 0);
+      return ((bitField3_ & 0x00001000) != 0);
     }
     /**
      * 
@@ -21665,7 +21939,7 @@ public Builder setTravelDestinationCountry(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       travelDestinationCountry_ = value;
-      bitField3_ |= 0x00000800;
+      bitField3_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -21679,7 +21953,7 @@ public Builder setTravelDestinationCountry(
      */
     public Builder clearTravelDestinationCountry() {
       travelDestinationCountry_ = getDefaultInstance().getTravelDestinationCountry();
-      bitField3_ = (bitField3_ & ~0x00000800);
+      bitField3_ = (bitField3_ & ~0x00001000);
       onChanged();
       return this;
     }
@@ -21697,7 +21971,7 @@ public Builder setTravelDestinationCountryBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       travelDestinationCountry_ = value;
-      bitField3_ |= 0x00000800;
+      bitField3_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -21712,7 +21986,7 @@ public Builder setTravelDestinationCountryBytes(
      * @return Whether the travelDestinationRegion field is set.
      */
     public boolean hasTravelDestinationRegion() {
-      return ((bitField3_ & 0x00001000) != 0);
+      return ((bitField3_ & 0x00002000) != 0);
     }
     /**
      * 
@@ -21768,7 +22042,7 @@ public Builder setTravelDestinationRegion(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       travelDestinationRegion_ = value;
-      bitField3_ |= 0x00001000;
+      bitField3_ |= 0x00002000;
       onChanged();
       return this;
     }
@@ -21782,7 +22056,7 @@ public Builder setTravelDestinationRegion(
      */
     public Builder clearTravelDestinationRegion() {
       travelDestinationRegion_ = getDefaultInstance().getTravelDestinationRegion();
-      bitField3_ = (bitField3_ & ~0x00001000);
+      bitField3_ = (bitField3_ & ~0x00002000);
       onChanged();
       return this;
     }
@@ -21800,7 +22074,7 @@ public Builder setTravelDestinationRegionBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       travelDestinationRegion_ = value;
-      bitField3_ |= 0x00001000;
+      bitField3_ |= 0x00002000;
       onChanged();
       return this;
     }
@@ -21816,7 +22090,7 @@ public Builder setTravelDestinationRegionBytes(
      * @return Whether the verticalAdsEventParticipantDisplayNames field is set.
      */
     public boolean hasVerticalAdsEventParticipantDisplayNames() {
-      return ((bitField3_ & 0x00002000) != 0);
+      return ((bitField3_ & 0x00004000) != 0);
     }
     /**
      * 
@@ -21875,7 +22149,7 @@ public Builder setVerticalAdsEventParticipantDisplayNames(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       verticalAdsEventParticipantDisplayNames_ = value;
-      bitField3_ |= 0x00002000;
+      bitField3_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -21890,7 +22164,7 @@ public Builder setVerticalAdsEventParticipantDisplayNames(
      */
     public Builder clearVerticalAdsEventParticipantDisplayNames() {
       verticalAdsEventParticipantDisplayNames_ = getDefaultInstance().getVerticalAdsEventParticipantDisplayNames();
-      bitField3_ = (bitField3_ & ~0x00002000);
+      bitField3_ = (bitField3_ & ~0x00004000);
       onChanged();
       return this;
     }
@@ -21909,7 +22183,7 @@ public Builder setVerticalAdsEventParticipantDisplayNamesBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       verticalAdsEventParticipantDisplayNames_ = value;
-      bitField3_ |= 0x00002000;
+      bitField3_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -21926,7 +22200,7 @@ public Builder setVerticalAdsEventParticipantDisplayNamesBytes(
      */
     @java.lang.Override
     public boolean hasVerticalAdsHotelClass() {
-      return ((bitField3_ & 0x00004000) != 0);
+      return ((bitField3_ & 0x00008000) != 0);
     }
     /**
      * 
@@ -21954,7 +22228,7 @@ public long getVerticalAdsHotelClass() {
     public Builder setVerticalAdsHotelClass(long value) {
 
       verticalAdsHotelClass_ = value;
-      bitField3_ |= 0x00004000;
+      bitField3_ |= 0x00008000;
       onChanged();
       return this;
     }
@@ -21968,7 +22242,7 @@ public Builder setVerticalAdsHotelClass(long value) {
      * @return This builder for chaining.
      */
     public Builder clearVerticalAdsHotelClass() {
-      bitField3_ = (bitField3_ & ~0x00004000);
+      bitField3_ = (bitField3_ & ~0x00008000);
       verticalAdsHotelClass_ = 0L;
       onChanged();
       return this;
@@ -21984,7 +22258,7 @@ public Builder clearVerticalAdsHotelClass() {
      * @return Whether the verticalAdsListing field is set.
      */
     public boolean hasVerticalAdsListing() {
-      return ((bitField3_ & 0x00008000) != 0);
+      return ((bitField3_ & 0x00010000) != 0);
     }
     /**
      * 
@@ -22040,7 +22314,7 @@ public Builder setVerticalAdsListing(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       verticalAdsListing_ = value;
-      bitField3_ |= 0x00008000;
+      bitField3_ |= 0x00010000;
       onChanged();
       return this;
     }
@@ -22054,7 +22328,7 @@ public Builder setVerticalAdsListing(
      */
     public Builder clearVerticalAdsListing() {
       verticalAdsListing_ = getDefaultInstance().getVerticalAdsListing();
-      bitField3_ = (bitField3_ & ~0x00008000);
+      bitField3_ = (bitField3_ & ~0x00010000);
       onChanged();
       return this;
     }
@@ -22072,7 +22346,7 @@ public Builder setVerticalAdsListingBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       verticalAdsListing_ = value;
-      bitField3_ |= 0x00008000;
+      bitField3_ |= 0x00010000;
       onChanged();
       return this;
     }
@@ -22089,7 +22363,7 @@ public Builder setVerticalAdsListingBytes(
      * @return Whether the verticalAdsListingBrand field is set.
      */
     public boolean hasVerticalAdsListingBrand() {
-      return ((bitField3_ & 0x00010000) != 0);
+      return ((bitField3_ & 0x00020000) != 0);
     }
     /**
      * 
@@ -22151,7 +22425,7 @@ public Builder setVerticalAdsListingBrand(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       verticalAdsListingBrand_ = value;
-      bitField3_ |= 0x00010000;
+      bitField3_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -22167,7 +22441,7 @@ public Builder setVerticalAdsListingBrand(
      */
     public Builder clearVerticalAdsListingBrand() {
       verticalAdsListingBrand_ = getDefaultInstance().getVerticalAdsListingBrand();
-      bitField3_ = (bitField3_ & ~0x00010000);
+      bitField3_ = (bitField3_ & ~0x00020000);
       onChanged();
       return this;
     }
@@ -22187,7 +22461,7 @@ public Builder setVerticalAdsListingBrandBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       verticalAdsListingBrand_ = value;
-      bitField3_ |= 0x00010000;
+      bitField3_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -22202,7 +22476,7 @@ public Builder setVerticalAdsListingBrandBytes(
      * @return Whether the verticalAdsListingCity field is set.
      */
     public boolean hasVerticalAdsListingCity() {
-      return ((bitField3_ & 0x00020000) != 0);
+      return ((bitField3_ & 0x00040000) != 0);
     }
     /**
      * 
@@ -22258,7 +22532,7 @@ public Builder setVerticalAdsListingCity(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       verticalAdsListingCity_ = value;
-      bitField3_ |= 0x00020000;
+      bitField3_ |= 0x00040000;
       onChanged();
       return this;
     }
@@ -22272,7 +22546,7 @@ public Builder setVerticalAdsListingCity(
      */
     public Builder clearVerticalAdsListingCity() {
       verticalAdsListingCity_ = getDefaultInstance().getVerticalAdsListingCity();
-      bitField3_ = (bitField3_ & ~0x00020000);
+      bitField3_ = (bitField3_ & ~0x00040000);
       onChanged();
       return this;
     }
@@ -22290,7 +22564,7 @@ public Builder setVerticalAdsListingCityBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       verticalAdsListingCity_ = value;
-      bitField3_ |= 0x00020000;
+      bitField3_ |= 0x00040000;
       onChanged();
       return this;
     }
@@ -22305,7 +22579,7 @@ public Builder setVerticalAdsListingCityBytes(
      * @return Whether the verticalAdsListingCountry field is set.
      */
     public boolean hasVerticalAdsListingCountry() {
-      return ((bitField3_ & 0x00040000) != 0);
+      return ((bitField3_ & 0x00080000) != 0);
     }
     /**
      * 
@@ -22353,78 +22627,247 @@ public java.lang.String getVerticalAdsListingCountry() {
      * The country where the vertical ads listing is located.
      * 
* - * optional string vertical_ads_listing_country = 210; - * @param value The verticalAdsListingCountry to set. - * @return This builder for chaining. + * optional string vertical_ads_listing_country = 210; + * @param value The verticalAdsListingCountry to set. + * @return This builder for chaining. + */ + public Builder setVerticalAdsListingCountry( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + verticalAdsListingCountry_ = value; + bitField3_ |= 0x00080000; + onChanged(); + return this; + } + /** + *
+     * The country where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_country = 210; + * @return This builder for chaining. + */ + public Builder clearVerticalAdsListingCountry() { + verticalAdsListingCountry_ = getDefaultInstance().getVerticalAdsListingCountry(); + bitField3_ = (bitField3_ & ~0x00080000); + onChanged(); + return this; + } + /** + *
+     * The country where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_country = 210; + * @param value The bytes for verticalAdsListingCountry to set. + * @return This builder for chaining. + */ + public Builder setVerticalAdsListingCountryBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + verticalAdsListingCountry_ = value; + bitField3_ |= 0x00080000; + onChanged(); + return this; + } + + private java.lang.Object verticalAdsListingRegion_ = ""; + /** + *
+     * The region where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_region = 211; + * @return Whether the verticalAdsListingRegion field is set. + */ + public boolean hasVerticalAdsListingRegion() { + return ((bitField3_ & 0x00100000) != 0); + } + /** + *
+     * The region where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_region = 211; + * @return The verticalAdsListingRegion. + */ + public java.lang.String getVerticalAdsListingRegion() { + java.lang.Object ref = verticalAdsListingRegion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + verticalAdsListingRegion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The region where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_region = 211; + * @return The bytes for verticalAdsListingRegion. + */ + public com.google.protobuf.ByteString + getVerticalAdsListingRegionBytes() { + java.lang.Object ref = verticalAdsListingRegion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + verticalAdsListingRegion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The region where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_region = 211; + * @param value The verticalAdsListingRegion to set. + * @return This builder for chaining. + */ + public Builder setVerticalAdsListingRegion( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + verticalAdsListingRegion_ = value; + bitField3_ |= 0x00100000; + onChanged(); + return this; + } + /** + *
+     * The region where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_region = 211; + * @return This builder for chaining. + */ + public Builder clearVerticalAdsListingRegion() { + verticalAdsListingRegion_ = getDefaultInstance().getVerticalAdsListingRegion(); + bitField3_ = (bitField3_ & ~0x00100000); + onChanged(); + return this; + } + /** + *
+     * The region where the vertical ads listing is located.
+     * 
+ * + * optional string vertical_ads_listing_region = 211; + * @param value The bytes for verticalAdsListingRegion to set. + * @return This builder for chaining. + */ + public Builder setVerticalAdsListingRegionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + verticalAdsListingRegion_ = value; + bitField3_ |= 0x00100000; + onChanged(); + return this; + } + + private long verticalAdsListingUserRating_ ; + /** + *
+     * Integer value specifying the user rating of the vertical ads listing
+     * as a number from 1 to 5, where 5 is the best. The value will always be
+     * within this range.
+     * 
+ * + * optional int64 vertical_ads_listing_user_rating = 220; + * @return Whether the verticalAdsListingUserRating field is set. + */ + @java.lang.Override + public boolean hasVerticalAdsListingUserRating() { + return ((bitField3_ & 0x00200000) != 0); + } + /** + *
+     * Integer value specifying the user rating of the vertical ads listing
+     * as a number from 1 to 5, where 5 is the best. The value will always be
+     * within this range.
+     * 
+ * + * optional int64 vertical_ads_listing_user_rating = 220; + * @return The verticalAdsListingUserRating. */ - public Builder setVerticalAdsListingCountry( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - verticalAdsListingCountry_ = value; - bitField3_ |= 0x00040000; - onChanged(); - return this; + @java.lang.Override + public long getVerticalAdsListingUserRating() { + return verticalAdsListingUserRating_; } /** *
-     * The country where the vertical ads listing is located.
+     * Integer value specifying the user rating of the vertical ads listing
+     * as a number from 1 to 5, where 5 is the best. The value will always be
+     * within this range.
      * 
* - * optional string vertical_ads_listing_country = 210; + * optional int64 vertical_ads_listing_user_rating = 220; + * @param value The verticalAdsListingUserRating to set. * @return This builder for chaining. */ - public Builder clearVerticalAdsListingCountry() { - verticalAdsListingCountry_ = getDefaultInstance().getVerticalAdsListingCountry(); - bitField3_ = (bitField3_ & ~0x00040000); + public Builder setVerticalAdsListingUserRating(long value) { + + verticalAdsListingUserRating_ = value; + bitField3_ |= 0x00200000; onChanged(); return this; } /** *
-     * The country where the vertical ads listing is located.
+     * Integer value specifying the user rating of the vertical ads listing
+     * as a number from 1 to 5, where 5 is the best. The value will always be
+     * within this range.
      * 
* - * optional string vertical_ads_listing_country = 210; - * @param value The bytes for verticalAdsListingCountry to set. + * optional int64 vertical_ads_listing_user_rating = 220; * @return This builder for chaining. */ - public Builder setVerticalAdsListingCountryBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - verticalAdsListingCountry_ = value; - bitField3_ |= 0x00040000; + public Builder clearVerticalAdsListingUserRating() { + bitField3_ = (bitField3_ & ~0x00200000); + verticalAdsListingUserRating_ = 0L; onChanged(); return this; } - private java.lang.Object verticalAdsListingRegion_ = ""; + private java.lang.Object verticalAdsListingVenue_ = ""; /** *
-     * The region where the vertical ads listing is located.
+     * The name of the venue for the vertical ads listing, for example, the
+     * venue for a concert event.
      * 
* - * optional string vertical_ads_listing_region = 211; - * @return Whether the verticalAdsListingRegion field is set. + * optional string vertical_ads_listing_venue = 221; + * @return Whether the verticalAdsListingVenue field is set. */ - public boolean hasVerticalAdsListingRegion() { - return ((bitField3_ & 0x00080000) != 0); + public boolean hasVerticalAdsListingVenue() { + return ((bitField3_ & 0x00400000) != 0); } /** *
-     * The region where the vertical ads listing is located.
+     * The name of the venue for the vertical ads listing, for example, the
+     * venue for a concert event.
      * 
* - * optional string vertical_ads_listing_region = 211; - * @return The verticalAdsListingRegion. + * optional string vertical_ads_listing_venue = 221; + * @return The verticalAdsListingVenue. */ - public java.lang.String getVerticalAdsListingRegion() { - java.lang.Object ref = verticalAdsListingRegion_; + public java.lang.String getVerticalAdsListingVenue() { + java.lang.Object ref = verticalAdsListingVenue_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - verticalAdsListingRegion_ = s; + verticalAdsListingVenue_ = s; return s; } else { return (java.lang.String) ref; @@ -22432,20 +22875,21 @@ public java.lang.String getVerticalAdsListingRegion() { } /** *
-     * The region where the vertical ads listing is located.
+     * The name of the venue for the vertical ads listing, for example, the
+     * venue for a concert event.
      * 
* - * optional string vertical_ads_listing_region = 211; - * @return The bytes for verticalAdsListingRegion. + * optional string vertical_ads_listing_venue = 221; + * @return The bytes for verticalAdsListingVenue. */ public com.google.protobuf.ByteString - getVerticalAdsListingRegionBytes() { - java.lang.Object ref = verticalAdsListingRegion_; + getVerticalAdsListingVenueBytes() { + java.lang.Object ref = verticalAdsListingVenue_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - verticalAdsListingRegion_ = b; + verticalAdsListingVenue_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -22453,50 +22897,53 @@ public java.lang.String getVerticalAdsListingRegion() { } /** *
-     * The region where the vertical ads listing is located.
+     * The name of the venue for the vertical ads listing, for example, the
+     * venue for a concert event.
      * 
* - * optional string vertical_ads_listing_region = 211; - * @param value The verticalAdsListingRegion to set. + * optional string vertical_ads_listing_venue = 221; + * @param value The verticalAdsListingVenue to set. * @return This builder for chaining. */ - public Builder setVerticalAdsListingRegion( + public Builder setVerticalAdsListingVenue( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - verticalAdsListingRegion_ = value; - bitField3_ |= 0x00080000; + verticalAdsListingVenue_ = value; + bitField3_ |= 0x00400000; onChanged(); return this; } /** *
-     * The region where the vertical ads listing is located.
+     * The name of the venue for the vertical ads listing, for example, the
+     * venue for a concert event.
      * 
* - * optional string vertical_ads_listing_region = 211; + * optional string vertical_ads_listing_venue = 221; * @return This builder for chaining. */ - public Builder clearVerticalAdsListingRegion() { - verticalAdsListingRegion_ = getDefaultInstance().getVerticalAdsListingRegion(); - bitField3_ = (bitField3_ & ~0x00080000); + public Builder clearVerticalAdsListingVenue() { + verticalAdsListingVenue_ = getDefaultInstance().getVerticalAdsListingVenue(); + bitField3_ = (bitField3_ & ~0x00400000); onChanged(); return this; } /** *
-     * The region where the vertical ads listing is located.
+     * The name of the venue for the vertical ads listing, for example, the
+     * venue for a concert event.
      * 
* - * optional string vertical_ads_listing_region = 211; - * @param value The bytes for verticalAdsListingRegion to set. + * optional string vertical_ads_listing_venue = 221; + * @param value The bytes for verticalAdsListingVenue to set. * @return This builder for chaining. */ - public Builder setVerticalAdsListingRegionBytes( + public Builder setVerticalAdsListingVenueBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - verticalAdsListingRegion_ = value; - bitField3_ |= 0x00080000; + verticalAdsListingVenue_ = value; + bitField3_ |= 0x00400000; onChanged(); return this; } @@ -22513,7 +22960,7 @@ public Builder setVerticalAdsListingRegionBytes( */ @java.lang.Override public boolean hasVerticalAdsPartnerAccount() { - return ((bitField3_ & 0x00100000) != 0); + return ((bitField3_ & 0x00800000) != 0); } /** *
@@ -22541,7 +22988,7 @@ public long getVerticalAdsPartnerAccount() {
     public Builder setVerticalAdsPartnerAccount(long value) {
 
       verticalAdsPartnerAccount_ = value;
-      bitField3_ |= 0x00100000;
+      bitField3_ |= 0x00800000;
       onChanged();
       return this;
     }
@@ -22555,7 +23002,7 @@ public Builder setVerticalAdsPartnerAccount(long value) {
      * @return This builder for chaining.
      */
     public Builder clearVerticalAdsPartnerAccount() {
-      bitField3_ = (bitField3_ & ~0x00100000);
+      bitField3_ = (bitField3_ & ~0x00800000);
       verticalAdsPartnerAccount_ = 0L;
       onChanged();
       return this;
@@ -22573,7 +23020,7 @@ public Builder clearVerticalAdsPartnerAccount() {
      * @return Whether the verticalAdsVertical field is set.
      */
     @java.lang.Override public boolean hasVerticalAdsVertical() {
-      return ((bitField3_ & 0x00200000) != 0);
+      return ((bitField3_ & 0x01000000) != 0);
     }
     /**
      * 
@@ -22601,7 +23048,7 @@ public Builder clearVerticalAdsPartnerAccount() {
      */
     public Builder setVerticalAdsVerticalValue(int value) {
       verticalAdsVertical_ = value;
-      bitField3_ |= 0x00200000;
+      bitField3_ |= 0x01000000;
       onChanged();
       return this;
     }
@@ -22633,7 +23080,7 @@ public com.google.ads.googleads.v24.enums.VerticalAdsItemVerticalTypeEnum.Vertic
      */
     public Builder setVerticalAdsVertical(com.google.ads.googleads.v24.enums.VerticalAdsItemVerticalTypeEnum.VerticalAdsItemVerticalType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField3_ |= 0x00200000;
+      bitField3_ |= 0x01000000;
       verticalAdsVertical_ = value.getNumber();
       onChanged();
       return this;
@@ -22649,7 +23096,7 @@ public Builder setVerticalAdsVertical(com.google.ads.googleads.v24.enums.Vertica
      * @return This builder for chaining.
      */
     public Builder clearVerticalAdsVertical() {
-      bitField3_ = (bitField3_ & ~0x00200000);
+      bitField3_ = (bitField3_ & ~0x01000000);
       verticalAdsVertical_ = 0;
       onChanged();
       return this;
@@ -22678,7 +23125,7 @@ public Builder clearVerticalAdsVertical() {
      */
     public Builder setRecommendationTypeValue(int value) {
       recommendationType_ = value;
-      bitField3_ |= 0x00400000;
+      bitField3_ |= 0x02000000;
       onChanged();
       return this;
     }
@@ -22706,7 +23153,7 @@ public com.google.ads.googleads.v24.enums.RecommendationTypeEnum.RecommendationT
      */
     public Builder setRecommendationType(com.google.ads.googleads.v24.enums.RecommendationTypeEnum.RecommendationType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField3_ |= 0x00400000;
+      bitField3_ |= 0x02000000;
       recommendationType_ = value.getNumber();
       onChanged();
       return this;
@@ -22720,7 +23167,7 @@ public Builder setRecommendationType(com.google.ads.googleads.v24.enums.Recommen
      * @return This builder for chaining.
      */
     public Builder clearRecommendationType() {
-      bitField3_ = (bitField3_ & ~0x00400000);
+      bitField3_ = (bitField3_ & ~0x02000000);
       recommendationType_ = 0;
       onChanged();
       return this;
@@ -22749,7 +23196,7 @@ public Builder clearRecommendationType() {
      */
     public Builder setSearchEngineResultsPageTypeValue(int value) {
       searchEngineResultsPageType_ = value;
-      bitField3_ |= 0x00800000;
+      bitField3_ |= 0x04000000;
       onChanged();
       return this;
     }
@@ -22777,7 +23224,7 @@ public com.google.ads.googleads.v24.enums.SearchEngineResultsPageTypeEnum.Search
      */
     public Builder setSearchEngineResultsPageType(com.google.ads.googleads.v24.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField3_ |= 0x00800000;
+      bitField3_ |= 0x04000000;
       searchEngineResultsPageType_ = value.getNumber();
       onChanged();
       return this;
@@ -22791,7 +23238,7 @@ public Builder setSearchEngineResultsPageType(com.google.ads.googleads.v24.enums
      * @return This builder for chaining.
      */
     public Builder clearSearchEngineResultsPageType() {
-      bitField3_ = (bitField3_ & ~0x00800000);
+      bitField3_ = (bitField3_ & ~0x04000000);
       searchEngineResultsPageType_ = 0;
       onChanged();
       return this;
@@ -22808,7 +23255,7 @@ public Builder clearSearchEngineResultsPageType() {
      * @return Whether the searchSubcategory field is set.
      */
     public boolean hasSearchSubcategory() {
-      return ((bitField3_ & 0x01000000) != 0);
+      return ((bitField3_ & 0x08000000) != 0);
     }
     /**
      * 
@@ -22867,7 +23314,7 @@ public Builder setSearchSubcategory(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       searchSubcategory_ = value;
-      bitField3_ |= 0x01000000;
+      bitField3_ |= 0x08000000;
       onChanged();
       return this;
     }
@@ -22882,7 +23329,7 @@ public Builder setSearchSubcategory(
      */
     public Builder clearSearchSubcategory() {
       searchSubcategory_ = getDefaultInstance().getSearchSubcategory();
-      bitField3_ = (bitField3_ & ~0x01000000);
+      bitField3_ = (bitField3_ & ~0x08000000);
       onChanged();
       return this;
     }
@@ -22901,7 +23348,7 @@ public Builder setSearchSubcategoryBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       searchSubcategory_ = value;
-      bitField3_ |= 0x01000000;
+      bitField3_ |= 0x08000000;
       onChanged();
       return this;
     }
@@ -22916,7 +23363,7 @@ public Builder setSearchSubcategoryBytes(
      * @return Whether the searchTerm field is set.
      */
     public boolean hasSearchTerm() {
-      return ((bitField3_ & 0x02000000) != 0);
+      return ((bitField3_ & 0x10000000) != 0);
     }
     /**
      * 
@@ -22972,7 +23419,7 @@ public Builder setSearchTerm(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       searchTerm_ = value;
-      bitField3_ |= 0x02000000;
+      bitField3_ |= 0x10000000;
       onChanged();
       return this;
     }
@@ -22986,7 +23433,7 @@ public Builder setSearchTerm(
      */
     public Builder clearSearchTerm() {
       searchTerm_ = getDefaultInstance().getSearchTerm();
-      bitField3_ = (bitField3_ & ~0x02000000);
+      bitField3_ = (bitField3_ & ~0x10000000);
       onChanged();
       return this;
     }
@@ -23004,7 +23451,7 @@ public Builder setSearchTermBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       searchTerm_ = value;
-      bitField3_ |= 0x02000000;
+      bitField3_ |= 0x10000000;
       onChanged();
       return this;
     }
@@ -23038,7 +23485,7 @@ public Builder setSearchTermBytes(
      */
     public Builder setSearchTermMatchTypeValue(int value) {
       searchTermMatchType_ = value;
-      bitField3_ |= 0x04000000;
+      bitField3_ |= 0x20000000;
       onChanged();
       return this;
     }
@@ -23072,7 +23519,7 @@ public com.google.ads.googleads.v24.enums.SearchTermMatchTypeEnum.SearchTermMatc
      */
     public Builder setSearchTermMatchType(com.google.ads.googleads.v24.enums.SearchTermMatchTypeEnum.SearchTermMatchType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField3_ |= 0x04000000;
+      bitField3_ |= 0x20000000;
       searchTermMatchType_ = value.getNumber();
       onChanged();
       return this;
@@ -23089,7 +23536,7 @@ public Builder setSearchTermMatchType(com.google.ads.googleads.v24.enums.SearchT
      * @return This builder for chaining.
      */
     public Builder clearSearchTermMatchType() {
-      bitField3_ = (bitField3_ & ~0x04000000);
+      bitField3_ = (bitField3_ & ~0x20000000);
       searchTermMatchType_ = 0;
       onChanged();
       return this;
@@ -23124,7 +23571,7 @@ public Builder clearSearchTermMatchType() {
      */
     public Builder setMatchTypeValue(int value) {
       matchType_ = value;
-      bitField3_ |= 0x08000000;
+      bitField3_ |= 0x40000000;
       onChanged();
       return this;
     }
@@ -23158,7 +23605,7 @@ public com.google.ads.googleads.v24.enums.MatchTypeEnum.MatchType getMatchType()
      */
     public Builder setMatchType(com.google.ads.googleads.v24.enums.MatchTypeEnum.MatchType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField3_ |= 0x08000000;
+      bitField3_ |= 0x40000000;
       matchType_ = value.getNumber();
       onChanged();
       return this;
@@ -23175,7 +23622,7 @@ public Builder setMatchType(com.google.ads.googleads.v24.enums.MatchTypeEnum.Mat
      * @return This builder for chaining.
      */
     public Builder clearMatchType() {
-      bitField3_ = (bitField3_ & ~0x08000000);
+      bitField3_ = (bitField3_ & ~0x40000000);
       matchType_ = 0;
       onChanged();
       return this;
@@ -23204,7 +23651,7 @@ public Builder clearMatchType() {
      */
     public Builder setSlotValue(int value) {
       slot_ = value;
-      bitField3_ |= 0x10000000;
+      bitField3_ |= 0x80000000;
       onChanged();
       return this;
     }
@@ -23232,7 +23679,7 @@ public com.google.ads.googleads.v24.enums.SlotEnum.Slot getSlot() {
      */
     public Builder setSlot(com.google.ads.googleads.v24.enums.SlotEnum.Slot value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField3_ |= 0x10000000;
+      bitField3_ |= 0x80000000;
       slot_ = value.getNumber();
       onChanged();
       return this;
@@ -23246,7 +23693,7 @@ public Builder setSlot(com.google.ads.googleads.v24.enums.SlotEnum.Slot value) {
      * @return This builder for chaining.
      */
     public Builder clearSlot() {
-      bitField3_ = (bitField3_ & ~0x10000000);
+      bitField3_ = (bitField3_ & ~0x80000000);
       slot_ = 0;
       onChanged();
       return this;
@@ -23287,7 +23734,7 @@ public Builder clearSlot() {
      */
     public Builder setConversionValueRulePrimaryDimensionValue(int value) {
       conversionValueRulePrimaryDimension_ = value;
-      bitField3_ |= 0x20000000;
+      bitField4_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -23327,7 +23774,7 @@ public com.google.ads.googleads.v24.enums.ConversionValueRulePrimaryDimensionEnu
      */
     public Builder setConversionValueRulePrimaryDimension(com.google.ads.googleads.v24.enums.ConversionValueRulePrimaryDimensionEnum.ConversionValueRulePrimaryDimension value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField3_ |= 0x20000000;
+      bitField4_ |= 0x00000001;
       conversionValueRulePrimaryDimension_ = value.getNumber();
       onChanged();
       return this;
@@ -23347,7 +23794,7 @@ public Builder setConversionValueRulePrimaryDimension(com.google.ads.googleads.v
      * @return This builder for chaining.
      */
     public Builder clearConversionValueRulePrimaryDimension() {
-      bitField3_ = (bitField3_ & ~0x20000000);
+      bitField4_ = (bitField4_ & ~0x00000001);
       conversionValueRulePrimaryDimension_ = 0;
       onChanged();
       return this;
@@ -23363,7 +23810,7 @@ public Builder clearConversionValueRulePrimaryDimension() {
      * @return Whether the webpage field is set.
      */
     public boolean hasWebpage() {
-      return ((bitField3_ & 0x40000000) != 0);
+      return ((bitField4_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -23419,7 +23866,7 @@ public Builder setWebpage(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       webpage_ = value;
-      bitField3_ |= 0x40000000;
+      bitField4_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -23433,7 +23880,7 @@ public Builder setWebpage(
      */
     public Builder clearWebpage() {
       webpage_ = getDefaultInstance().getWebpage();
-      bitField3_ = (bitField3_ & ~0x40000000);
+      bitField4_ = (bitField4_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -23451,7 +23898,7 @@ public Builder setWebpageBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       webpage_ = value;
-      bitField3_ |= 0x40000000;
+      bitField4_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -23467,7 +23914,7 @@ public Builder setWebpageBytes(
      * @return Whether the week field is set.
      */
     public boolean hasWeek() {
-      return ((bitField3_ & 0x80000000) != 0);
+      return ((bitField4_ & 0x00000004) != 0);
     }
     /**
      * 
@@ -23526,7 +23973,7 @@ public Builder setWeek(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       week_ = value;
-      bitField3_ |= 0x80000000;
+      bitField4_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -23541,7 +23988,7 @@ public Builder setWeek(
      */
     public Builder clearWeek() {
       week_ = getDefaultInstance().getWeek();
-      bitField3_ = (bitField3_ & ~0x80000000);
+      bitField4_ = (bitField4_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -23560,7 +24007,7 @@ public Builder setWeekBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       week_ = value;
-      bitField3_ |= 0x80000000;
+      bitField4_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -23576,7 +24023,7 @@ public Builder setWeekBytes(
      */
     @java.lang.Override
     public boolean hasYear() {
-      return ((bitField4_ & 0x00000001) != 0);
+      return ((bitField4_ & 0x00000008) != 0);
     }
     /**
      * 
@@ -23602,7 +24049,7 @@ public int getYear() {
     public Builder setYear(int value) {
 
       year_ = value;
-      bitField4_ |= 0x00000001;
+      bitField4_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -23615,7 +24062,7 @@ public Builder setYear(int value) {
      * @return This builder for chaining.
      */
     public Builder clearYear() {
-      bitField4_ = (bitField4_ & ~0x00000001);
+      bitField4_ = (bitField4_ & ~0x00000008);
       year_ = 0;
       onChanged();
       return this;
@@ -23634,7 +24081,7 @@ public Builder clearYear() {
      */
     @java.lang.Override
     public boolean hasSkAdNetworkFineConversionValue() {
-      return ((bitField4_ & 0x00000002) != 0);
+      return ((bitField4_ & 0x00000010) != 0);
     }
     /**
      * 
@@ -23664,7 +24111,7 @@ public long getSkAdNetworkFineConversionValue() {
     public Builder setSkAdNetworkFineConversionValue(long value) {
 
       skAdNetworkFineConversionValue_ = value;
-      bitField4_ |= 0x00000002;
+      bitField4_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -23679,7 +24126,7 @@ public Builder setSkAdNetworkFineConversionValue(long value) {
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkFineConversionValue() {
-      bitField4_ = (bitField4_ & ~0x00000002);
+      bitField4_ = (bitField4_ & ~0x00000010);
       skAdNetworkFineConversionValue_ = 0L;
       onChanged();
       return this;
@@ -23703,7 +24150,7 @@ public Builder clearSkAdNetworkFineConversionValue() {
      */
     @java.lang.Override
     public boolean hasSkAdNetworkRedistributedFineConversionValue() {
-      return ((bitField4_ & 0x00000004) != 0);
+      return ((bitField4_ & 0x00000020) != 0);
     }
     /**
      * 
@@ -23743,7 +24190,7 @@ public long getSkAdNetworkRedistributedFineConversionValue() {
     public Builder setSkAdNetworkRedistributedFineConversionValue(long value) {
 
       skAdNetworkRedistributedFineConversionValue_ = value;
-      bitField4_ |= 0x00000004;
+      bitField4_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -23763,7 +24210,7 @@ public Builder setSkAdNetworkRedistributedFineConversionValue(long value) {
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkRedistributedFineConversionValue() {
-      bitField4_ = (bitField4_ & ~0x00000004);
+      bitField4_ = (bitField4_ & ~0x00000020);
       skAdNetworkRedistributedFineConversionValue_ = 0L;
       onChanged();
       return this;
@@ -23792,7 +24239,7 @@ public Builder clearSkAdNetworkRedistributedFineConversionValue() {
      */
     public Builder setSkAdNetworkUserTypeValue(int value) {
       skAdNetworkUserType_ = value;
-      bitField4_ |= 0x00000008;
+      bitField4_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -23820,7 +24267,7 @@ public com.google.ads.googleads.v24.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUse
      */
     public Builder setSkAdNetworkUserType(com.google.ads.googleads.v24.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00000008;
+      bitField4_ |= 0x00000040;
       skAdNetworkUserType_ = value.getNumber();
       onChanged();
       return this;
@@ -23834,7 +24281,7 @@ public Builder setSkAdNetworkUserType(com.google.ads.googleads.v24.enums.SkAdNet
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkUserType() {
-      bitField4_ = (bitField4_ & ~0x00000008);
+      bitField4_ = (bitField4_ & ~0x00000040);
       skAdNetworkUserType_ = 0;
       onChanged();
       return this;
@@ -23863,7 +24310,7 @@ public Builder clearSkAdNetworkUserType() {
      */
     public Builder setSkAdNetworkAdEventTypeValue(int value) {
       skAdNetworkAdEventType_ = value;
-      bitField4_ |= 0x00000010;
+      bitField4_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -23891,7 +24338,7 @@ public com.google.ads.googleads.v24.enums.SkAdNetworkAdEventTypeEnum.SkAdNetwork
      */
     public Builder setSkAdNetworkAdEventType(com.google.ads.googleads.v24.enums.SkAdNetworkAdEventTypeEnum.SkAdNetworkAdEventType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00000010;
+      bitField4_ |= 0x00000080;
       skAdNetworkAdEventType_ = value.getNumber();
       onChanged();
       return this;
@@ -23905,7 +24352,7 @@ public Builder setSkAdNetworkAdEventType(com.google.ads.googleads.v24.enums.SkAd
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkAdEventType() {
-      bitField4_ = (bitField4_ & ~0x00000010);
+      bitField4_ = (bitField4_ & ~0x00000080);
       skAdNetworkAdEventType_ = 0;
       onChanged();
       return this;
@@ -23925,7 +24372,7 @@ public Builder clearSkAdNetworkAdEventType() {
      * @return Whether the skAdNetworkSourceApp field is set.
      */
     public boolean hasSkAdNetworkSourceApp() {
-      return ((bitField4_ & 0x00000020) != 0);
+      return ((bitField4_ & 0x00000100) != 0);
     }
     /**
      * 
@@ -23962,7 +24409,7 @@ public Builder setSkAdNetworkSourceApp(com.google.ads.googleads.v24.common.SkAdN
       } else {
         skAdNetworkSourceAppBuilder_.setMessage(value);
       }
-      bitField4_ |= 0x00000020;
+      bitField4_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -23982,7 +24429,7 @@ public Builder setSkAdNetworkSourceApp(
       } else {
         skAdNetworkSourceAppBuilder_.setMessage(builderForValue.build());
       }
-      bitField4_ |= 0x00000020;
+      bitField4_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -23997,7 +24444,7 @@ public Builder setSkAdNetworkSourceApp(
      */
     public Builder mergeSkAdNetworkSourceApp(com.google.ads.googleads.v24.common.SkAdNetworkSourceApp value) {
       if (skAdNetworkSourceAppBuilder_ == null) {
-        if (((bitField4_ & 0x00000020) != 0) &&
+        if (((bitField4_ & 0x00000100) != 0) &&
           skAdNetworkSourceApp_ != null &&
           skAdNetworkSourceApp_ != com.google.ads.googleads.v24.common.SkAdNetworkSourceApp.getDefaultInstance()) {
           getSkAdNetworkSourceAppBuilder().mergeFrom(value);
@@ -24008,7 +24455,7 @@ public Builder mergeSkAdNetworkSourceApp(com.google.ads.googleads.v24.common.SkA
         skAdNetworkSourceAppBuilder_.mergeFrom(value);
       }
       if (skAdNetworkSourceApp_ != null) {
-        bitField4_ |= 0x00000020;
+        bitField4_ |= 0x00000100;
         onChanged();
       }
       return this;
@@ -24023,7 +24470,7 @@ public Builder mergeSkAdNetworkSourceApp(com.google.ads.googleads.v24.common.SkA
      * optional .google.ads.googleads.v24.common.SkAdNetworkSourceApp sk_ad_network_source_app = 143;
      */
     public Builder clearSkAdNetworkSourceApp() {
-      bitField4_ = (bitField4_ & ~0x00000020);
+      bitField4_ = (bitField4_ & ~0x00000100);
       skAdNetworkSourceApp_ = null;
       if (skAdNetworkSourceAppBuilder_ != null) {
         skAdNetworkSourceAppBuilder_.dispose();
@@ -24042,7 +24489,7 @@ public Builder clearSkAdNetworkSourceApp() {
      * optional .google.ads.googleads.v24.common.SkAdNetworkSourceApp sk_ad_network_source_app = 143;
      */
     public com.google.ads.googleads.v24.common.SkAdNetworkSourceApp.Builder getSkAdNetworkSourceAppBuilder() {
-      bitField4_ |= 0x00000020;
+      bitField4_ |= 0x00000100;
       onChanged();
       return internalGetSkAdNetworkSourceAppFieldBuilder().getBuilder();
     }
@@ -24109,7 +24556,7 @@ public com.google.ads.googleads.v24.common.SkAdNetworkSourceAppOrBuilder getSkAd
      */
     public Builder setSkAdNetworkAttributionCreditValue(int value) {
       skAdNetworkAttributionCredit_ = value;
-      bitField4_ |= 0x00000040;
+      bitField4_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -24137,7 +24584,7 @@ public com.google.ads.googleads.v24.enums.SkAdNetworkAttributionCreditEnum.SkAdN
      */
     public Builder setSkAdNetworkAttributionCredit(com.google.ads.googleads.v24.enums.SkAdNetworkAttributionCreditEnum.SkAdNetworkAttributionCredit value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00000040;
+      bitField4_ |= 0x00000200;
       skAdNetworkAttributionCredit_ = value.getNumber();
       onChanged();
       return this;
@@ -24151,7 +24598,7 @@ public Builder setSkAdNetworkAttributionCredit(com.google.ads.googleads.v24.enum
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkAttributionCredit() {
-      bitField4_ = (bitField4_ & ~0x00000040);
+      bitField4_ = (bitField4_ & ~0x00000200);
       skAdNetworkAttributionCredit_ = 0;
       onChanged();
       return this;
@@ -24180,7 +24627,7 @@ public Builder clearSkAdNetworkAttributionCredit() {
      */
     public Builder setSkAdNetworkCoarseConversionValueValue(int value) {
       skAdNetworkCoarseConversionValue_ = value;
-      bitField4_ |= 0x00000080;
+      bitField4_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -24208,7 +24655,7 @@ public com.google.ads.googleads.v24.enums.SkAdNetworkCoarseConversionValueEnum.S
      */
     public Builder setSkAdNetworkCoarseConversionValue(com.google.ads.googleads.v24.enums.SkAdNetworkCoarseConversionValueEnum.SkAdNetworkCoarseConversionValue value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00000080;
+      bitField4_ |= 0x00000400;
       skAdNetworkCoarseConversionValue_ = value.getNumber();
       onChanged();
       return this;
@@ -24222,7 +24669,7 @@ public Builder setSkAdNetworkCoarseConversionValue(com.google.ads.googleads.v24.
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkCoarseConversionValue() {
-      bitField4_ = (bitField4_ & ~0x00000080);
+      bitField4_ = (bitField4_ & ~0x00000400);
       skAdNetworkCoarseConversionValue_ = 0;
       onChanged();
       return this;
@@ -24240,7 +24687,7 @@ public Builder clearSkAdNetworkCoarseConversionValue() {
      * @return Whether the skAdNetworkSourceDomain field is set.
      */
     public boolean hasSkAdNetworkSourceDomain() {
-      return ((bitField4_ & 0x00000100) != 0);
+      return ((bitField4_ & 0x00000800) != 0);
     }
     /**
      * 
@@ -24302,7 +24749,7 @@ public Builder setSkAdNetworkSourceDomain(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       skAdNetworkSourceDomain_ = value;
-      bitField4_ |= 0x00000100;
+      bitField4_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -24318,7 +24765,7 @@ public Builder setSkAdNetworkSourceDomain(
      */
     public Builder clearSkAdNetworkSourceDomain() {
       skAdNetworkSourceDomain_ = getDefaultInstance().getSkAdNetworkSourceDomain();
-      bitField4_ = (bitField4_ & ~0x00000100);
+      bitField4_ = (bitField4_ & ~0x00000800);
       onChanged();
       return this;
     }
@@ -24338,7 +24785,7 @@ public Builder setSkAdNetworkSourceDomainBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       skAdNetworkSourceDomain_ = value;
-      bitField4_ |= 0x00000100;
+      bitField4_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -24372,7 +24819,7 @@ public Builder setSkAdNetworkSourceDomainBytes(
      */
     public Builder setSkAdNetworkSourceTypeValue(int value) {
       skAdNetworkSourceType_ = value;
-      bitField4_ |= 0x00000200;
+      bitField4_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -24406,7 +24853,7 @@ public com.google.ads.googleads.v24.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkS
      */
     public Builder setSkAdNetworkSourceType(com.google.ads.googleads.v24.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00000200;
+      bitField4_ |= 0x00001000;
       skAdNetworkSourceType_ = value.getNumber();
       onChanged();
       return this;
@@ -24423,7 +24870,7 @@ public Builder setSkAdNetworkSourceType(com.google.ads.googleads.v24.enums.SkAdN
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkSourceType() {
-      bitField4_ = (bitField4_ & ~0x00000200);
+      bitField4_ = (bitField4_ & ~0x00001000);
       skAdNetworkSourceType_ = 0;
       onChanged();
       return this;
@@ -24440,7 +24887,7 @@ public Builder clearSkAdNetworkSourceType() {
      */
     @java.lang.Override
     public boolean hasSkAdNetworkPostbackSequenceIndex() {
-      return ((bitField4_ & 0x00000400) != 0);
+      return ((bitField4_ & 0x00002000) != 0);
     }
     /**
      * 
@@ -24466,7 +24913,7 @@ public long getSkAdNetworkPostbackSequenceIndex() {
     public Builder setSkAdNetworkPostbackSequenceIndex(long value) {
 
       skAdNetworkPostbackSequenceIndex_ = value;
-      bitField4_ |= 0x00000400;
+      bitField4_ |= 0x00002000;
       onChanged();
       return this;
     }
@@ -24479,7 +24926,7 @@ public Builder setSkAdNetworkPostbackSequenceIndex(long value) {
      * @return This builder for chaining.
      */
     public Builder clearSkAdNetworkPostbackSequenceIndex() {
-      bitField4_ = (bitField4_ & ~0x00000400);
+      bitField4_ = (bitField4_ & ~0x00002000);
       skAdNetworkPostbackSequenceIndex_ = 0L;
       onChanged();
       return this;
@@ -24495,7 +24942,7 @@ public Builder clearSkAdNetworkPostbackSequenceIndex() {
      * @return Whether the skAdNetworkVersion field is set.
      */
     public boolean hasSkAdNetworkVersion() {
-      return ((bitField4_ & 0x00000800) != 0);
+      return ((bitField4_ & 0x00004000) != 0);
     }
     /**
      * 
@@ -24551,7 +24998,7 @@ public Builder setSkAdNetworkVersion(
         java.lang.String value) {
       if (value == null) { throw new NullPointerException(); }
       skAdNetworkVersion_ = value;
-      bitField4_ |= 0x00000800;
+      bitField4_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -24565,7 +25012,7 @@ public Builder setSkAdNetworkVersion(
      */
     public Builder clearSkAdNetworkVersion() {
       skAdNetworkVersion_ = getDefaultInstance().getSkAdNetworkVersion();
-      bitField4_ = (bitField4_ & ~0x00000800);
+      bitField4_ = (bitField4_ & ~0x00004000);
       onChanged();
       return this;
     }
@@ -24583,7 +25030,7 @@ public Builder setSkAdNetworkVersionBytes(
       if (value == null) { throw new NullPointerException(); }
       checkByteStringIsUtf8(value);
       skAdNetworkVersion_ = value;
-      bitField4_ |= 0x00000800;
+      bitField4_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -24609,7 +25056,7 @@ public Builder setSkAdNetworkVersionBytes(
      * @return Whether the assetInteractionTarget field is set.
      */
     public boolean hasAssetInteractionTarget() {
-      return ((bitField4_ & 0x00001000) != 0);
+      return ((bitField4_ & 0x00008000) != 0);
     }
     /**
      * 
@@ -24660,7 +25107,7 @@ public Builder setAssetInteractionTarget(com.google.ads.googleads.v24.common.Ass
       } else {
         assetInteractionTargetBuilder_.setMessage(value);
       }
-      bitField4_ |= 0x00001000;
+      bitField4_ |= 0x00008000;
       onChanged();
       return this;
     }
@@ -24687,7 +25134,7 @@ public Builder setAssetInteractionTarget(
       } else {
         assetInteractionTargetBuilder_.setMessage(builderForValue.build());
       }
-      bitField4_ |= 0x00001000;
+      bitField4_ |= 0x00008000;
       onChanged();
       return this;
     }
@@ -24709,7 +25156,7 @@ public Builder setAssetInteractionTarget(
      */
     public Builder mergeAssetInteractionTarget(com.google.ads.googleads.v24.common.AssetInteractionTarget value) {
       if (assetInteractionTargetBuilder_ == null) {
-        if (((bitField4_ & 0x00001000) != 0) &&
+        if (((bitField4_ & 0x00008000) != 0) &&
           assetInteractionTarget_ != null &&
           assetInteractionTarget_ != com.google.ads.googleads.v24.common.AssetInteractionTarget.getDefaultInstance()) {
           getAssetInteractionTargetBuilder().mergeFrom(value);
@@ -24720,7 +25167,7 @@ public Builder mergeAssetInteractionTarget(com.google.ads.googleads.v24.common.A
         assetInteractionTargetBuilder_.mergeFrom(value);
       }
       if (assetInteractionTarget_ != null) {
-        bitField4_ |= 0x00001000;
+        bitField4_ |= 0x00008000;
         onChanged();
       }
       return this;
@@ -24742,7 +25189,7 @@ public Builder mergeAssetInteractionTarget(com.google.ads.googleads.v24.common.A
      * optional .google.ads.googleads.v24.common.AssetInteractionTarget asset_interaction_target = 139;
      */
     public Builder clearAssetInteractionTarget() {
-      bitField4_ = (bitField4_ & ~0x00001000);
+      bitField4_ = (bitField4_ & ~0x00008000);
       assetInteractionTarget_ = null;
       if (assetInteractionTargetBuilder_ != null) {
         assetInteractionTargetBuilder_.dispose();
@@ -24768,7 +25215,7 @@ public Builder clearAssetInteractionTarget() {
      * optional .google.ads.googleads.v24.common.AssetInteractionTarget asset_interaction_target = 139;
      */
     public com.google.ads.googleads.v24.common.AssetInteractionTarget.Builder getAssetInteractionTargetBuilder() {
-      bitField4_ |= 0x00001000;
+      bitField4_ |= 0x00008000;
       onChanged();
       return internalGetAssetInteractionTargetFieldBuilder().getBuilder();
     }
@@ -24853,7 +25300,7 @@ public com.google.ads.googleads.v24.common.AssetInteractionTargetOrBuilder getAs
      */
     public Builder setNewVersusReturningCustomersValue(int value) {
       newVersusReturningCustomers_ = value;
-      bitField4_ |= 0x00002000;
+      bitField4_ |= 0x00010000;
       onChanged();
       return this;
     }
@@ -24885,7 +25332,7 @@ public com.google.ads.googleads.v24.enums.ConvertingUserPriorEngagementTypeAndLt
      */
     public Builder setNewVersusReturningCustomers(com.google.ads.googleads.v24.enums.ConvertingUserPriorEngagementTypeAndLtvBucketEnum.ConvertingUserPriorEngagementTypeAndLtvBucket value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00002000;
+      bitField4_ |= 0x00010000;
       newVersusReturningCustomers_ = value.getNumber();
       onChanged();
       return this;
@@ -24901,7 +25348,7 @@ public Builder setNewVersusReturningCustomers(com.google.ads.googleads.v24.enums
      * @return This builder for chaining.
      */
     public Builder clearNewVersusReturningCustomers() {
-      bitField4_ = (bitField4_ & ~0x00002000);
+      bitField4_ = (bitField4_ & ~0x00010000);
       newVersusReturningCustomers_ = 0;
       onChanged();
       return this;
@@ -24938,7 +25385,7 @@ public Builder clearNewVersusReturningCustomers() {
      */
     public Builder setAdjustedAgeRangeValue(int value) {
       adjustedAgeRange_ = value;
-      bitField4_ |= 0x00004000;
+      bitField4_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -24974,7 +25421,7 @@ public com.google.ads.googleads.v24.enums.AgeRangeTypeEnum.AgeRangeType getAdjus
      */
     public Builder setAdjustedAgeRange(com.google.ads.googleads.v24.enums.AgeRangeTypeEnum.AgeRangeType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00004000;
+      bitField4_ |= 0x00020000;
       adjustedAgeRange_ = value.getNumber();
       onChanged();
       return this;
@@ -24992,7 +25439,7 @@ public Builder setAdjustedAgeRange(com.google.ads.googleads.v24.enums.AgeRangeTy
      * @return This builder for chaining.
      */
     public Builder clearAdjustedAgeRange() {
-      bitField4_ = (bitField4_ & ~0x00004000);
+      bitField4_ = (bitField4_ & ~0x00020000);
       adjustedAgeRange_ = 0;
       onChanged();
       return this;
@@ -25029,7 +25476,7 @@ public Builder clearAdjustedAgeRange() {
      */
     public Builder setAdjustedGenderValue(int value) {
       adjustedGender_ = value;
-      bitField4_ |= 0x00008000;
+      bitField4_ |= 0x00040000;
       onChanged();
       return this;
     }
@@ -25065,7 +25512,7 @@ public com.google.ads.googleads.v24.enums.GenderTypeEnum.GenderType getAdjustedG
      */
     public Builder setAdjustedGender(com.google.ads.googleads.v24.enums.GenderTypeEnum.GenderType value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00008000;
+      bitField4_ |= 0x00040000;
       adjustedGender_ = value.getNumber();
       onChanged();
       return this;
@@ -25083,7 +25530,7 @@ public Builder setAdjustedGender(com.google.ads.googleads.v24.enums.GenderTypeEn
      * @return This builder for chaining.
      */
     public Builder clearAdjustedGender() {
-      bitField4_ = (bitField4_ & ~0x00008000);
+      bitField4_ = (bitField4_ & ~0x00040000);
       adjustedGender_ = 0;
       onChanged();
       return this;
@@ -25118,7 +25565,7 @@ public Builder clearAdjustedGender() {
      */
     public Builder setSearchTermMatchSourceValue(int value) {
       searchTermMatchSource_ = value;
-      bitField4_ |= 0x00010000;
+      bitField4_ |= 0x00080000;
       onChanged();
       return this;
     }
@@ -25152,7 +25599,7 @@ public com.google.ads.googleads.v24.enums.SearchTermMatchSourceEnum.SearchTermMa
      */
     public Builder setSearchTermMatchSource(com.google.ads.googleads.v24.enums.SearchTermMatchSourceEnum.SearchTermMatchSource value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00010000;
+      bitField4_ |= 0x00080000;
       searchTermMatchSource_ = value.getNumber();
       onChanged();
       return this;
@@ -25169,7 +25616,7 @@ public Builder setSearchTermMatchSource(com.google.ads.googleads.v24.enums.Searc
      * @return This builder for chaining.
      */
     public Builder clearSearchTermMatchSource() {
-      bitField4_ = (bitField4_ & ~0x00010000);
+      bitField4_ = (bitField4_ & ~0x00080000);
       searchTermMatchSource_ = 0;
       onChanged();
       return this;
@@ -25200,7 +25647,7 @@ public Builder clearSearchTermMatchSource() {
      */
     public Builder setSearchTermTargetingStatusValue(int value) {
       searchTermTargetingStatus_ = value;
-      bitField4_ |= 0x00020000;
+      bitField4_ |= 0x00100000;
       onChanged();
       return this;
     }
@@ -25230,7 +25677,7 @@ public com.google.ads.googleads.v24.enums.SearchTermTargetingStatusEnum.SearchTe
      */
     public Builder setSearchTermTargetingStatus(com.google.ads.googleads.v24.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatus value) {
       if (value == null) { throw new NullPointerException(); }
-      bitField4_ |= 0x00020000;
+      bitField4_ |= 0x00100000;
       searchTermTargetingStatus_ = value.getNumber();
       onChanged();
       return this;
@@ -25245,7 +25692,7 @@ public Builder setSearchTermTargetingStatus(com.google.ads.googleads.v24.enums.S
      * @return This builder for chaining.
      */
     public Builder clearSearchTermTargetingStatus() {
-      bitField4_ = (bitField4_ & ~0x00020000);
+      bitField4_ = (bitField4_ & ~0x00100000);
       searchTermTargetingStatus_ = 0;
       onChanged();
       return this;
@@ -25264,7 +25711,7 @@ public Builder clearSearchTermTargetingStatus() {
      */
     @java.lang.Override
     public boolean hasAdUsingProductData() {
-      return ((bitField4_ & 0x00040000) != 0);
+      return ((bitField4_ & 0x00200000) != 0);
     }
     /**
      * 
@@ -25294,7 +25741,7 @@ public boolean getAdUsingProductData() {
     public Builder setAdUsingProductData(boolean value) {
 
       adUsingProductData_ = value;
-      bitField4_ |= 0x00040000;
+      bitField4_ |= 0x00200000;
       onChanged();
       return this;
     }
@@ -25309,7 +25756,7 @@ public Builder setAdUsingProductData(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearAdUsingProductData() {
-      bitField4_ = (bitField4_ & ~0x00040000);
+      bitField4_ = (bitField4_ & ~0x00200000);
       adUsingProductData_ = false;
       onChanged();
       return this;
@@ -25328,7 +25775,7 @@ public Builder clearAdUsingProductData() {
      */
     @java.lang.Override
     public boolean hasAdUsingVideo() {
-      return ((bitField4_ & 0x00080000) != 0);
+      return ((bitField4_ & 0x00400000) != 0);
     }
     /**
      * 
@@ -25358,7 +25805,7 @@ public boolean getAdUsingVideo() {
     public Builder setAdUsingVideo(boolean value) {
 
       adUsingVideo_ = value;
-      bitField4_ |= 0x00080000;
+      bitField4_ |= 0x00400000;
       onChanged();
       return this;
     }
@@ -25373,7 +25820,7 @@ public Builder setAdUsingVideo(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearAdUsingVideo() {
-      bitField4_ = (bitField4_ & ~0x00080000);
+      bitField4_ = (bitField4_ & ~0x00400000);
       adUsingVideo_ = false;
       onChanged();
       return this;
diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsOrBuilder.java
index 643f5f5ac..bc3faba66 100644
--- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsOrBuilder.java
+++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsOrBuilder.java
@@ -641,6 +641,25 @@ public interface SegmentsOrBuilder extends
    */
   com.google.ads.googleads.v24.enums.DeviceEnum.Device getDevice();
 
+  /**
+   * 
+   * Mobile device platform to which metrics apply.
+   * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @return The enum numeric value on the wire for mobileDevicePlatform. + */ + int getMobileDevicePlatformValue(); + /** + *
+   * Mobile device platform to which metrics apply.
+   * 
+ * + * .google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform mobile_device_platform = 219; + * @return The mobileDevicePlatform. + */ + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform getMobileDevicePlatform(); + /** *
    * External conversion source.
@@ -3079,6 +3098,61 @@ public interface SegmentsOrBuilder extends
   com.google.protobuf.ByteString
       getVerticalAdsListingRegionBytes();
 
+  /**
+   * 
+   * Integer value specifying the user rating of the vertical ads listing
+   * as a number from 1 to 5, where 5 is the best. The value will always be
+   * within this range.
+   * 
+ * + * optional int64 vertical_ads_listing_user_rating = 220; + * @return Whether the verticalAdsListingUserRating field is set. + */ + boolean hasVerticalAdsListingUserRating(); + /** + *
+   * Integer value specifying the user rating of the vertical ads listing
+   * as a number from 1 to 5, where 5 is the best. The value will always be
+   * within this range.
+   * 
+ * + * optional int64 vertical_ads_listing_user_rating = 220; + * @return The verticalAdsListingUserRating. + */ + long getVerticalAdsListingUserRating(); + + /** + *
+   * The name of the venue for the vertical ads listing, for example, the
+   * venue for a concert event.
+   * 
+ * + * optional string vertical_ads_listing_venue = 221; + * @return Whether the verticalAdsListingVenue field is set. + */ + boolean hasVerticalAdsListingVenue(); + /** + *
+   * The name of the venue for the vertical ads listing, for example, the
+   * venue for a concert event.
+   * 
+ * + * optional string vertical_ads_listing_venue = 221; + * @return The verticalAdsListingVenue. + */ + java.lang.String getVerticalAdsListingVenue(); + /** + *
+   * The name of the venue for the vertical ads listing, for example, the
+   * venue for a concert event.
+   * 
+ * + * optional string vertical_ads_listing_venue = 221; + * @return The bytes for verticalAdsListingVenue. + */ + com.google.protobuf.ByteString + getVerticalAdsListingVenueBytes(); + /** *
    * A specific partner account within a Partner Center (for example, Hotel
diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsProto.java
index 02f57261c..f749c9323 100644
--- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsProto.java
+++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/SegmentsProto.java
@@ -96,329 +96,337 @@ public static void registerAllExtensions(
       "/v24/enums/hotel_rate_type.proto\0328google" +
       "/ads/googleads/v24/enums/landing_page_so" +
       "urce.proto\032/google/ads/googleads/v24/enu" +
-      "ms/match_type.proto\0322google/ads/googlead" +
-      "s/v24/enums/month_of_year.proto\0324google/" +
-      "ads/googleads/v24/enums/product_channel." +
-      "proto\032@google/ads/googleads/v24/enums/pr" +
-      "oduct_channel_exclusivity.proto\0326google/" +
-      "ads/googleads/v24/enums/product_conditio" +
-      "n.proto\0328google/ads/googleads/v24/enums/" +
-      "recommendation_type.proto\032Dgoogle/ads/go" +
-      "ogleads/v24/enums/search_engine_results_" +
-      "page_type.proto\032=google/ads/googleads/v2" +
-      "4/enums/search_term_match_source.proto\032;" +
-      "google/ads/googleads/v24/enums/search_te" +
-      "rm_match_type.proto\032Agoogle/ads/googlead" +
-      "s/v24/enums/search_term_targeting_status" +
-      ".proto\032@google/ads/googleads/v24/enums/s" +
-      "k_ad_network_ad_event_type.proto\032Egoogle" +
-      "/ads/googleads/v24/enums/sk_ad_network_a" +
-      "ttribution_credit.proto\032Jgoogle/ads/goog" +
-      "leads/v24/enums/sk_ad_network_coarse_con" +
-      "version_value.proto\032>google/ads/googlead" +
-      "s/v24/enums/sk_ad_network_source_type.pr" +
-      "oto\032\210\001\001" +
-      "\022,\n\036product_sold_custom_attribute1\030\256\001 \001(" +
-      "\tH?\210\001\001\022,\n\036product_sold_custom_attribute2" +
-      "\030\257\001 \001(\tH@\210\001\001\022,\n\036product_sold_custom_attr" +
-      "ibute3\030\260\001 \001(\tHA\210\001\001\022,\n\036product_sold_custo" +
-      "m_attribute4\030\261\001 \001(\tHB\210\001\001\022\"\n\024product_sold" +
-      "_item_id\030\262\001 \001(\tHC\210\001\001\022 \n\022product_sold_tit" +
-      "le\030\263\001 \001(\tHD\210\001\001\022\"\n\024product_sold_type_l1\030\264" +
-      "\001 \001(\tHE\210\001\001\022\"\n\024product_sold_type_l2\030\265\001 \001(" +
-      "\tHF\210\001\001\022\"\n\024product_sold_type_l3\030\266\001 \001(\tHG\210" +
-      "\001\001\022\"\n\024product_sold_type_l4\030\267\001 \001(\tHH\210\001\001\022\"" +
-      "\n\024product_sold_type_l5\030\270\001 \001(\tHI\210\001\001\022\035\n\020pr" +
-      "oduct_store_id\030j \001(\tHJ\210\001\001\022\032\n\rproduct_tit" +
-      "le\030k \001(\tHK\210\001\001\022\034\n\017product_type_l1\030l \001(\tHL" +
-      "\210\001\001\022\034\n\017product_type_l2\030m \001(\tHM\210\001\001\022\034\n\017pro" +
-      "duct_type_l3\030n \001(\tHN\210\001\001\022\034\n\017product_type_" +
-      "l4\030o \001(\tHO\210\001\001\022\034\n\017product_type_l5\030p \001(\tHP" +
-      "\210\001\001\022\025\n\007quarter\030\200\001 \001(\tHQ\210\001\001\022%\n\027travel_des" +
-      "tination_city\030\301\001 \001(\tHR\210\001\001\022(\n\032travel_dest" +
-      "ination_country\030\302\001 \001(\tHS\210\001\001\022\'\n\031travel_de" +
-      "stination_region\030\303\001 \001(\tHT\210\001\001\022:\n,vertical" +
-      "_ads_event_participant_display_names\030\315\001 " +
-      "\001(\tHU\210\001\001\022&\n\030vertical_ads_hotel_class\030\316\001 " +
-      "\001(\003HV\210\001\001\022\"\n\024vertical_ads_listing\030\317\001 \001(\tH" +
-      "W\210\001\001\022(\n\032vertical_ads_listing_brand\030\320\001 \001(" +
-      "\tHX\210\001\001\022\'\n\031vertical_ads_listing_city\030\321\001 \001" +
-      "(\tHY\210\001\001\022*\n\034vertical_ads_listing_country\030" +
-      "\322\001 \001(\tHZ\210\001\001\022)\n\033vertical_ads_listing_regi" +
-      "on\030\323\001 \001(\tH[\210\001\001\022*\n\034vertical_ads_partner_a" +
-      "ccount\030\324\001 \001(\003H\\\210\001\001\022\200\001\n\025vertical_ads_vert" +
-      "ical\030\325\001 \001(\0162[.google.ads.googleads.v24.e" +
-      "nums.VerticalAdsItemVerticalTypeEnum.Ver" +
-      "ticalAdsItemVerticalTypeH]\210\001\001\022g\n\023recomme" +
-      "ndation_type\030\214\001 \001(\0162I.google.ads.googlea" +
-      "ds.v24.enums.RecommendationTypeEnum.Reco" +
-      "mmendationType\022\204\001\n\037search_engine_results" +
-      "_page_type\030F \001(\0162[.google.ads.googleads." +
-      "v24.enums.SearchEngineResultsPageTypeEnu" +
-      "m.SearchEngineResultsPageType\022 \n\022search_" +
-      "subcategory\030\233\001 \001(\tH^\210\001\001\022\031\n\013search_term\030\234" +
-      "\001 \001(\tH_\210\001\001\022k\n\026search_term_match_type\030\026 \001" +
-      "(\0162K.google.ads.googleads.v24.enums.Sear" +
-      "chTermMatchTypeEnum.SearchTermMatchType\022" +
-      "L\n\nmatch_type\030\307\001 \001(\01627.google.ads.google" +
-      "ads.v24.enums.MatchTypeEnum.MatchType\022;\n" +
-      "\004slot\030\027 \001(\0162-.google.ads.googleads.v24.e" +
-      "nums.SlotEnum.Slot\022\235\001\n\'conversion_value_" +
-      "rule_primary_dimension\030\212\001 \001(\0162k.google.a" +
-      "ds.googleads.v24.enums.ConversionValueRu" +
-      "lePrimaryDimensionEnum.ConversionValueRu" +
-      "lePrimaryDimension\022\025\n\007webpage\030\201\001 \001(\tH`\210\001" +
-      "\001\022\022\n\004week\030\202\001 \001(\tHa\210\001\001\022\022\n\004year\030\203\001 \001(\005Hb\210\001" +
-      "\001\0221\n#sk_ad_network_fine_conversion_value" +
-      "\030\211\001 \001(\003Hc\210\001\001\022?\n1sk_ad_network_redistribu" +
-      "ted_fine_conversion_value\030\276\001 \001(\003Hd\210\001\001\022m\n" +
-      "\027sk_ad_network_user_type\030\215\001 \001(\0162K.google" +
-      ".ads.googleads.v24.enums.SkAdNetworkUser" +
-      "TypeEnum.SkAdNetworkUserType\022w\n\033sk_ad_ne" +
-      "twork_ad_event_type\030\216\001 \001(\0162Q.google.ads." +
-      "googleads.v24.enums.SkAdNetworkAdEventTy" +
-      "peEnum.SkAdNetworkAdEventType\022]\n\030sk_ad_n" +
-      "etwork_source_app\030\217\001 \001(\01325.google.ads.go" +
-      "ogleads.v24.common.SkAdNetworkSourceAppH" +
-      "e\210\001\001\022\210\001\n sk_ad_network_attribution_credi" +
-      "t\030\220\001 \001(\0162].google.ads.googleads.v24.enum" +
-      "s.SkAdNetworkAttributionCreditEnum.SkAdN" +
-      "etworkAttributionCredit\022\225\001\n%sk_ad_networ" +
-      "k_coarse_conversion_value\030\227\001 \001(\0162e.googl" +
-      "e.ads.googleads.v24.enums.SkAdNetworkCoa" +
-      "rseConversionValueEnum.SkAdNetworkCoarse" +
-      "ConversionValue\022)\n\033sk_ad_network_source_" +
-      "domain\030\230\001 \001(\tHf\210\001\001\022s\n\031sk_ad_network_sour" +
-      "ce_type\030\231\001 \001(\0162O.google.ads.googleads.v2" +
-      "4.enums.SkAdNetworkSourceTypeEnum.SkAdNe" +
-      "tworkSourceType\0223\n%sk_ad_network_postbac" +
-      "k_sequence_index\030\232\001 \001(\003Hg\210\001\001\022#\n\025sk_ad_ne" +
-      "twork_version\030\300\001 \001(\tHh\210\001\001\022_\n\030asset_inter" +
-      "action_target\030\213\001 \001(\01327.google.ads.google" +
-      "ads.v24.common.AssetInteractionTargetHi\210" +
-      "\001\001\022\250\001\n\036new_versus_returning_customers\030\240\001" +
-      " \001(\0162\177.google.ads.googleads.v24.enums.Co" +
-      "nvertingUserPriorEngagementTypeAndLtvBuc" +
-      "ketEnum.ConvertingUserPriorEngagementTyp" +
-      "eAndLtvBucket\022Z\n\022adjusted_age_range\030\304\001 \001" +
-      "(\0162=.google.ads.googleads.v24.enums.AgeR" +
-      "angeTypeEnum.AgeRangeType\022S\n\017adjusted_ge" +
-      "nder\030\305\001 \001(\01629.google.ads.googleads.v24.e" +
-      "nums.GenderTypeEnum.GenderType\022r\n\030search" +
-      "_term_match_source\030\306\001 \001(\0162O.google.ads.g" +
-      "oogleads.v24.enums.SearchTermMatchSource" +
-      "Enum.SearchTermMatchSource\022~\n\034search_ter" +
-      "m_targeting_status\030\311\001 \001(\0162W.google.ads.g" +
-      "oogleads.v24.enums.SearchTermTargetingSt" +
-      "atusEnum.SearchTermTargetingStatus\022#\n\025ad" +
-      "_using_product_data\030\312\001 \001(\010Hj\210\001\001\022\034\n\016ad_us" +
-      "ing_video\030\313\001 \001(\010Hk\210\001\001B\026\n\024_activity_accou" +
-      "nt_idB\020\n\016_activity_cityB\023\n\021_activity_cou" +
-      "ntryB\022\n\020_activity_ratingB\021\n\017_activity_st" +
-      "ateB\027\n\025_external_activity_idB\013\n\t_ad_grou" +
-      "pB\016\n\014_asset_groupB\031\n\027_auction_insight_do" +
-      "mainB\013\n\t_campaignB\024\n\022_conversion_actionB" +
-      "\031\n\027_conversion_action_nameB\030\n\026_conversio" +
-      "n_adjustmentB\007\n\005_dateB\025\n\023_geo_target_air" +
-      "portB\024\n\022_geo_target_cantonB\022\n\020_geo_targe" +
-      "t_cityB\025\n\023_geo_target_countryB\024\n\022_geo_ta" +
-      "rget_countyB\026\n\024_geo_target_districtB\023\n\021_" +
-      "geo_target_metroB$\n\"_geo_target_most_spe" +
-      "cific_locationB\031\n\027_geo_target_postal_cod" +
-      "eB\026\n\024_geo_target_provinceB\024\n\022_geo_target" +
-      "_regionB\023\n\021_geo_target_stateB\034\n\032_hotel_b" +
-      "ooking_window_daysB\022\n\020_hotel_center_idB\026" +
-      "\n\024_hotel_check_in_dateB\r\n\013_hotel_cityB\016\n" +
-      "\014_hotel_classB\020\n\016_hotel_countryB\027\n\025_hote" +
-      "l_length_of_stayB\025\n\023_hotel_rate_rule_idB" +
-      "\016\n\014_hotel_stateB\007\n\005_hourB \n\036_interaction" +
-      "_on_this_extensionB\010\n\006_monthB\023\n\021_partner" +
-      "_hotel_idB\030\n\026_product_aggregator_idB\032\n\030_" +
-      "product_category_level1B\032\n\030_product_cate" +
-      "gory_level2B\032\n\030_product_category_level3B" +
-      "\032\n\030_product_category_level4B\032\n\030_product_" +
-      "category_level5B\020\n\016_product_brandB\022\n\020_pr" +
-      "oduct_countryB\034\n\032_product_custom_attribu" +
-      "te0B\034\n\032_product_custom_attribute1B\034\n\032_pr" +
-      "oduct_custom_attribute2B\034\n\032_product_cust" +
-      "om_attribute3B\034\n\032_product_custom_attribu" +
-      "te4B\025\n\023_product_feed_labelB\022\n\020_product_i" +
-      "tem_idB\023\n\021_product_languageB\026\n\024_product_" +
-      "merchant_idB\037\n\035_product_sold_category_le" +
-      "vel1B\037\n\035_product_sold_category_level2B\037\n" +
-      "\035_product_sold_category_level3B\037\n\035_produ" +
-      "ct_sold_category_level4B\037\n\035_product_sold" +
-      "_category_level5B\025\n\023_product_sold_brandB" +
-      "!\n\037_product_sold_custom_attribute0B!\n\037_p" +
-      "roduct_sold_custom_attribute1B!\n\037_produc" +
-      "t_sold_custom_attribute2B!\n\037_product_sol" +
-      "d_custom_attribute3B!\n\037_product_sold_cus" +
-      "tom_attribute4B\027\n\025_product_sold_item_idB" +
-      "\025\n\023_product_sold_titleB\027\n\025_product_sold_" +
-      "type_l1B\027\n\025_product_sold_type_l2B\027\n\025_pro" +
-      "duct_sold_type_l3B\027\n\025_product_sold_type_" +
-      "l4B\027\n\025_product_sold_type_l5B\023\n\021_product_" +
-      "store_idB\020\n\016_product_titleB\022\n\020_product_t" +
-      "ype_l1B\022\n\020_product_type_l2B\022\n\020_product_t" +
-      "ype_l3B\022\n\020_product_type_l4B\022\n\020_product_t" +
-      "ype_l5B\n\n\010_quarterB\032\n\030_travel_destinatio" +
-      "n_cityB\035\n\033_travel_destination_countryB\034\n" +
-      "\032_travel_destination_regionB/\n-_vertical" +
-      "_ads_event_participant_display_namesB\033\n\031" +
-      "_vertical_ads_hotel_classB\027\n\025_vertical_a" +
-      "ds_listingB\035\n\033_vertical_ads_listing_bran" +
-      "dB\034\n\032_vertical_ads_listing_cityB\037\n\035_vert" +
-      "ical_ads_listing_countryB\036\n\034_vertical_ad" +
-      "s_listing_regionB\037\n\035_vertical_ads_partne" +
-      "r_accountB\030\n\026_vertical_ads_verticalB\025\n\023_" +
-      "search_subcategoryB\016\n\014_search_termB\n\n\010_w" +
-      "ebpageB\007\n\005_weekB\007\n\005_yearB&\n$_sk_ad_netwo" +
-      "rk_fine_conversion_valueB4\n2_sk_ad_netwo" +
-      "rk_redistributed_fine_conversion_valueB\033" +
-      "\n\031_sk_ad_network_source_appB\036\n\034_sk_ad_ne" +
-      "twork_source_domainB(\n&_sk_ad_network_po" +
-      "stback_sequence_indexB\030\n\026_sk_ad_network_" +
-      "versionB\033\n\031_asset_interaction_targetB\030\n\026" +
-      "_ad_using_product_dataB\021\n\017_ad_using_vide" +
-      "o\"}\n\007Keyword\022\037\n\022ad_group_criterion\030\003 \001(\t" +
-      "H\000\210\001\001\022:\n\004info\030\002 \001(\0132,.google.ads.googlea" +
-      "ds.v24.common.KeywordInfoB\025\n\023_ad_group_c" +
-      "riterion\"\272\001\n\037BudgetCampaignAssociationSt" +
-      "atus\022\025\n\010campaign\030\001 \001(\tH\000\210\001\001\022s\n\006status\030\002 " +
-      "\001(\0162c.google.ads.googleads.v24.enums.Bud" +
-      "getCampaignAssociationStatusEnum.BudgetC" +
-      "ampaignAssociationStatusB\013\n\t_campaign\"J\n" +
-      "\026AssetInteractionTarget\022\r\n\005asset\030\001 \001(\t\022!" +
-      "\n\031interaction_on_this_asset\030\002 \001(\010\"`\n\024SkA" +
-      "dNetworkSourceApp\022(\n\033sk_ad_network_sourc" +
-      "e_app_id\030\001 \001(\tH\000\210\001\001B\036\n\034_sk_ad_network_so" +
-      "urce_app_idB\355\001\n#com.google.ads.googleads" +
-      ".v24.commonB\rSegmentsProtoP\001ZEgoogle.gol" +
-      "ang.org/genproto/googleapis/ads/googlead" +
-      "s/v24/common;common\242\002\003GAA\252\002\037Google.Ads.G" +
-      "oogleAds.V24.Common\312\002\037Google\\Ads\\GoogleA" +
-      "ds\\V24\\Common\352\002#Google::Ads::GoogleAds::" +
-      "V24::Commonb\006proto3"
+      "ms/match_type.proto\032;google/ads/googlead" +
+      "s/v24/enums/mobile_device_platform.proto" +
+      "\0322google/ads/googleads/v24/enums/month_o" +
+      "f_year.proto\0324google/ads/googleads/v24/e" +
+      "nums/product_channel.proto\032@google/ads/g" +
+      "oogleads/v24/enums/product_channel_exclu" +
+      "sivity.proto\0326google/ads/googleads/v24/e" +
+      "nums/product_condition.proto\0328google/ads" +
+      "/googleads/v24/enums/recommendation_type" +
+      ".proto\032Dgoogle/ads/googleads/v24/enums/s" +
+      "earch_engine_results_page_type.proto\032=go" +
+      "ogle/ads/googleads/v24/enums/search_term" +
+      "_match_source.proto\032;google/ads/googlead" +
+      "s/v24/enums/search_term_match_type.proto" +
+      "\032Agoogle/ads/googleads/v24/enums/search_" +
+      "term_targeting_status.proto\032@google/ads/" +
+      "googleads/v24/enums/sk_ad_network_ad_eve" +
+      "nt_type.proto\032Egoogle/ads/googleads/v24/" +
+      "enums/sk_ad_network_attribution_credit.p" +
+      "roto\032Jgoogle/ads/googleads/v24/enums/sk_" +
+      "ad_network_coarse_conversion_value.proto" +
+      "\032>google/ads/googleads/v24/enums/sk_ad_n" +
+      "etwork_source_type.proto\032\210\001\001\022,\n\036product_sold_custom_att" +
+      "ribute1\030\256\001 \001(\tH?\210\001\001\022,\n\036product_sold_cust" +
+      "om_attribute2\030\257\001 \001(\tH@\210\001\001\022,\n\036product_sol" +
+      "d_custom_attribute3\030\260\001 \001(\tHA\210\001\001\022,\n\036produ" +
+      "ct_sold_custom_attribute4\030\261\001 \001(\tHB\210\001\001\022\"\n" +
+      "\024product_sold_item_id\030\262\001 \001(\tHC\210\001\001\022 \n\022pro" +
+      "duct_sold_title\030\263\001 \001(\tHD\210\001\001\022\"\n\024product_s" +
+      "old_type_l1\030\264\001 \001(\tHE\210\001\001\022\"\n\024product_sold_" +
+      "type_l2\030\265\001 \001(\tHF\210\001\001\022\"\n\024product_sold_type" +
+      "_l3\030\266\001 \001(\tHG\210\001\001\022\"\n\024product_sold_type_l4\030" +
+      "\267\001 \001(\tHH\210\001\001\022\"\n\024product_sold_type_l5\030\270\001 \001" +
+      "(\tHI\210\001\001\022\035\n\020product_store_id\030j \001(\tHJ\210\001\001\022\032" +
+      "\n\rproduct_title\030k \001(\tHK\210\001\001\022\034\n\017product_ty" +
+      "pe_l1\030l \001(\tHL\210\001\001\022\034\n\017product_type_l2\030m \001(" +
+      "\tHM\210\001\001\022\034\n\017product_type_l3\030n \001(\tHN\210\001\001\022\034\n\017" +
+      "product_type_l4\030o \001(\tHO\210\001\001\022\034\n\017product_ty" +
+      "pe_l5\030p \001(\tHP\210\001\001\022\025\n\007quarter\030\200\001 \001(\tHQ\210\001\001\022" +
+      "%\n\027travel_destination_city\030\301\001 \001(\tHR\210\001\001\022(" +
+      "\n\032travel_destination_country\030\302\001 \001(\tHS\210\001\001" +
+      "\022\'\n\031travel_destination_region\030\303\001 \001(\tHT\210\001" +
+      "\001\022:\n,vertical_ads_event_participant_disp" +
+      "lay_names\030\315\001 \001(\tHU\210\001\001\022&\n\030vertical_ads_ho" +
+      "tel_class\030\316\001 \001(\003HV\210\001\001\022\"\n\024vertical_ads_li" +
+      "sting\030\317\001 \001(\tHW\210\001\001\022(\n\032vertical_ads_listin" +
+      "g_brand\030\320\001 \001(\tHX\210\001\001\022\'\n\031vertical_ads_list" +
+      "ing_city\030\321\001 \001(\tHY\210\001\001\022*\n\034vertical_ads_lis" +
+      "ting_country\030\322\001 \001(\tHZ\210\001\001\022)\n\033vertical_ads" +
+      "_listing_region\030\323\001 \001(\tH[\210\001\001\022.\n vertical_" +
+      "ads_listing_user_rating\030\334\001 \001(\003H\\\210\001\001\022(\n\032v" +
+      "ertical_ads_listing_venue\030\335\001 \001(\tH]\210\001\001\022*\n" +
+      "\034vertical_ads_partner_account\030\324\001 \001(\003H^\210\001" +
+      "\001\022\200\001\n\025vertical_ads_vertical\030\325\001 \001(\0162[.goo" +
+      "gle.ads.googleads.v24.enums.VerticalAdsI" +
+      "temVerticalTypeEnum.VerticalAdsItemVerti" +
+      "calTypeH_\210\001\001\022g\n\023recommendation_type\030\214\001 \001" +
+      "(\0162I.google.ads.googleads.v24.enums.Reco" +
+      "mmendationTypeEnum.RecommendationType\022\204\001" +
+      "\n\037search_engine_results_page_type\030F \001(\0162" +
+      "[.google.ads.googleads.v24.enums.SearchE" +
+      "ngineResultsPageTypeEnum.SearchEngineRes" +
+      "ultsPageType\022 \n\022search_subcategory\030\233\001 \001(" +
+      "\tH`\210\001\001\022\031\n\013search_term\030\234\001 \001(\tHa\210\001\001\022k\n\026sea" +
+      "rch_term_match_type\030\026 \001(\0162K.google.ads.g" +
+      "oogleads.v24.enums.SearchTermMatchTypeEn" +
+      "um.SearchTermMatchType\022L\n\nmatch_type\030\307\001 " +
+      "\001(\01627.google.ads.googleads.v24.enums.Mat" +
+      "chTypeEnum.MatchType\022;\n\004slot\030\027 \001(\0162-.goo" +
+      "gle.ads.googleads.v24.enums.SlotEnum.Slo" +
+      "t\022\235\001\n\'conversion_value_rule_primary_dime" +
+      "nsion\030\212\001 \001(\0162k.google.ads.googleads.v24." +
+      "enums.ConversionValueRulePrimaryDimensio" +
+      "nEnum.ConversionValueRulePrimaryDimensio" +
+      "n\022\025\n\007webpage\030\201\001 \001(\tHb\210\001\001\022\022\n\004week\030\202\001 \001(\tH" +
+      "c\210\001\001\022\022\n\004year\030\203\001 \001(\005Hd\210\001\001\0221\n#sk_ad_networ" +
+      "k_fine_conversion_value\030\211\001 \001(\003He\210\001\001\022?\n1s" +
+      "k_ad_network_redistributed_fine_conversi" +
+      "on_value\030\276\001 \001(\003Hf\210\001\001\022m\n\027sk_ad_network_us" +
+      "er_type\030\215\001 \001(\0162K.google.ads.googleads.v2" +
+      "4.enums.SkAdNetworkUserTypeEnum.SkAdNetw" +
+      "orkUserType\022w\n\033sk_ad_network_ad_event_ty" +
+      "pe\030\216\001 \001(\0162Q.google.ads.googleads.v24.enu" +
+      "ms.SkAdNetworkAdEventTypeEnum.SkAdNetwor" +
+      "kAdEventType\022]\n\030sk_ad_network_source_app" +
+      "\030\217\001 \001(\01325.google.ads.googleads.v24.commo" +
+      "n.SkAdNetworkSourceAppHg\210\001\001\022\210\001\n sk_ad_ne" +
+      "twork_attribution_credit\030\220\001 \001(\0162].google" +
+      ".ads.googleads.v24.enums.SkAdNetworkAttr" +
+      "ibutionCreditEnum.SkAdNetworkAttribution" +
+      "Credit\022\225\001\n%sk_ad_network_coarse_conversi" +
+      "on_value\030\227\001 \001(\0162e.google.ads.googleads.v" +
+      "24.enums.SkAdNetworkCoarseConversionValu" +
+      "eEnum.SkAdNetworkCoarseConversionValue\022)" +
+      "\n\033sk_ad_network_source_domain\030\230\001 \001(\tHh\210\001" +
+      "\001\022s\n\031sk_ad_network_source_type\030\231\001 \001(\0162O." +
+      "google.ads.googleads.v24.enums.SkAdNetwo" +
+      "rkSourceTypeEnum.SkAdNetworkSourceType\0223" +
+      "\n%sk_ad_network_postback_sequence_index\030" +
+      "\232\001 \001(\003Hi\210\001\001\022#\n\025sk_ad_network_version\030\300\001 " +
+      "\001(\tHj\210\001\001\022_\n\030asset_interaction_target\030\213\001 " +
+      "\001(\01327.google.ads.googleads.v24.common.As" +
+      "setInteractionTargetHk\210\001\001\022\250\001\n\036new_versus" +
+      "_returning_customers\030\240\001 \001(\0162\177.google.ads" +
+      ".googleads.v24.enums.ConvertingUserPrior" +
+      "EngagementTypeAndLtvBucketEnum.Convertin" +
+      "gUserPriorEngagementTypeAndLtvBucket\022Z\n\022" +
+      "adjusted_age_range\030\304\001 \001(\0162=.google.ads.g" +
+      "oogleads.v24.enums.AgeRangeTypeEnum.AgeR" +
+      "angeType\022S\n\017adjusted_gender\030\305\001 \001(\01629.goo" +
+      "gle.ads.googleads.v24.enums.GenderTypeEn" +
+      "um.GenderType\022r\n\030search_term_match_sourc" +
+      "e\030\306\001 \001(\0162O.google.ads.googleads.v24.enum" +
+      "s.SearchTermMatchSourceEnum.SearchTermMa" +
+      "tchSource\022~\n\034search_term_targeting_statu" +
+      "s\030\311\001 \001(\0162W.google.ads.googleads.v24.enum" +
+      "s.SearchTermTargetingStatusEnum.SearchTe" +
+      "rmTargetingStatus\022#\n\025ad_using_product_da" +
+      "ta\030\312\001 \001(\010Hl\210\001\001\022\034\n\016ad_using_video\030\313\001 \001(\010H" +
+      "m\210\001\001B\026\n\024_activity_account_idB\020\n\016_activit" +
+      "y_cityB\023\n\021_activity_countryB\022\n\020_activity" +
+      "_ratingB\021\n\017_activity_stateB\027\n\025_external_" +
+      "activity_idB\013\n\t_ad_groupB\016\n\014_asset_group" +
+      "B\031\n\027_auction_insight_domainB\013\n\t_campaign" +
+      "B\024\n\022_conversion_actionB\031\n\027_conversion_ac" +
+      "tion_nameB\030\n\026_conversion_adjustmentB\007\n\005_" +
+      "dateB\025\n\023_geo_target_airportB\024\n\022_geo_targ" +
+      "et_cantonB\022\n\020_geo_target_cityB\025\n\023_geo_ta" +
+      "rget_countryB\024\n\022_geo_target_countyB\026\n\024_g" +
+      "eo_target_districtB\023\n\021_geo_target_metroB" +
+      "$\n\"_geo_target_most_specific_locationB\031\n" +
+      "\027_geo_target_postal_codeB\026\n\024_geo_target_" +
+      "provinceB\024\n\022_geo_target_regionB\023\n\021_geo_t" +
+      "arget_stateB\034\n\032_hotel_booking_window_day" +
+      "sB\022\n\020_hotel_center_idB\026\n\024_hotel_check_in" +
+      "_dateB\r\n\013_hotel_cityB\016\n\014_hotel_classB\020\n\016" +
+      "_hotel_countryB\027\n\025_hotel_length_of_stayB" +
+      "\025\n\023_hotel_rate_rule_idB\016\n\014_hotel_stateB\007" +
+      "\n\005_hourB \n\036_interaction_on_this_extensio" +
+      "nB\010\n\006_monthB\023\n\021_partner_hotel_idB\030\n\026_pro" +
+      "duct_aggregator_idB\032\n\030_product_category_" +
+      "level1B\032\n\030_product_category_level2B\032\n\030_p" +
+      "roduct_category_level3B\032\n\030_product_categ" +
+      "ory_level4B\032\n\030_product_category_level5B\020" +
+      "\n\016_product_brandB\022\n\020_product_countryB\034\n\032" +
+      "_product_custom_attribute0B\034\n\032_product_c" +
+      "ustom_attribute1B\034\n\032_product_custom_attr" +
+      "ibute2B\034\n\032_product_custom_attribute3B\034\n\032" +
+      "_product_custom_attribute4B\025\n\023_product_f" +
+      "eed_labelB\022\n\020_product_item_idB\023\n\021_produc" +
+      "t_languageB\026\n\024_product_merchant_idB\037\n\035_p" +
+      "roduct_sold_category_level1B\037\n\035_product_" +
+      "sold_category_level2B\037\n\035_product_sold_ca" +
+      "tegory_level3B\037\n\035_product_sold_category_" +
+      "level4B\037\n\035_product_sold_category_level5B" +
+      "\025\n\023_product_sold_brandB!\n\037_product_sold_" +
+      "custom_attribute0B!\n\037_product_sold_custo" +
+      "m_attribute1B!\n\037_product_sold_custom_att" +
+      "ribute2B!\n\037_product_sold_custom_attribut" +
+      "e3B!\n\037_product_sold_custom_attribute4B\027\n" +
+      "\025_product_sold_item_idB\025\n\023_product_sold_" +
+      "titleB\027\n\025_product_sold_type_l1B\027\n\025_produ" +
+      "ct_sold_type_l2B\027\n\025_product_sold_type_l3" +
+      "B\027\n\025_product_sold_type_l4B\027\n\025_product_so" +
+      "ld_type_l5B\023\n\021_product_store_idB\020\n\016_prod" +
+      "uct_titleB\022\n\020_product_type_l1B\022\n\020_produc" +
+      "t_type_l2B\022\n\020_product_type_l3B\022\n\020_produc" +
+      "t_type_l4B\022\n\020_product_type_l5B\n\n\010_quarte" +
+      "rB\032\n\030_travel_destination_cityB\035\n\033_travel" +
+      "_destination_countryB\034\n\032_travel_destinat" +
+      "ion_regionB/\n-_vertical_ads_event_partic" +
+      "ipant_display_namesB\033\n\031_vertical_ads_hot" +
+      "el_classB\027\n\025_vertical_ads_listingB\035\n\033_ve" +
+      "rtical_ads_listing_brandB\034\n\032_vertical_ad" +
+      "s_listing_cityB\037\n\035_vertical_ads_listing_" +
+      "countryB\036\n\034_vertical_ads_listing_regionB" +
+      "#\n!_vertical_ads_listing_user_ratingB\035\n\033" +
+      "_vertical_ads_listing_venueB\037\n\035_vertical" +
+      "_ads_partner_accountB\030\n\026_vertical_ads_ve" +
+      "rticalB\025\n\023_search_subcategoryB\016\n\014_search" +
+      "_termB\n\n\010_webpageB\007\n\005_weekB\007\n\005_yearB&\n$_" +
+      "sk_ad_network_fine_conversion_valueB4\n2_" +
+      "sk_ad_network_redistributed_fine_convers" +
+      "ion_valueB\033\n\031_sk_ad_network_source_appB\036" +
+      "\n\034_sk_ad_network_source_domainB(\n&_sk_ad" +
+      "_network_postback_sequence_indexB\030\n\026_sk_" +
+      "ad_network_versionB\033\n\031_asset_interaction" +
+      "_targetB\030\n\026_ad_using_product_dataB\021\n\017_ad" +
+      "_using_video\"}\n\007Keyword\022\037\n\022ad_group_crit" +
+      "erion\030\003 \001(\tH\000\210\001\001\022:\n\004info\030\002 \001(\0132,.google." +
+      "ads.googleads.v24.common.KeywordInfoB\025\n\023" +
+      "_ad_group_criterion\"\272\001\n\037BudgetCampaignAs" +
+      "sociationStatus\022\025\n\010campaign\030\001 \001(\tH\000\210\001\001\022s" +
+      "\n\006status\030\002 \001(\0162c.google.ads.googleads.v2" +
+      "4.enums.BudgetCampaignAssociationStatusE" +
+      "num.BudgetCampaignAssociationStatusB\013\n\t_" +
+      "campaign\"J\n\026AssetInteractionTarget\022\r\n\005as" +
+      "set\030\001 \001(\t\022!\n\031interaction_on_this_asset\030\002" +
+      " \001(\010\"`\n\024SkAdNetworkSourceApp\022(\n\033sk_ad_ne" +
+      "twork_source_app_id\030\001 \001(\tH\000\210\001\001B\036\n\034_sk_ad" +
+      "_network_source_app_idB\355\001\n#com.google.ad" +
+      "s.googleads.v24.commonB\rSegmentsProtoP\001Z" +
+      "Egoogle.golang.org/genproto/googleapis/a" +
+      "ds/googleads/v24/common;common\242\002\003GAA\252\002\037G" +
+      "oogle.Ads.GoogleAds.V24.Common\312\002\037Google\\" +
+      "Ads\\GoogleAds\\V24\\Common\352\002#Google::Ads::" +
+      "GoogleAds::V24::Commonb\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -446,6 +454,7 @@ public static void registerAllExtensions(
           com.google.ads.googleads.v24.enums.HotelRateTypeProto.getDescriptor(),
           com.google.ads.googleads.v24.enums.LandingPageSourceProto.getDescriptor(),
           com.google.ads.googleads.v24.enums.MatchTypeProto.getDescriptor(),
+          com.google.ads.googleads.v24.enums.MobileDevicePlatformProto.getDescriptor(),
           com.google.ads.googleads.v24.enums.MonthOfYearProto.getDescriptor(),
           com.google.ads.googleads.v24.enums.ProductChannelProto.getDescriptor(),
           com.google.ads.googleads.v24.enums.ProductChannelExclusivityProto.getDescriptor(),
@@ -469,7 +478,7 @@ public static void registerAllExtensions(
     internal_static_google_ads_googleads_v24_common_Segments_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessage.FieldAccessorTable(
         internal_static_google_ads_googleads_v24_common_Segments_descriptor,
-        new java.lang.String[] { "ActivityAccountId", "ActivityCity", "ActivityCountry", "ActivityRating", "ActivityState", "ExternalActivityId", "AdDestinationType", "AdFormatType", "AdNetworkType", "AdGroup", "AdSubNetworkType", "AssetGroup", "AuctionInsightDomain", "BudgetCampaignAssociationStatus", "Campaign", "ClickType", "ConversionAction", "ConversionActionCategory", "ConversionActionName", "ConversionAdjustment", "ConversionAttributionEventType", "ConversionLagBucket", "ConversionOrAdjustmentLagBucket", "Date", "DayOfWeek", "Device", "ExternalConversionSource", "GeoTargetAirport", "GeoTargetCanton", "GeoTargetCity", "GeoTargetCountry", "GeoTargetCounty", "GeoTargetDistrict", "GeoTargetMetro", "GeoTargetMostSpecificLocation", "GeoTargetPostalCode", "GeoTargetProvince", "GeoTargetRegion", "GeoTargetState", "HotelBookingWindowDays", "HotelCenterId", "HotelCheckInDate", "HotelCheckInDayOfWeek", "HotelCity", "HotelClass", "HotelCountry", "HotelDateSelectionType", "HotelLengthOfStay", "HotelRateRuleId", "HotelRateType", "HotelPriceBucket", "HotelState", "Hour", "InteractionOnThisExtension", "Keyword", "LandingPageSource", "Month", "MonthOfYear", "PartnerHotelId", "ProductAggregatorId", "ProductCategoryLevel1", "ProductCategoryLevel2", "ProductCategoryLevel3", "ProductCategoryLevel4", "ProductCategoryLevel5", "ProductBrand", "ProductChannel", "ProductChannelExclusivity", "ProductCondition", "ProductCountry", "ProductCustomAttribute0", "ProductCustomAttribute1", "ProductCustomAttribute2", "ProductCustomAttribute3", "ProductCustomAttribute4", "ProductFeedLabel", "ProductItemId", "ProductLanguage", "ProductMerchantId", "ProductSoldCategoryLevel1", "ProductSoldCategoryLevel2", "ProductSoldCategoryLevel3", "ProductSoldCategoryLevel4", "ProductSoldCategoryLevel5", "ProductSoldBrand", "ProductSoldCondition", "ProductSoldCustomAttribute0", "ProductSoldCustomAttribute1", "ProductSoldCustomAttribute2", "ProductSoldCustomAttribute3", "ProductSoldCustomAttribute4", "ProductSoldItemId", "ProductSoldTitle", "ProductSoldTypeL1", "ProductSoldTypeL2", "ProductSoldTypeL3", "ProductSoldTypeL4", "ProductSoldTypeL5", "ProductStoreId", "ProductTitle", "ProductTypeL1", "ProductTypeL2", "ProductTypeL3", "ProductTypeL4", "ProductTypeL5", "Quarter", "TravelDestinationCity", "TravelDestinationCountry", "TravelDestinationRegion", "VerticalAdsEventParticipantDisplayNames", "VerticalAdsHotelClass", "VerticalAdsListing", "VerticalAdsListingBrand", "VerticalAdsListingCity", "VerticalAdsListingCountry", "VerticalAdsListingRegion", "VerticalAdsPartnerAccount", "VerticalAdsVertical", "RecommendationType", "SearchEngineResultsPageType", "SearchSubcategory", "SearchTerm", "SearchTermMatchType", "MatchType", "Slot", "ConversionValueRulePrimaryDimension", "Webpage", "Week", "Year", "SkAdNetworkFineConversionValue", "SkAdNetworkRedistributedFineConversionValue", "SkAdNetworkUserType", "SkAdNetworkAdEventType", "SkAdNetworkSourceApp", "SkAdNetworkAttributionCredit", "SkAdNetworkCoarseConversionValue", "SkAdNetworkSourceDomain", "SkAdNetworkSourceType", "SkAdNetworkPostbackSequenceIndex", "SkAdNetworkVersion", "AssetInteractionTarget", "NewVersusReturningCustomers", "AdjustedAgeRange", "AdjustedGender", "SearchTermMatchSource", "SearchTermTargetingStatus", "AdUsingProductData", "AdUsingVideo", });
+        new java.lang.String[] { "ActivityAccountId", "ActivityCity", "ActivityCountry", "ActivityRating", "ActivityState", "ExternalActivityId", "AdDestinationType", "AdFormatType", "AdNetworkType", "AdGroup", "AdSubNetworkType", "AssetGroup", "AuctionInsightDomain", "BudgetCampaignAssociationStatus", "Campaign", "ClickType", "ConversionAction", "ConversionActionCategory", "ConversionActionName", "ConversionAdjustment", "ConversionAttributionEventType", "ConversionLagBucket", "ConversionOrAdjustmentLagBucket", "Date", "DayOfWeek", "Device", "MobileDevicePlatform", "ExternalConversionSource", "GeoTargetAirport", "GeoTargetCanton", "GeoTargetCity", "GeoTargetCountry", "GeoTargetCounty", "GeoTargetDistrict", "GeoTargetMetro", "GeoTargetMostSpecificLocation", "GeoTargetPostalCode", "GeoTargetProvince", "GeoTargetRegion", "GeoTargetState", "HotelBookingWindowDays", "HotelCenterId", "HotelCheckInDate", "HotelCheckInDayOfWeek", "HotelCity", "HotelClass", "HotelCountry", "HotelDateSelectionType", "HotelLengthOfStay", "HotelRateRuleId", "HotelRateType", "HotelPriceBucket", "HotelState", "Hour", "InteractionOnThisExtension", "Keyword", "LandingPageSource", "Month", "MonthOfYear", "PartnerHotelId", "ProductAggregatorId", "ProductCategoryLevel1", "ProductCategoryLevel2", "ProductCategoryLevel3", "ProductCategoryLevel4", "ProductCategoryLevel5", "ProductBrand", "ProductChannel", "ProductChannelExclusivity", "ProductCondition", "ProductCountry", "ProductCustomAttribute0", "ProductCustomAttribute1", "ProductCustomAttribute2", "ProductCustomAttribute3", "ProductCustomAttribute4", "ProductFeedLabel", "ProductItemId", "ProductLanguage", "ProductMerchantId", "ProductSoldCategoryLevel1", "ProductSoldCategoryLevel2", "ProductSoldCategoryLevel3", "ProductSoldCategoryLevel4", "ProductSoldCategoryLevel5", "ProductSoldBrand", "ProductSoldCondition", "ProductSoldCustomAttribute0", "ProductSoldCustomAttribute1", "ProductSoldCustomAttribute2", "ProductSoldCustomAttribute3", "ProductSoldCustomAttribute4", "ProductSoldItemId", "ProductSoldTitle", "ProductSoldTypeL1", "ProductSoldTypeL2", "ProductSoldTypeL3", "ProductSoldTypeL4", "ProductSoldTypeL5", "ProductStoreId", "ProductTitle", "ProductTypeL1", "ProductTypeL2", "ProductTypeL3", "ProductTypeL4", "ProductTypeL5", "Quarter", "TravelDestinationCity", "TravelDestinationCountry", "TravelDestinationRegion", "VerticalAdsEventParticipantDisplayNames", "VerticalAdsHotelClass", "VerticalAdsListing", "VerticalAdsListingBrand", "VerticalAdsListingCity", "VerticalAdsListingCountry", "VerticalAdsListingRegion", "VerticalAdsListingUserRating", "VerticalAdsListingVenue", "VerticalAdsPartnerAccount", "VerticalAdsVertical", "RecommendationType", "SearchEngineResultsPageType", "SearchSubcategory", "SearchTerm", "SearchTermMatchType", "MatchType", "Slot", "ConversionValueRulePrimaryDimension", "Webpage", "Week", "Year", "SkAdNetworkFineConversionValue", "SkAdNetworkRedistributedFineConversionValue", "SkAdNetworkUserType", "SkAdNetworkAdEventType", "SkAdNetworkSourceApp", "SkAdNetworkAttributionCredit", "SkAdNetworkCoarseConversionValue", "SkAdNetworkSourceDomain", "SkAdNetworkSourceType", "SkAdNetworkPostbackSequenceIndex", "SkAdNetworkVersion", "AssetInteractionTarget", "NewVersusReturningCustomers", "AdjustedAgeRange", "AdjustedGender", "SearchTermMatchSource", "SearchTermTargetingStatus", "AdUsingProductData", "AdUsingVideo", });
     internal_static_google_ads_googleads_v24_common_Keyword_descriptor =
       getDescriptor().getMessageTypes().get(1);
     internal_static_google_ads_googleads_v24_common_Keyword_fieldAccessorTable = new
@@ -518,6 +527,7 @@ public static void registerAllExtensions(
     com.google.ads.googleads.v24.enums.HotelRateTypeProto.getDescriptor();
     com.google.ads.googleads.v24.enums.LandingPageSourceProto.getDescriptor();
     com.google.ads.googleads.v24.enums.MatchTypeProto.getDescriptor();
+    com.google.ads.googleads.v24.enums.MobileDevicePlatformProto.getDescriptor();
     com.google.ads.googleads.v24.enums.MonthOfYearProto.getDescriptor();
     com.google.ads.googleads.v24.enums.ProductChannelProto.getDescriptor();
     com.google.ads.googleads.v24.enums.ProductChannelExclusivityProto.getDescriptor();
diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfo.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfo.java
index 2249070e8..fd511bc76 100644
--- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfo.java
+++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfo.java
@@ -58,6 +58,9 @@ public enum DimensionCase
     REGION_CRITERION_ID(3),
     CITY_CRITERION_ID(4),
     HOTEL_CLASS(6),
+    USER_RATING(7),
+    VENUE(8),
+    EVENT_PARTICIPANT_DISPLAY_NAME(9),
     DIMENSION_NOT_SET(0);
     private final int value;
     private DimensionCase(int value) {
@@ -80,6 +83,9 @@ public static DimensionCase forNumber(int value) {
         case 3: return REGION_CRITERION_ID;
         case 4: return CITY_CRITERION_ID;
         case 6: return HOTEL_CLASS;
+        case 7: return USER_RATING;
+        case 8: return VENUE;
+        case 9: return EVENT_PARTICIPANT_DISPLAY_NAME;
         case 0: return DIMENSION_NOT_SET;
         default: return null;
       }
@@ -382,6 +388,168 @@ public long getHotelClass() {
     return 0L;
   }
 
+  public static final int USER_RATING_FIELD_NUMBER = 7;
+  /**
+   * 
+   * Integer value specifying the user rating for a Vertical Ad listing.
+   * Ranges from 1 to 5, where 5 is the best.
+   * 
+ * + * int64 user_rating = 7; + * @return Whether the userRating field is set. + */ + @java.lang.Override + public boolean hasUserRating() { + return dimensionCase_ == 7; + } + /** + *
+   * Integer value specifying the user rating for a Vertical Ad listing.
+   * Ranges from 1 to 5, where 5 is the best.
+   * 
+ * + * int64 user_rating = 7; + * @return The userRating. + */ + @java.lang.Override + public long getUserRating() { + if (dimensionCase_ == 7) { + return (java.lang.Long) dimension_; + } + return 0L; + } + + public static final int VENUE_FIELD_NUMBER = 8; + /** + *
+   * A name for a specific location, like the venue for a concert event.
+   * 
+ * + * string venue = 8; + * @return Whether the venue field is set. + */ + public boolean hasVenue() { + return dimensionCase_ == 8; + } + /** + *
+   * A name for a specific location, like the venue for a concert event.
+   * 
+ * + * string venue = 8; + * @return The venue. + */ + public java.lang.String getVenue() { + java.lang.Object ref = ""; + if (dimensionCase_ == 8) { + ref = dimension_; + } + 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(); + if (dimensionCase_ == 8) { + dimension_ = s; + } + return s; + } + } + /** + *
+   * A name for a specific location, like the venue for a concert event.
+   * 
+ * + * string venue = 8; + * @return The bytes for venue. + */ + public com.google.protobuf.ByteString + getVenueBytes() { + java.lang.Object ref = ""; + if (dimensionCase_ == 8) { + ref = dimension_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (dimensionCase_ == 8) { + dimension_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EVENT_PARTICIPANT_DISPLAY_NAME_FIELD_NUMBER = 9; + /** + *
+   * The name of an associated participant for a given event. For example,
+   * headliner for a concert event.
+   * 
+ * + * string event_participant_display_name = 9; + * @return Whether the eventParticipantDisplayName field is set. + */ + public boolean hasEventParticipantDisplayName() { + return dimensionCase_ == 9; + } + /** + *
+   * The name of an associated participant for a given event. For example,
+   * headliner for a concert event.
+   * 
+ * + * string event_participant_display_name = 9; + * @return The eventParticipantDisplayName. + */ + public java.lang.String getEventParticipantDisplayName() { + java.lang.Object ref = ""; + if (dimensionCase_ == 9) { + ref = dimension_; + } + 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(); + if (dimensionCase_ == 9) { + dimension_ = s; + } + return s; + } + } + /** + *
+   * The name of an associated participant for a given event. For example,
+   * headliner for a concert event.
+   * 
+ * + * string event_participant_display_name = 9; + * @return The bytes for eventParticipantDisplayName. + */ + public com.google.protobuf.ByteString + getEventParticipantDisplayNameBytes() { + java.lang.Object ref = ""; + if (dimensionCase_ == 9) { + ref = dimension_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (dimensionCase_ == 9) { + dimension_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -412,6 +580,16 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) output.writeInt64( 6, (long)((java.lang.Long) dimension_)); } + if (dimensionCase_ == 7) { + output.writeInt64( + 7, (long)((java.lang.Long) dimension_)); + } + if (dimensionCase_ == 8) { + com.google.protobuf.GeneratedMessage.writeString(output, 8, dimension_); + } + if (dimensionCase_ == 9) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, dimension_); + } getUnknownFields().writeTo(output); } @@ -438,6 +616,17 @@ public int getSerializedSize() { .computeInt64Size( 6, (long)((java.lang.Long) dimension_)); } + if (dimensionCase_ == 7) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size( + 7, (long)((java.lang.Long) dimension_)); + } + if (dimensionCase_ == 8) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(8, dimension_); + } + if (dimensionCase_ == 9) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, dimension_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -475,6 +664,18 @@ public boolean equals(final java.lang.Object obj) { if (getHotelClass() != other.getHotelClass()) return false; break; + case 7: + if (getUserRating() + != other.getUserRating()) return false; + break; + case 8: + if (!getVenue() + .equals(other.getVenue())) return false; + break; + case 9: + if (!getEventParticipantDisplayName() + .equals(other.getEventParticipantDisplayName())) return false; + break; case 0: default: } @@ -511,6 +712,19 @@ public int hashCode() { hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getHotelClass()); break; + case 7: + hash = (37 * hash) + USER_RATING_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUserRating()); + break; + case 8: + hash = (37 * hash) + VENUE_FIELD_NUMBER; + hash = (53 * hash) + getVenue().hashCode(); + break; + case 9: + hash = (37 * hash) + EVENT_PARTICIPANT_DISPLAY_NAME_FIELD_NUMBER; + hash = (53 * hash) + getEventParticipantDisplayName().hashCode(); + break; case 0: default: } @@ -733,6 +947,22 @@ public Builder mergeFrom(com.google.ads.googleads.v24.common.VerticalAdsItemGrou setHotelClass(other.getHotelClass()); break; } + case USER_RATING: { + setUserRating(other.getUserRating()); + break; + } + case VENUE: { + dimensionCase_ = 8; + dimension_ = other.dimension_; + onChanged(); + break; + } + case EVENT_PARTICIPANT_DISPLAY_NAME: { + dimensionCase_ = 9; + dimension_ = other.dimension_; + onChanged(); + break; + } case DIMENSION_NOT_SET: { break; } @@ -792,6 +1022,23 @@ public Builder mergeFrom( dimensionCase_ = 6; break; } // case 48 + case 56: { + dimension_ = input.readInt64(); + dimensionCase_ = 7; + break; + } // case 56 + case 66: { + java.lang.String s = input.readStringRequireUtf8(); + dimensionCase_ = 8; + dimension_ = s; + break; + } // case 66 + case 74: { + java.lang.String s = input.readStringRequireUtf8(); + dimensionCase_ = 9; + dimension_ = s; + break; + } // case 74 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -1354,6 +1601,308 @@ public Builder clearHotelClass() { return this; } + /** + *
+     * Integer value specifying the user rating for a Vertical Ad listing.
+     * Ranges from 1 to 5, where 5 is the best.
+     * 
+ * + * int64 user_rating = 7; + * @return Whether the userRating field is set. + */ + public boolean hasUserRating() { + return dimensionCase_ == 7; + } + /** + *
+     * Integer value specifying the user rating for a Vertical Ad listing.
+     * Ranges from 1 to 5, where 5 is the best.
+     * 
+ * + * int64 user_rating = 7; + * @return The userRating. + */ + public long getUserRating() { + if (dimensionCase_ == 7) { + return (java.lang.Long) dimension_; + } + return 0L; + } + /** + *
+     * Integer value specifying the user rating for a Vertical Ad listing.
+     * Ranges from 1 to 5, where 5 is the best.
+     * 
+ * + * int64 user_rating = 7; + * @param value The userRating to set. + * @return This builder for chaining. + */ + public Builder setUserRating(long value) { + + dimensionCase_ = 7; + dimension_ = value; + onChanged(); + return this; + } + /** + *
+     * Integer value specifying the user rating for a Vertical Ad listing.
+     * Ranges from 1 to 5, where 5 is the best.
+     * 
+ * + * int64 user_rating = 7; + * @return This builder for chaining. + */ + public Builder clearUserRating() { + if (dimensionCase_ == 7) { + dimensionCase_ = 0; + dimension_ = null; + onChanged(); + } + return this; + } + + /** + *
+     * A name for a specific location, like the venue for a concert event.
+     * 
+ * + * string venue = 8; + * @return Whether the venue field is set. + */ + @java.lang.Override + public boolean hasVenue() { + return dimensionCase_ == 8; + } + /** + *
+     * A name for a specific location, like the venue for a concert event.
+     * 
+ * + * string venue = 8; + * @return The venue. + */ + @java.lang.Override + public java.lang.String getVenue() { + java.lang.Object ref = ""; + if (dimensionCase_ == 8) { + ref = dimension_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (dimensionCase_ == 8) { + dimension_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * A name for a specific location, like the venue for a concert event.
+     * 
+ * + * string venue = 8; + * @return The bytes for venue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVenueBytes() { + java.lang.Object ref = ""; + if (dimensionCase_ == 8) { + ref = dimension_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (dimensionCase_ == 8) { + dimension_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * A name for a specific location, like the venue for a concert event.
+     * 
+ * + * string venue = 8; + * @param value The venue to set. + * @return This builder for chaining. + */ + public Builder setVenue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + dimensionCase_ = 8; + dimension_ = value; + onChanged(); + return this; + } + /** + *
+     * A name for a specific location, like the venue for a concert event.
+     * 
+ * + * string venue = 8; + * @return This builder for chaining. + */ + public Builder clearVenue() { + if (dimensionCase_ == 8) { + dimensionCase_ = 0; + dimension_ = null; + onChanged(); + } + return this; + } + /** + *
+     * A name for a specific location, like the venue for a concert event.
+     * 
+ * + * string venue = 8; + * @param value The bytes for venue to set. + * @return This builder for chaining. + */ + public Builder setVenueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + dimensionCase_ = 8; + dimension_ = value; + onChanged(); + return this; + } + + /** + *
+     * The name of an associated participant for a given event. For example,
+     * headliner for a concert event.
+     * 
+ * + * string event_participant_display_name = 9; + * @return Whether the eventParticipantDisplayName field is set. + */ + @java.lang.Override + public boolean hasEventParticipantDisplayName() { + return dimensionCase_ == 9; + } + /** + *
+     * The name of an associated participant for a given event. For example,
+     * headliner for a concert event.
+     * 
+ * + * string event_participant_display_name = 9; + * @return The eventParticipantDisplayName. + */ + @java.lang.Override + public java.lang.String getEventParticipantDisplayName() { + java.lang.Object ref = ""; + if (dimensionCase_ == 9) { + ref = dimension_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (dimensionCase_ == 9) { + dimension_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The name of an associated participant for a given event. For example,
+     * headliner for a concert event.
+     * 
+ * + * string event_participant_display_name = 9; + * @return The bytes for eventParticipantDisplayName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getEventParticipantDisplayNameBytes() { + java.lang.Object ref = ""; + if (dimensionCase_ == 9) { + ref = dimension_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (dimensionCase_ == 9) { + dimension_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The name of an associated participant for a given event. For example,
+     * headliner for a concert event.
+     * 
+ * + * string event_participant_display_name = 9; + * @param value The eventParticipantDisplayName to set. + * @return This builder for chaining. + */ + public Builder setEventParticipantDisplayName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + dimensionCase_ = 9; + dimension_ = value; + onChanged(); + return this; + } + /** + *
+     * The name of an associated participant for a given event. For example,
+     * headliner for a concert event.
+     * 
+ * + * string event_participant_display_name = 9; + * @return This builder for chaining. + */ + public Builder clearEventParticipantDisplayName() { + if (dimensionCase_ == 9) { + dimensionCase_ = 0; + dimension_ = null; + onChanged(); + } + return this; + } + /** + *
+     * The name of an associated participant for a given event. For example,
+     * headliner for a concert event.
+     * 
+ * + * string event_participant_display_name = 9; + * @param value The bytes for eventParticipantDisplayName to set. + * @return This builder for chaining. + */ + public Builder setEventParticipantDisplayNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + dimensionCase_ = 9; + dimension_ = value; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.common.VerticalAdsItemGroupRuleInfo) } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfoOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfoOrBuilder.java index 693aa9dde..7e2d8be01 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfoOrBuilder.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VerticalAdsItemGroupRuleInfoOrBuilder.java @@ -147,5 +147,87 @@ public interface VerticalAdsItemGroupRuleInfoOrBuilder extends */ long getHotelClass(); + /** + *
+   * Integer value specifying the user rating for a Vertical Ad listing.
+   * Ranges from 1 to 5, where 5 is the best.
+   * 
+ * + * int64 user_rating = 7; + * @return Whether the userRating field is set. + */ + boolean hasUserRating(); + /** + *
+   * Integer value specifying the user rating for a Vertical Ad listing.
+   * Ranges from 1 to 5, where 5 is the best.
+   * 
+ * + * int64 user_rating = 7; + * @return The userRating. + */ + long getUserRating(); + + /** + *
+   * A name for a specific location, like the venue for a concert event.
+   * 
+ * + * string venue = 8; + * @return Whether the venue field is set. + */ + boolean hasVenue(); + /** + *
+   * A name for a specific location, like the venue for a concert event.
+   * 
+ * + * string venue = 8; + * @return The venue. + */ + java.lang.String getVenue(); + /** + *
+   * A name for a specific location, like the venue for a concert event.
+   * 
+ * + * string venue = 8; + * @return The bytes for venue. + */ + com.google.protobuf.ByteString + getVenueBytes(); + + /** + *
+   * The name of an associated participant for a given event. For example,
+   * headliner for a concert event.
+   * 
+ * + * string event_participant_display_name = 9; + * @return Whether the eventParticipantDisplayName field is set. + */ + boolean hasEventParticipantDisplayName(); + /** + *
+   * The name of an associated participant for a given event. For example,
+   * headliner for a concert event.
+   * 
+ * + * string event_participant_display_name = 9; + * @return The eventParticipantDisplayName. + */ + java.lang.String getEventParticipantDisplayName(); + /** + *
+   * The name of an associated participant for a given event. For example,
+   * headliner for a concert event.
+   * 
+ * + * string event_participant_display_name = 9; + * @return The bytes for eventParticipantDisplayName. + */ + com.google.protobuf.ByteString + getEventParticipantDisplayNameBytes(); + com.google.ads.googleads.v24.common.VerticalAdsItemGroupRuleInfo.DimensionCase getDimensionCase(); } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VideoExperimentInfo.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VideoExperimentInfo.java new file mode 100644 index 000000000..50c210389 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VideoExperimentInfo.java @@ -0,0 +1,494 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/common/experiment_types.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.common; + +/** + *
+ * Configuration for a Video experiment.
+ * 
+ * + * Protobuf type {@code google.ads.googleads.v24.common.VideoExperimentInfo} + */ +@com.google.protobuf.Generated +public final class VideoExperimentInfo extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.common.VideoExperimentInfo) + VideoExperimentInfoOrBuilder { +private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + VideoExperimentInfo.class.getName()); + } + // Use VideoExperimentInfo.newBuilder() to construct. + private VideoExperimentInfo(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VideoExperimentInfo() { + videoExperimentSubtype_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.common.VideoExperimentInfo.class, com.google.ads.googleads.v24.common.VideoExperimentInfo.Builder.class); + } + + public static final int VIDEO_EXPERIMENT_SUBTYPE_FIELD_NUMBER = 1; + private int videoExperimentSubtype_ = 0; + /** + *
+   * The subtype of the Video experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @return The enum numeric value on the wire for videoExperimentSubtype. + */ + @java.lang.Override public int getVideoExperimentSubtypeValue() { + return videoExperimentSubtype_; + } + /** + *
+   * The subtype of the Video experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @return The videoExperimentSubtype. + */ + @java.lang.Override public com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype getVideoExperimentSubtype() { + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype result = com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype.forNumber(videoExperimentSubtype_); + return result == null ? com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (videoExperimentSubtype_ != com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype.UNSPECIFIED.getNumber()) { + output.writeEnum(1, videoExperimentSubtype_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (videoExperimentSubtype_ != com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype.UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, videoExperimentSubtype_); + } + 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.v24.common.VideoExperimentInfo)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.common.VideoExperimentInfo other = (com.google.ads.googleads.v24.common.VideoExperimentInfo) obj; + + if (videoExperimentSubtype_ != other.videoExperimentSubtype_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VIDEO_EXPERIMENT_SUBTYPE_FIELD_NUMBER; + hash = (53 * hash) + videoExperimentSubtype_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.common.VideoExperimentInfo 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.v24.common.VideoExperimentInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.common.VideoExperimentInfo 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.v24.common.VideoExperimentInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.common.VideoExperimentInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.common.VideoExperimentInfo 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Configuration for a Video experiment.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.common.VideoExperimentInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.common.VideoExperimentInfo) + com.google.ads.googleads.v24.common.VideoExperimentInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.common.VideoExperimentInfo.class, com.google.ads.googleads.v24.common.VideoExperimentInfo.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.common.VideoExperimentInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + videoExperimentSubtype_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.common.ExperimentTypesProto.internal_static_google_ads_googleads_v24_common_VideoExperimentInfo_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.common.VideoExperimentInfo getDefaultInstanceForType() { + return com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.common.VideoExperimentInfo build() { + com.google.ads.googleads.v24.common.VideoExperimentInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.common.VideoExperimentInfo buildPartial() { + com.google.ads.googleads.v24.common.VideoExperimentInfo result = new com.google.ads.googleads.v24.common.VideoExperimentInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.ads.googleads.v24.common.VideoExperimentInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.videoExperimentSubtype_ = videoExperimentSubtype_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.common.VideoExperimentInfo) { + return mergeFrom((com.google.ads.googleads.v24.common.VideoExperimentInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.common.VideoExperimentInfo other) { + if (other == com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance()) return this; + if (other.videoExperimentSubtype_ != 0) { + setVideoExperimentSubtypeValue(other.getVideoExperimentSubtypeValue()); + } + 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 8: { + videoExperimentSubtype_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + 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 videoExperimentSubtype_ = 0; + /** + *
+     * The subtype of the Video experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @return The enum numeric value on the wire for videoExperimentSubtype. + */ + @java.lang.Override public int getVideoExperimentSubtypeValue() { + return videoExperimentSubtype_; + } + /** + *
+     * The subtype of the Video experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @param value The enum numeric value on the wire for videoExperimentSubtype to set. + * @return This builder for chaining. + */ + public Builder setVideoExperimentSubtypeValue(int value) { + videoExperimentSubtype_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+     * The subtype of the Video experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @return The videoExperimentSubtype. + */ + @java.lang.Override + public com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype getVideoExperimentSubtype() { + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype result = com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype.forNumber(videoExperimentSubtype_); + return result == null ? com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype.UNRECOGNIZED : result; + } + /** + *
+     * The subtype of the Video experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @param value The videoExperimentSubtype to set. + * @return This builder for chaining. + */ + public Builder setVideoExperimentSubtype(com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype value) { + if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000001; + videoExperimentSubtype_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+     * The subtype of the Video experiment.
+     * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @return This builder for chaining. + */ + public Builder clearVideoExperimentSubtype() { + bitField0_ = (bitField0_ & ~0x00000001); + videoExperimentSubtype_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.common.VideoExperimentInfo) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.common.VideoExperimentInfo) + private static final com.google.ads.googleads.v24.common.VideoExperimentInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.common.VideoExperimentInfo(); + } + + public static com.google.ads.googleads.v24.common.VideoExperimentInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VideoExperimentInfo 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.v24.common.VideoExperimentInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VideoExperimentInfoOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VideoExperimentInfoOrBuilder.java new file mode 100644 index 000000000..360c6498c --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/common/VideoExperimentInfoOrBuilder.java @@ -0,0 +1,31 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/common/experiment_types.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.common; + +@com.google.protobuf.Generated +public interface VideoExperimentInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.common.VideoExperimentInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * The subtype of the Video experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @return The enum numeric value on the wire for videoExperimentSubtype. + */ + int getVideoExperimentSubtypeValue(); + /** + *
+   * The subtype of the Video experiment.
+   * 
+ * + * .google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype video_experiment_subtype = 1; + * @return The videoExperimentSubtype. + */ + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype getVideoExperimentSubtype(); +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeEnum.java index 9ade0ef4f..1e3c42676 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeEnum.java @@ -346,6 +346,14 @@ public enum AssetFieldType * CALL_TO_ACTION = 40; */ CALL_TO_ACTION(40), + /** + *
+     * The asset is linked for use as a classic display image.
+     * 
+ * + * CLASSIC_DISPLAY_IMAGE = 47; + */ + CLASSIC_DISPLAY_IMAGE(47), UNRECOGNIZED(-1), ; @@ -648,6 +656,14 @@ public enum AssetFieldType * CALL_TO_ACTION = 40; */ public static final int CALL_TO_ACTION_VALUE = 40; + /** + *
+     * The asset is linked for use as a classic display image.
+     * 
+ * + * CLASSIC_DISPLAY_IMAGE = 47; + */ + public static final int CLASSIC_DISPLAY_IMAGE_VALUE = 47; public final int getNumber() { @@ -710,6 +726,7 @@ public static AssetFieldType forNumber(int value) { case 38: return LANDING_PAGE_PREVIEW; case 39: return LONG_DESCRIPTION; case 40: return CALL_TO_ACTION; + case 47: return CLASSIC_DISPLAY_IMAGE; default: return null; } } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeProto.java index 69569f690..26bf6b16a 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/AssetFieldTypeProto.java @@ -42,7 +42,7 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n5google/ads/googleads/v24/enums/asset_f" + "ield_type.proto\022\036google.ads.googleads.v2" + - "4.enums\"\345\005\n\022AssetFieldTypeEnum\"\316\005\n\016Asset" + + "4.enums\"\200\006\n\022AssetFieldTypeEnum\"\351\005\n\016Asset" + "FieldType\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001\022" + "\014\n\010HEADLINE\020\002\022\017\n\013DESCRIPTION\020\003\022\025\n\021MANDAT" + "ORY_AD_TEXT\020\004\022\023\n\017MARKETING_IMAGE\020\005\022\020\n\014ME" + @@ -60,13 +60,14 @@ public static void registerAllExtensions( "\n\020BUSINESS_MESSAGE\020\037\022!\n\035TALL_PORTRAIT_MA" + "RKETING_IMAGE\020 \022\032\n\026RELATED_YOUTUBE_VIDEO" + "S\020!\022\030\n\024LANDING_PAGE_PREVIEW\020&\022\024\n\020LONG_DE" + - "SCRIPTION\020\'\022\022\n\016CALL_TO_ACTION\020(B\355\001\n\"com." + - "google.ads.googleads.v24.enumsB\023AssetFie" + - "ldTypeProtoP\001ZCgoogle.golang.org/genprot" + - "o/googleapis/ads/googleads/v24/enums;enu" + - "ms\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V24.Enum" + - "s\312\002\036Google\\Ads\\GoogleAds\\V24\\Enums\352\002\"Goo" + - "gle::Ads::GoogleAds::V24::Enumsb\006proto3" + "SCRIPTION\020\'\022\022\n\016CALL_TO_ACTION\020(\022\031\n\025CLASS" + + "IC_DISPLAY_IMAGE\020/B\355\001\n\"com.google.ads.go" + + "ogleads.v24.enumsB\023AssetFieldTypeProtoP\001" + + "ZCgoogle.golang.org/genproto/googleapis/" + + "ads/googleads/v24/enums;enums\242\002\003GAA\252\002\036Go" + + "ogle.Ads.GoogleAds.V24.Enums\312\002\036Google\\Ad" + + "s\\GoogleAds\\V24\\Enums\352\002\"Google::Ads::Goo" + + "gleAds::V24::Enumsb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ConversionActionTypeEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ConversionActionTypeEnum.java index e526b090e..35f81a522 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ConversionActionTypeEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ConversionActionTypeEnum.java @@ -319,9 +319,10 @@ public enum ConversionActionType LEAD_FORM_SUBMIT(29), /** *
-     * Deprecated: The Salesforce integration will be going away and
-     * replaced with an improved way to import your conversions from Salesforce.
-     * - see https://support.google.com/google-ads/answer/14728349
+     * Deprecated: The Salesforce integration ended on May 31, 2025.
+     * See
+     * [Legacy Salesforce integration for conversions upgrade
+     * FAQ](//support.google.com/google-ads/answer/14728349).
      * 
* * SALESFORCE = 30 [deprecated = true]; @@ -392,7 +393,8 @@ public enum ConversionActionType WEBPAGE_CODELESS(37), /** *
-     * Conversions that come from linked Universal Analytics goals.
+     * Conversions that come from linked Universal Analytics goals. Universal
+     * Analytics is sunset, and has been replaced by Google Analytics.
      * 
* * UNIVERSAL_ANALYTICS_GOAL = 38; @@ -401,6 +403,7 @@ public enum ConversionActionType /** *
      * Conversions that come from linked Universal Analytics transactions.
+     * Universal Analytics is sunset, and has been replaced by Google Analytics.
      * 
* * UNIVERSAL_ANALYTICS_TRANSACTION = 39; @@ -408,7 +411,7 @@ public enum ConversionActionType UNIVERSAL_ANALYTICS_TRANSACTION(39), /** *
-     * Conversions that come from linked Google Analytics 4 custom event
+     * Conversions that come from linked Google Analytics custom event
      * conversions.
      * 
* @@ -417,7 +420,7 @@ public enum ConversionActionType GOOGLE_ANALYTICS_4_CUSTOM(40), /** *
-     * Conversions that come from linked Google Analytics 4 purchase
+     * Conversions that come from linked Google Analytics purchase
      * conversions.
      * 
* @@ -426,7 +429,7 @@ public enum ConversionActionType GOOGLE_ANALYTICS_4_PURCHASE(41), /** *
-     * Conversions that come from linked Google Analytics 4 generate lead
+     * Conversions that come from linked Google Analytics generate lead
      * conversions.
      * 
* @@ -435,7 +438,7 @@ public enum ConversionActionType GOOGLE_ANALYTICS_4_GENERATE_LEAD(42), /** *
-     * Conversions that come from linked Google Analytics 4 qualify lead
+     * Conversions that come from linked Google Analytics qualify lead
      * conversions.
      * 
* @@ -444,7 +447,7 @@ public enum ConversionActionType GOOGLE_ANALYTICS_4_QUALIFY_LEAD(43), /** *
-     * Conversions that come from linked Google Analytics 4 close convert lead
+     * Conversions that come from linked Google Analytics close convert lead
      * conversions.
      * 
* @@ -780,9 +783,10 @@ public enum ConversionActionType public static final int LEAD_FORM_SUBMIT_VALUE = 29; /** *
-     * Deprecated: The Salesforce integration will be going away and
-     * replaced with an improved way to import your conversions from Salesforce.
-     * - see https://support.google.com/google-ads/answer/14728349
+     * Deprecated: The Salesforce integration ended on May 31, 2025.
+     * See
+     * [Legacy Salesforce integration for conversions upgrade
+     * FAQ](//support.google.com/google-ads/answer/14728349).
      * 
* * SALESFORCE = 30 [deprecated = true]; @@ -852,7 +856,8 @@ public enum ConversionActionType public static final int WEBPAGE_CODELESS_VALUE = 37; /** *
-     * Conversions that come from linked Universal Analytics goals.
+     * Conversions that come from linked Universal Analytics goals. Universal
+     * Analytics is sunset, and has been replaced by Google Analytics.
      * 
* * UNIVERSAL_ANALYTICS_GOAL = 38; @@ -861,6 +866,7 @@ public enum ConversionActionType /** *
      * Conversions that come from linked Universal Analytics transactions.
+     * Universal Analytics is sunset, and has been replaced by Google Analytics.
      * 
* * UNIVERSAL_ANALYTICS_TRANSACTION = 39; @@ -868,7 +874,7 @@ public enum ConversionActionType public static final int UNIVERSAL_ANALYTICS_TRANSACTION_VALUE = 39; /** *
-     * Conversions that come from linked Google Analytics 4 custom event
+     * Conversions that come from linked Google Analytics custom event
      * conversions.
      * 
* @@ -877,7 +883,7 @@ public enum ConversionActionType public static final int GOOGLE_ANALYTICS_4_CUSTOM_VALUE = 40; /** *
-     * Conversions that come from linked Google Analytics 4 purchase
+     * Conversions that come from linked Google Analytics purchase
      * conversions.
      * 
* @@ -886,7 +892,7 @@ public enum ConversionActionType public static final int GOOGLE_ANALYTICS_4_PURCHASE_VALUE = 41; /** *
-     * Conversions that come from linked Google Analytics 4 generate lead
+     * Conversions that come from linked Google Analytics generate lead
      * conversions.
      * 
* @@ -895,7 +901,7 @@ public enum ConversionActionType public static final int GOOGLE_ANALYTICS_4_GENERATE_LEAD_VALUE = 42; /** *
-     * Conversions that come from linked Google Analytics 4 qualify lead
+     * Conversions that come from linked Google Analytics qualify lead
      * conversions.
      * 
* @@ -904,7 +910,7 @@ public enum ConversionActionType public static final int GOOGLE_ANALYTICS_4_QUALIFY_LEAD_VALUE = 43; /** *
-     * Conversions that come from linked Google Analytics 4 close convert lead
+     * Conversions that come from linked Google Analytics close convert lead
      * conversions.
      * 
* diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationEnum.java new file mode 100644 index 000000000..a600a7ed8 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationEnum.java @@ -0,0 +1,538 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/experiment_asset_detail_operation.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +/** + *
+ * Container for enum describing the type of experiment asset detail operation.
+ * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum} + */ +@com.google.protobuf.Generated +public final class ExperimentAssetDetailOperationEnum extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum) + ExperimentAssetDetailOperationEnumOrBuilder { +private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + ExperimentAssetDetailOperationEnum.class.getName()); + } + // Use ExperimentAssetDetailOperationEnum.newBuilder() to construct. + private ExperimentAssetDetailOperationEnum(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ExperimentAssetDetailOperationEnum() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationProto.internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationProto.internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.class, com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.Builder.class); + } + + /** + *
+   * The type of the experiment asset detail operation.
+   * 
+ * + * Protobuf enum {@code google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation} + */ + public enum ExperimentAssetDetailOperation + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + UNSPECIFIED(0), + /** + *
+     * The value is unknown in this version.
+     * 
+ * + * UNKNOWN = 1; + */ + UNKNOWN(1), + /** + *
+     * Asset is attached to the ad.
+     * 
+ * + * ADD = 2; + */ + ADD(2), + /** + *
+     * Asset is removed from the ad.
+     * 
+ * + * REMOVE = 3; + */ + REMOVE(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + ExperimentAssetDetailOperation.class.getName()); + } + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + public static final int UNSPECIFIED_VALUE = 0; + /** + *
+     * The value is unknown in this version.
+     * 
+ * + * UNKNOWN = 1; + */ + public static final int UNKNOWN_VALUE = 1; + /** + *
+     * Asset is attached to the ad.
+     * 
+ * + * ADD = 2; + */ + public static final int ADD_VALUE = 2; + /** + *
+     * Asset is removed from the ad.
+     * 
+ * + * REMOVE = 3; + */ + public static final int REMOVE_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ExperimentAssetDetailOperation valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ExperimentAssetDetailOperation forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED; + case 1: return UNKNOWN; + case 2: return ADD; + case 3: return REMOVE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ExperimentAssetDetailOperation> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ExperimentAssetDetailOperation findValueByNumber(int number) { + return ExperimentAssetDetailOperation.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.getDescriptor().getEnumTypes().get(0); + } + + private static final ExperimentAssetDetailOperation[] VALUES = values(); + + public static ExperimentAssetDetailOperation valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ExperimentAssetDetailOperation(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.v24.enums.ExperimentAssetDetailOperationEnum)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum other = (com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum 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.v24.enums.ExperimentAssetDetailOperationEnum parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum 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.v24.enums.ExperimentAssetDetailOperationEnum parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.enums.ExperimentAssetDetailOperationEnum 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Container for enum describing the type of experiment asset detail operation.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum) + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnumOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationProto.internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationProto.internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.class, com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationProto.internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum getDefaultInstanceForType() { + return com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum build() { + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum buildPartial() { + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum result = new com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum) { + return mergeFrom((com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum other) { + if (other == com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.getDefaultInstance()) return this; + 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; + 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; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum) + private static final com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum(); + } + + public static com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ExperimentAssetDetailOperationEnum 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.v24.enums.ExperimentAssetDetailOperationEnum getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationEnumOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationEnumOrBuilder.java new file mode 100644 index 000000000..f3f00840c --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationEnumOrBuilder.java @@ -0,0 +1,12 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/experiment_asset_detail_operation.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public interface ExperimentAssetDetailOperationEnumOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum) + com.google.protobuf.MessageOrBuilder { +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationProto.java new file mode 100644 index 000000000..acb006ce8 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentAssetDetailOperationProto.java @@ -0,0 +1,71 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/experiment_asset_detail_operation.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public final class ExperimentAssetDetailOperationProto { + private ExperimentAssetDetailOperationProto() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + ExperimentAssetDetailOperationProto.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\nFgoogle/ads/googleads/v24/enums/experim" + + "ent_asset_detail_operation.proto\022\036google" + + ".ads.googleads.v24.enums\"y\n\"ExperimentAs" + + "setDetailOperationEnum\"S\n\036ExperimentAsse" + + "tDetailOperation\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNK" + + "NOWN\020\001\022\007\n\003ADD\020\002\022\n\n\006REMOVE\020\003B\375\001\n\"com.goog" + + "le.ads.googleads.v24.enumsB#ExperimentAs" + + "setDetailOperationProtoP\001ZCgoogle.golang" + + ".org/genproto/googleapis/ads/googleads/v" + + "24/enums;enums\242\002\003GAA\252\002\036Google.Ads.Google" + + "Ads.V24.Enums\312\002\036Google\\Ads\\GoogleAds\\V24" + + "\\Enums\352\002\"Google::Ads::GoogleAds::V24::En" + + "umsb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_enums_ExperimentAssetDetailOperationEnum_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeEnum.java index 0e6375f56..ead83bd58 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeEnum.java @@ -152,6 +152,41 @@ public enum ExperimentType * HOTEL_CUSTOM = 12; */ HOTEL_CUSTOM(12), + /** + *
+     * A custom experiment for optimizing assets.
+     * 
+ * + * OPTIMIZE_ASSETS = 13; + */ + OPTIMIZE_ASSETS(13), + /** + *
+     * An experiment that tests how AI Max can help you engage more customers
+     * with Google AI and broad match keywords.
+     * 
+ * + * ADOPT_AI_MAX = 14; + */ + ADOPT_AI_MAX(14), + /** + *
+     * An experiment that tests how broad match keywords can impact the number
+     * of searches your ads appear in.
+     * 
+ * + * ADOPT_BROAD_MATCH_KEYWORDS = 15; + */ + ADOPT_BROAD_MATCH_KEYWORDS(15), + /** + *
+     * An experiment that tests how your Shopping campaigns perform compared to
+     * Performance Max.
+     * 
+ * + * PMAX_REPLACEMENT_SHOPPING = 16; + */ + PMAX_REPLACEMENT_SHOPPING(16), UNRECOGNIZED(-1), ; @@ -260,6 +295,41 @@ public enum ExperimentType * HOTEL_CUSTOM = 12; */ public static final int HOTEL_CUSTOM_VALUE = 12; + /** + *
+     * A custom experiment for optimizing assets.
+     * 
+ * + * OPTIMIZE_ASSETS = 13; + */ + public static final int OPTIMIZE_ASSETS_VALUE = 13; + /** + *
+     * An experiment that tests how AI Max can help you engage more customers
+     * with Google AI and broad match keywords.
+     * 
+ * + * ADOPT_AI_MAX = 14; + */ + public static final int ADOPT_AI_MAX_VALUE = 14; + /** + *
+     * An experiment that tests how broad match keywords can impact the number
+     * of searches your ads appear in.
+     * 
+ * + * ADOPT_BROAD_MATCH_KEYWORDS = 15; + */ + public static final int ADOPT_BROAD_MATCH_KEYWORDS_VALUE = 15; + /** + *
+     * An experiment that tests how your Shopping campaigns perform compared to
+     * Performance Max.
+     * 
+ * + * PMAX_REPLACEMENT_SHOPPING = 16; + */ + public static final int PMAX_REPLACEMENT_SHOPPING_VALUE = 16; public final int getNumber() { @@ -298,6 +368,10 @@ public static ExperimentType forNumber(int value) { case 10: return SHOPPING_AUTOMATED_BIDDING_STRATEGY; case 11: return SMART_MATCHING; case 12: return HOTEL_CUSTOM; + case 13: return OPTIMIZE_ASSETS; + case 14: return ADOPT_AI_MAX; + case 15: return ADOPT_BROAD_MATCH_KEYWORDS; + case 16: return PMAX_REPLACEMENT_SHOPPING; default: return null; } } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeProto.java index fefca8ac5..c9fded017 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ExperimentTypeProto.java @@ -42,7 +42,7 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n4google/ads/googleads/v24/enums/experim" + "ent_type.proto\022\036google.ads.googleads.v24" + - ".enums\"\313\002\n\022ExperimentTypeEnum\"\264\002\n\016Experi" + + ".enums\"\261\003\n\022ExperimentTypeEnum\"\232\003\n\016Experi" + "mentType\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001\022\031" + "\n\025DISPLAY_AND_VIDEO_360\020\002\022\020\n\014AD_VARIATIO" + "N\020\003\022\022\n\016YOUTUBE_CUSTOM\020\005\022\022\n\016DISPLAY_CUSTO" + @@ -50,13 +50,16 @@ public static void registerAllExtensions( "TED_BIDDING_STRATEGY\020\010\022%\n!SEARCH_AUTOMAT" + "ED_BIDDING_STRATEGY\020\t\022\'\n#SHOPPING_AUTOMA" + "TED_BIDDING_STRATEGY\020\n\022\022\n\016SMART_MATCHING" + - "\020\013\022\020\n\014HOTEL_CUSTOM\020\014B\355\001\n\"com.google.ads." + - "googleads.v24.enumsB\023ExperimentTypeProto" + - "P\001ZCgoogle.golang.org/genproto/googleapi" + - "s/ads/googleads/v24/enums;enums\242\002\003GAA\252\002\036" + - "Google.Ads.GoogleAds.V24.Enums\312\002\036Google\\" + - "Ads\\GoogleAds\\V24\\Enums\352\002\"Google::Ads::G" + - "oogleAds::V24::Enumsb\006proto3" + "\020\013\022\020\n\014HOTEL_CUSTOM\020\014\022\023\n\017OPTIMIZE_ASSETS\020" + + "\r\022\020\n\014ADOPT_AI_MAX\020\016\022\036\n\032ADOPT_BROAD_MATCH" + + "_KEYWORDS\020\017\022\035\n\031PMAX_REPLACEMENT_SHOPPING" + + "\020\020B\355\001\n\"com.google.ads.googleads.v24.enum" + + "sB\023ExperimentTypeProtoP\001ZCgoogle.golang." + + "org/genproto/googleapis/ads/googleads/v2" + + "4/enums;enums\242\002\003GAA\252\002\036Google.Ads.GoogleA" + + "ds.V24.Enums\312\002\036Google\\Ads\\GoogleAds\\V24\\" + + "Enums\352\002\"Google::Ads::GoogleAds::V24::Enu" + + "msb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformEnum.java new file mode 100644 index 000000000..fbe6ef368 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformEnum.java @@ -0,0 +1,574 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/mobile_device_platform.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +/** + *
+ * Container for enumeration of Google Ads mobile device platforms.
+ * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.MobileDevicePlatformEnum} + */ +@com.google.protobuf.Generated +public final class MobileDevicePlatformEnum extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.enums.MobileDevicePlatformEnum) + MobileDevicePlatformEnumOrBuilder { +private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + MobileDevicePlatformEnum.class.getName()); + } + // Use MobileDevicePlatformEnum.newBuilder() to construct. + private MobileDevicePlatformEnum(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private MobileDevicePlatformEnum() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.MobileDevicePlatformProto.internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.MobileDevicePlatformProto.internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.class, com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.Builder.class); + } + + /** + *
+   * Enum describing the mobile device platform.
+   * 
+ * + * Protobuf enum {@code google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform} + */ + public enum MobileDevicePlatform + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + UNSPECIFIED(0), + /** + *
+     * Used for return value only. Represents value unknown in this version.
+     * Non-mobile and non-desktop devices will fall into this segment.
+     * 
+ * + * UNKNOWN = 1; + */ + UNKNOWN(1), + /** + *
+     * Android devices.
+     * 
+ * + * ANDROID = 2; + */ + ANDROID(2), + /** + *
+     * iOS devices.
+     * 
+ * + * IOS = 3; + */ + IOS(3), + /** + *
+     * Mobile devices that are not Android or iOS devices.
+     * 
+ * + * OTHER_MOBILE = 4; + */ + OTHER_MOBILE(4), + /** + *
+     * Desktop devices.
+     * 
+ * + * DESKTOP = 5; + */ + DESKTOP(5), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + MobileDevicePlatform.class.getName()); + } + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + public static final int UNSPECIFIED_VALUE = 0; + /** + *
+     * Used for return value only. Represents value unknown in this version.
+     * Non-mobile and non-desktop devices will fall into this segment.
+     * 
+ * + * UNKNOWN = 1; + */ + public static final int UNKNOWN_VALUE = 1; + /** + *
+     * Android devices.
+     * 
+ * + * ANDROID = 2; + */ + public static final int ANDROID_VALUE = 2; + /** + *
+     * iOS devices.
+     * 
+ * + * IOS = 3; + */ + public static final int IOS_VALUE = 3; + /** + *
+     * Mobile devices that are not Android or iOS devices.
+     * 
+ * + * OTHER_MOBILE = 4; + */ + public static final int OTHER_MOBILE_VALUE = 4; + /** + *
+     * Desktop devices.
+     * 
+ * + * DESKTOP = 5; + */ + public static final int DESKTOP_VALUE = 5; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MobileDevicePlatform valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static MobileDevicePlatform forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED; + case 1: return UNKNOWN; + case 2: return ANDROID; + case 3: return IOS; + case 4: return OTHER_MOBILE; + case 5: return DESKTOP; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + MobileDevicePlatform> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public MobileDevicePlatform findValueByNumber(int number) { + return MobileDevicePlatform.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.getDescriptor().getEnumTypes().get(0); + } + + private static final MobileDevicePlatform[] VALUES = values(); + + public static MobileDevicePlatform valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private MobileDevicePlatform(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.ads.googleads.v24.enums.MobileDevicePlatformEnum.MobileDevicePlatform) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.v24.enums.MobileDevicePlatformEnum)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum other = (com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum 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.v24.enums.MobileDevicePlatformEnum parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum 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.v24.enums.MobileDevicePlatformEnum parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.enums.MobileDevicePlatformEnum 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Container for enumeration of Google Ads mobile device platforms.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.MobileDevicePlatformEnum} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.enums.MobileDevicePlatformEnum) + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnumOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.MobileDevicePlatformProto.internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.MobileDevicePlatformProto.internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.class, com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.enums.MobileDevicePlatformProto.internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum getDefaultInstanceForType() { + return com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum build() { + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum buildPartial() { + com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum result = new com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum) { + return mergeFrom((com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum other) { + if (other == com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum.getDefaultInstance()) return this; + 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; + 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; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.enums.MobileDevicePlatformEnum) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.enums.MobileDevicePlatformEnum) + private static final com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum(); + } + + public static com.google.ads.googleads.v24.enums.MobileDevicePlatformEnum getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MobileDevicePlatformEnum 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.v24.enums.MobileDevicePlatformEnum getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformEnumOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformEnumOrBuilder.java new file mode 100644 index 000000000..9bc5f4369 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformEnumOrBuilder.java @@ -0,0 +1,12 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/mobile_device_platform.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public interface MobileDevicePlatformEnumOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.enums.MobileDevicePlatformEnum) + com.google.protobuf.MessageOrBuilder { +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformProto.java new file mode 100644 index 000000000..b1355d13e --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/MobileDevicePlatformProto.java @@ -0,0 +1,71 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/mobile_device_platform.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public final class MobileDevicePlatformProto { + private MobileDevicePlatformProto() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + MobileDevicePlatformProto.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n;google/ads/googleads/v24/enums/mobile_" + + "device_platform.proto\022\036google.ads.google" + + "ads.v24.enums\"\205\001\n\030MobileDevicePlatformEn" + + "um\"i\n\024MobileDevicePlatform\022\017\n\013UNSPECIFIE" + + "D\020\000\022\013\n\007UNKNOWN\020\001\022\013\n\007ANDROID\020\002\022\007\n\003IOS\020\003\022\020" + + "\n\014OTHER_MOBILE\020\004\022\013\n\007DESKTOP\020\005B\363\001\n\"com.go" + + "ogle.ads.googleads.v24.enumsB\031MobileDevi" + + "cePlatformProtoP\001ZCgoogle.golang.org/gen" + + "proto/googleapis/ads/googleads/v24/enums" + + ";enums\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V24." + + "Enums\312\002\036Google\\Ads\\GoogleAds\\V24\\Enums\352\002" + + "\"Google::Ads::GoogleAds::V24::Enumsb\006pro" + + "to3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_enums_MobileDevicePlatformEnum_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeEnum.java new file mode 100644 index 000000000..a18d84fd3 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeEnum.java @@ -0,0 +1,561 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/optimize_assets_experiment_subtype.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +/** + *
+ * Indicates the subtype of an optimize assets experiment.
+ * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum} + */ +@com.google.protobuf.Generated +public final class OptimizeAssetsExperimentSubtypeEnum extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum) + OptimizeAssetsExperimentSubtypeEnumOrBuilder { +private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + OptimizeAssetsExperimentSubtypeEnum.class.getName()); + } + // Use OptimizeAssetsExperimentSubtypeEnum.newBuilder() to construct. + private OptimizeAssetsExperimentSubtypeEnum(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private OptimizeAssetsExperimentSubtypeEnum() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.class, com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.Builder.class); + } + + /** + *
+   * The enum describing optimize assets subtype.
+   * 
+ * + * Protobuf enum {@code google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype} + */ + public enum OptimizeAssetsExperimentSubtype + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + UNSPECIFIED(0), + /** + *
+     * The value is unknown in this version.
+     * 
+ * + * UNKNOWN = 1; + */ + UNKNOWN(1), + /** + *
+     * The experiment is testing adding assets to
+     * assetless retail PMax experiment.
+     * 
+ * + * ADD_ASSETS_TO_ASSETLESS_RETAIL = 2; + */ + ADD_ASSETS_TO_ASSETLESS_RETAIL(2), + /** + *
+     * The experiment is testing adding video assets to
+     * videoless PMax experiment.
+     * 
+ * + * ADD_VIDEO_ASSETS_TO_VIDEOLESS = 3; + */ + ADD_VIDEO_ASSETS_TO_VIDEOLESS(3), + /** + *
+     * The experiment is testing comparing two different sets
+     * of assets in a PMax experiment.
+     * 
+ * + * COMPARE_ASSETS = 4; + */ + COMPARE_ASSETS(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + OptimizeAssetsExperimentSubtype.class.getName()); + } + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + public static final int UNSPECIFIED_VALUE = 0; + /** + *
+     * The value is unknown in this version.
+     * 
+ * + * UNKNOWN = 1; + */ + public static final int UNKNOWN_VALUE = 1; + /** + *
+     * The experiment is testing adding assets to
+     * assetless retail PMax experiment.
+     * 
+ * + * ADD_ASSETS_TO_ASSETLESS_RETAIL = 2; + */ + public static final int ADD_ASSETS_TO_ASSETLESS_RETAIL_VALUE = 2; + /** + *
+     * The experiment is testing adding video assets to
+     * videoless PMax experiment.
+     * 
+ * + * ADD_VIDEO_ASSETS_TO_VIDEOLESS = 3; + */ + public static final int ADD_VIDEO_ASSETS_TO_VIDEOLESS_VALUE = 3; + /** + *
+     * The experiment is testing comparing two different sets
+     * of assets in a PMax experiment.
+     * 
+ * + * COMPARE_ASSETS = 4; + */ + public static final int COMPARE_ASSETS_VALUE = 4; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static OptimizeAssetsExperimentSubtype valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static OptimizeAssetsExperimentSubtype forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED; + case 1: return UNKNOWN; + case 2: return ADD_ASSETS_TO_ASSETLESS_RETAIL; + case 3: return ADD_VIDEO_ASSETS_TO_VIDEOLESS; + case 4: return COMPARE_ASSETS; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + OptimizeAssetsExperimentSubtype> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public OptimizeAssetsExperimentSubtype findValueByNumber(int number) { + return OptimizeAssetsExperimentSubtype.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.getDescriptor().getEnumTypes().get(0); + } + + private static final OptimizeAssetsExperimentSubtype[] VALUES = values(); + + public static OptimizeAssetsExperimentSubtype valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private OptimizeAssetsExperimentSubtype(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.OptimizeAssetsExperimentSubtype) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.v24.enums.OptimizeAssetsExperimentSubtypeEnum)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum other = (com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum 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.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum 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.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.enums.OptimizeAssetsExperimentSubtypeEnum 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Indicates the subtype of an optimize assets experiment.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum) + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnumOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.class, com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum getDefaultInstanceForType() { + return com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum build() { + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum buildPartial() { + com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum result = new com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum) { + return mergeFrom((com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum other) { + if (other == com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum.getDefaultInstance()) return this; + 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; + 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; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum) + private static final com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum(); + } + + public static com.google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public OptimizeAssetsExperimentSubtypeEnum 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.v24.enums.OptimizeAssetsExperimentSubtypeEnum getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeEnumOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeEnumOrBuilder.java new file mode 100644 index 000000000..932edd693 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeEnumOrBuilder.java @@ -0,0 +1,12 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/optimize_assets_experiment_subtype.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public interface OptimizeAssetsExperimentSubtypeEnumOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.enums.OptimizeAssetsExperimentSubtypeEnum) + com.google.protobuf.MessageOrBuilder { +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeProto.java new file mode 100644 index 000000000..44cda7eb7 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/OptimizeAssetsExperimentSubtypeProto.java @@ -0,0 +1,73 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/optimize_assets_experiment_subtype.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public final class OptimizeAssetsExperimentSubtypeProto { + private OptimizeAssetsExperimentSubtypeProto() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + OptimizeAssetsExperimentSubtypeProto.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\nGgoogle/ads/googleads/v24/enums/optimiz" + + "e_assets_experiment_subtype.proto\022\036googl" + + "e.ads.googleads.v24.enums\"\302\001\n#OptimizeAs" + + "setsExperimentSubtypeEnum\"\232\001\n\037OptimizeAs" + + "setsExperimentSubtype\022\017\n\013UNSPECIFIED\020\000\022\013" + + "\n\007UNKNOWN\020\001\022\"\n\036ADD_ASSETS_TO_ASSETLESS_R" + + "ETAIL\020\002\022!\n\035ADD_VIDEO_ASSETS_TO_VIDEOLESS" + + "\020\003\022\022\n\016COMPARE_ASSETS\020\004B\376\001\n\"com.google.ad" + + "s.googleads.v24.enumsB$OptimizeAssetsExp" + + "erimentSubtypeProtoP\001ZCgoogle.golang.org" + + "/genproto/googleapis/ads/googleads/v24/e" + + "nums;enums\242\002\003GAA\252\002\036Google.Ads.GoogleAds." + + "V24.Enums\312\002\036Google\\Ads\\GoogleAds\\V24\\Enu" + + "ms\352\002\"Google::Ads::GoogleAds::V24::Enumsb" + + "\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_enums_OptimizeAssetsExperimentSubtypeEnum_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerEnum.java index 53fa97a37..7c074baba 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerEnum.java @@ -90,6 +90,14 @@ public enum ThirdPartyViewabilityIntegrationPartner * INTEGRAL_AD_SCIENCE = 3; */ INTEGRAL_AD_SCIENCE(3), + /** + *
+     * Zefr.
+     * 
+ * + * ZEFR = 4; + */ + ZEFR(4), UNRECOGNIZED(-1), ; @@ -134,6 +142,14 @@ public enum ThirdPartyViewabilityIntegrationPartner * INTEGRAL_AD_SCIENCE = 3; */ public static final int INTEGRAL_AD_SCIENCE_VALUE = 3; + /** + *
+     * Zefr.
+     * 
+ * + * ZEFR = 4; + */ + public static final int ZEFR_VALUE = 4; public final int getNumber() { @@ -164,6 +180,7 @@ public static ThirdPartyViewabilityIntegrationPartner forNumber(int value) { case 1: return UNKNOWN; case 2: return DOUBLE_VERIFY; case 3: return INTEGRAL_AD_SCIENCE; + case 4: return ZEFR; default: return null; } } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerProto.java index a671067c3..76e5e220f 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/ThirdPartyViewabilityIntegrationPartnerProto.java @@ -42,18 +42,19 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\nPgoogle/ads/googleads/v24/enums/third_p" + "arty_viewability_integration_partner.pro" + - "to\022\036google.ads.googleads.v24.enums\"\242\001\n+T" + + "to\022\036google.ads.googleads.v24.enums\"\254\001\n+T" + "hirdPartyViewabilityIntegrationPartnerEn" + - "um\"s\n\'ThirdPartyViewabilityIntegrationPa" + + "um\"}\n\'ThirdPartyViewabilityIntegrationPa" + "rtner\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001\022\021\n\rD" + - "OUBLE_VERIFY\020\002\022\027\n\023INTEGRAL_AD_SCIENCE\020\003B" + - "\206\002\n\"com.google.ads.googleads.v24.enumsB," + - "ThirdPartyViewabilityIntegrationPartnerP" + - "rotoP\001ZCgoogle.golang.org/genproto/googl" + - "eapis/ads/googleads/v24/enums;enums\242\002\003GA" + - "A\252\002\036Google.Ads.GoogleAds.V24.Enums\312\002\036Goo" + - "gle\\Ads\\GoogleAds\\V24\\Enums\352\002\"Google::Ad" + - "s::GoogleAds::V24::Enumsb\006proto3" + "OUBLE_VERIFY\020\002\022\027\n\023INTEGRAL_AD_SCIENCE\020\003\022" + + "\010\n\004ZEFR\020\004B\206\002\n\"com.google.ads.googleads.v" + + "24.enumsB,ThirdPartyViewabilityIntegrati" + + "onPartnerProtoP\001ZCgoogle.golang.org/genp" + + "roto/googleapis/ads/googleads/v24/enums;" + + "enums\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V24.E" + + "nums\312\002\036Google\\Ads\\GoogleAds\\V24\\Enums\352\002\"" + + "Google::Ads::GoogleAds::V24::Enumsb\006prot" + + "o3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeEnum.java new file mode 100644 index 000000000..2b993ad73 --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeEnum.java @@ -0,0 +1,573 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/video_experiment_subtype.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +/** + *
+ * Describes the video experiment subtype to enforce appropriate validation
+ * rules and reporting structures. While ad serving is governed by the
+ * experiment type, this field determines which mutations are permitted (for
+ * example, restricting asset removal in uplift experiments) and how the
+ * experiment is categorized in reports.
+ * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum} + */ +@com.google.protobuf.Generated +public final class VideoExperimentSubtypeEnum extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum) + VideoExperimentSubtypeEnumOrBuilder { +private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + VideoExperimentSubtypeEnum.class.getName()); + } + // Use VideoExperimentSubtypeEnum.newBuilder() to construct. + private VideoExperimentSubtypeEnum(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VideoExperimentSubtypeEnum() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.VideoExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.VideoExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.class, com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.Builder.class); + } + + /** + *
+   * The enum describing video experiment subtype.
+   * 
+ * + * Protobuf enum {@code google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype} + */ + public enum VideoExperimentSubtype + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + UNSPECIFIED(0), + /** + *
+     * The value is unknown in this version.
+     * 
+ * + * UNKNOWN = 1; + */ + UNKNOWN(1), + /** + *
+     * The experiment is testing a Demand Gen asset experiment. User can add or
+     * delete assets from the control campaigns.
+     * 
+ * + * DEMAND_GEN_ASSET = 2; + */ + DEMAND_GEN_ASSET(2), + /** + *
+     * The experiment is testing ads with different video assets in the
+     * experimental campaign versus the control campaign. It applies to Video
+     * Campaigns where users can add or delete assets from control campaigns.
+     * 
+ * + * ASSET = 3; + */ + ASSET(3), + /** + *
+     * The experiment is testing video asset uplift (the performance impact of
+     * different video assets in a campaign). It applies to Video Campaigns
+     * where users can only add assets to control campaigns.
+     * 
+ * + * ASSET_UPLIFT = 4; + */ + ASSET_UPLIFT(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + VideoExperimentSubtype.class.getName()); + } + /** + *
+     * Not specified.
+     * 
+ * + * UNSPECIFIED = 0; + */ + public static final int UNSPECIFIED_VALUE = 0; + /** + *
+     * The value is unknown in this version.
+     * 
+ * + * UNKNOWN = 1; + */ + public static final int UNKNOWN_VALUE = 1; + /** + *
+     * The experiment is testing a Demand Gen asset experiment. User can add or
+     * delete assets from the control campaigns.
+     * 
+ * + * DEMAND_GEN_ASSET = 2; + */ + public static final int DEMAND_GEN_ASSET_VALUE = 2; + /** + *
+     * The experiment is testing ads with different video assets in the
+     * experimental campaign versus the control campaign. It applies to Video
+     * Campaigns where users can add or delete assets from control campaigns.
+     * 
+ * + * ASSET = 3; + */ + public static final int ASSET_VALUE = 3; + /** + *
+     * The experiment is testing video asset uplift (the performance impact of
+     * different video assets in a campaign). It applies to Video Campaigns
+     * where users can only add assets to control campaigns.
+     * 
+ * + * ASSET_UPLIFT = 4; + */ + public static final int ASSET_UPLIFT_VALUE = 4; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static VideoExperimentSubtype valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static VideoExperimentSubtype forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED; + case 1: return UNKNOWN; + case 2: return DEMAND_GEN_ASSET; + case 3: return ASSET; + case 4: return ASSET_UPLIFT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + VideoExperimentSubtype> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public VideoExperimentSubtype findValueByNumber(int number) { + return VideoExperimentSubtype.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.getDescriptor().getEnumTypes().get(0); + } + + private static final VideoExperimentSubtype[] VALUES = values(); + + public static VideoExperimentSubtype valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private VideoExperimentSubtype(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.VideoExperimentSubtype) + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.v24.enums.VideoExperimentSubtypeEnum)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum other = (com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum 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.v24.enums.VideoExperimentSubtypeEnum parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum 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.v24.enums.VideoExperimentSubtypeEnum parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.enums.VideoExperimentSubtypeEnum 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Describes the video experiment subtype to enforce appropriate validation
+   * rules and reporting structures. While ad serving is governed by the
+   * experiment type, this field determines which mutations are permitted (for
+   * example, restricting asset removal in uplift experiments) and how the
+   * experiment is categorized in reports.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum) + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnumOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.enums.VideoExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.enums.VideoExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.class, com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.enums.VideoExperimentSubtypeProto.internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum getDefaultInstanceForType() { + return com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum build() { + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum buildPartial() { + com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum result = new com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum) { + return mergeFrom((com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum other) { + if (other == com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum.getDefaultInstance()) return this; + 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; + 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; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum) + private static final com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum(); + } + + public static com.google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VideoExperimentSubtypeEnum 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.v24.enums.VideoExperimentSubtypeEnum getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeEnumOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeEnumOrBuilder.java new file mode 100644 index 000000000..ea4702aef --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeEnumOrBuilder.java @@ -0,0 +1,12 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/video_experiment_subtype.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public interface VideoExperimentSubtypeEnumOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.enums.VideoExperimentSubtypeEnum) + com.google.protobuf.MessageOrBuilder { +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeProto.java new file mode 100644 index 000000000..f6496d4ff --- /dev/null +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/enums/VideoExperimentSubtypeProto.java @@ -0,0 +1,71 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/ads/googleads/v24/enums/video_experiment_subtype.proto +// Protobuf Java Version: 4.31.0 + +package com.google.ads.googleads.v24.enums; + +@com.google.protobuf.Generated +public final class VideoExperimentSubtypeProto { + private VideoExperimentSubtypeProto() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + VideoExperimentSubtypeProto.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n=google/ads/googleads/v24/enums/video_e" + + "xperiment_subtype.proto\022\036google.ads.goog" + + "leads.v24.enums\"\207\001\n\032VideoExperimentSubty" + + "peEnum\"i\n\026VideoExperimentSubtype\022\017\n\013UNSP" + + "ECIFIED\020\000\022\013\n\007UNKNOWN\020\001\022\024\n\020DEMAND_GEN_ASS" + + "ET\020\002\022\t\n\005ASSET\020\003\022\020\n\014ASSET_UPLIFT\020\004B\365\001\n\"co" + + "m.google.ads.googleads.v24.enumsB\033VideoE" + + "xperimentSubtypeProtoP\001ZCgoogle.golang.o" + + "rg/genproto/googleapis/ads/googleads/v24" + + "/enums;enums\242\002\003GAA\252\002\036Google.Ads.GoogleAd" + + "s.V24.Enums\312\002\036Google\\Ads\\GoogleAds\\V24\\E" + + "nums\352\002\"Google::Ads::GoogleAds::V24::Enum" + + "sb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_enums_VideoExperimentSubtypeEnum_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorEnum.java index febb1aba1..4c8b44e42 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorEnum.java @@ -1463,6 +1463,14 @@ public enum CriterionError * RETAIL_FILTER_TAGS_REFERRING_TO_EXPRESSION = 185; */ RETAIL_FILTER_TAGS_REFERRING_TO_EXPRESSION(185), + /** + *
+     * Cannot exclude all demographic targets.
+     * 
+ * + * CANNOT_EXCLUDE_ALL_TARGETS = 186; + */ + CANNOT_EXCLUDE_ALL_TARGETS(186), UNRECOGNIZED(-1), ; @@ -2882,6 +2890,14 @@ public enum CriterionError * RETAIL_FILTER_TAGS_REFERRING_TO_EXPRESSION = 185; */ public static final int RETAIL_FILTER_TAGS_REFERRING_TO_EXPRESSION_VALUE = 185; + /** + *
+     * Cannot exclude all demographic targets.
+     * 
+ * + * CANNOT_EXCLUDE_ALL_TARGETS = 186; + */ + public static final int CANNOT_EXCLUDE_ALL_TARGETS_VALUE = 186; public final int getNumber() { @@ -3077,6 +3093,7 @@ public static CriterionError forNumber(int value) { case 183: return VERTICAL_ADS_ITEM_GROUP_RULE_NOT_SUPPORTED_FOR_THE_VERTICAL_TYPE; case 184: return RETAIL_FILTER_EXPRESSION_DOES_NOT_EXIST; case 185: return RETAIL_FILTER_TAGS_REFERRING_TO_EXPRESSION; + case 186: return CANNOT_EXCLUDE_ALL_TARGETS; default: return null; } } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorProto.java index 865caca2f..49ceee987 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/CriterionErrorProto.java @@ -42,7 +42,7 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n5google/ads/googleads/v24/errors/criter" + "ion_error.proto\022\037google.ads.googleads.v2" + - "4.errors\"\2048\n\022CriterionErrorEnum\"\3557\n\016Crit" + + "4.errors\"\2458\n\022CriterionErrorEnum\"\2168\n\016Crit" + "erionError\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001" + "\022\032\n\026CONCRETE_TYPE_REQUIRED\020\002\022\035\n\031INVALID_" + "EXCLUDED_CATEGORY\020\003\022\030\n\024INVALID_KEYWORD_T" + @@ -221,13 +221,14 @@ public static void registerAllExtensions( "ROUP_RULE_NOT_SUPPORTED_FOR_THE_VERTICAL" + "_TYPE\020\267\001\022,\n\'RETAIL_FILTER_EXPRESSION_DOE" + "S_NOT_EXIST\020\270\001\022/\n*RETAIL_FILTER_TAGS_REF" + - "ERRING_TO_EXPRESSION\020\271\001B\363\001\n#com.google.a" + - "ds.googleads.v24.errorsB\023CriterionErrorP" + - "rotoP\001ZEgoogle.golang.org/genproto/googl" + - "eapis/ads/googleads/v24/errors;errors\242\002\003" + - "GAA\252\002\037Google.Ads.GoogleAds.V24.Errors\312\002\037" + - "Google\\Ads\\GoogleAds\\V24\\Errors\352\002#Google" + - "::Ads::GoogleAds::V24::Errorsb\006proto3" + "ERRING_TO_EXPRESSION\020\271\001\022\037\n\032CANNOT_EXCLUD" + + "E_ALL_TARGETS\020\272\001B\363\001\n#com.google.ads.goog" + + "leads.v24.errorsB\023CriterionErrorProtoP\001Z" + + "Egoogle.golang.org/genproto/googleapis/a" + + "ds/googleads/v24/errors;errors\242\002\003GAA\252\002\037G" + + "oogle.Ads.GoogleAds.V24.Errors\312\002\037Google\\" + + "Ads\\GoogleAds\\V24\\Errors\352\002#Google::Ads::" + + "GoogleAds::V24::Errorsb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorEnum.java index d8d34583d..92bb2c646 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorEnum.java @@ -112,6 +112,16 @@ public enum DateRangeError * CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 6; */ CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED(6), + /** + *
+     * The requested time granularity is not supported for the date range in the
+     * query. Metrics with daily, hourly, or weekly segmentation are only
+     * available for the last 37 months.
+     * 
+ * + * REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED = 7; + */ + REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED(7), UNRECOGNIZED(-1), ; @@ -180,6 +190,16 @@ public enum DateRangeError * CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 6; */ public static final int CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED_VALUE = 6; + /** + *
+     * The requested time granularity is not supported for the date range in the
+     * query. Metrics with daily, hourly, or weekly segmentation are only
+     * available for the last 37 months.
+     * 
+ * + * REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED = 7; + */ + public static final int REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED_VALUE = 7; public final int getNumber() { @@ -213,6 +233,7 @@ public static DateRangeError forNumber(int value) { case 4: return CANNOT_SET_DATE_TO_PAST; case 5: return AFTER_MAXIMUM_ALLOWABLE_DATE; case 6: return CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED; + case 7: return REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED; default: return null; } } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorProto.java index a0d9a2232..bac1ac950 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/DateRangeErrorProto.java @@ -42,19 +42,20 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n6google/ads/googleads/v24/errors/date_r" + "ange_error.proto\022\037google.ads.googleads.v" + - "24.errors\"\346\001\n\022DateRangeErrorEnum\"\317\001\n\016Dat" + + "24.errors\"\224\002\n\022DateRangeErrorEnum\"\375\001\n\016Dat" + "eRangeError\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020" + "\001\022\020\n\014INVALID_DATE\020\002\022\035\n\031START_DATE_AFTER_" + "END_DATE\020\003\022\033\n\027CANNOT_SET_DATE_TO_PAST\020\004\022" + " \n\034AFTER_MAXIMUM_ALLOWABLE_DATE\020\005\022/\n+CAN" + "NOT_MODIFY_START_DATE_IF_ALREADY_STARTED" + - "\020\006B\363\001\n#com.google.ads.googleads.v24.erro" + - "rsB\023DateRangeErrorProtoP\001ZEgoogle.golang" + - ".org/genproto/googleapis/ads/googleads/v" + - "24/errors;errors\242\002\003GAA\252\002\037Google.Ads.Goog" + - "leAds.V24.Errors\312\002\037Google\\Ads\\GoogleAds\\" + - "V24\\Errors\352\002#Google::Ads::GoogleAds::V24" + - "::Errorsb\006proto3" + "\020\006\022,\n(REQUESTED_DATE_GRANULARITY_NOT_SUP" + + "PORTED\020\007B\363\001\n#com.google.ads.googleads.v2" + + "4.errorsB\023DateRangeErrorProtoP\001ZEgoogle." + + "golang.org/genproto/googleapis/ads/googl" + + "eads/v24/errors;errors\242\002\003GAA\252\002\037Google.Ad" + + "s.GoogleAds.V24.Errors\312\002\037Google\\Ads\\Goog" + + "leAds\\V24\\Errors\352\002#Google::Ads::GoogleAd" + + "s::V24::Errorsb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorEnum.java index 5c9c5e878..34f5b1206 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorEnum.java @@ -186,6 +186,77 @@ public enum ExperimentArmError * TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE = 15; */ TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE(15), + /** + *
+     * Shared budgets are not allowed in experiments.
+     * 
+ * + * BUDGET_MUST_NOT_BE_SHARED = 16; + */ + BUDGET_MUST_NOT_BE_SHARED(16), + /** + *
+     * Campaign must enable performance search setting for ADOPT_AI_MAX
+     * experiments.
+     * 
+ * + * ADOPT_AI_MAX_CAMPAIGN_MISSING_PERFORMANCE_SEARCH_ENABLED = 17; + */ + ADOPT_AI_MAX_CAMPAIGN_MISSING_PERFORMANCE_SEARCH_ENABLED(17), + /** + *
+     * Number of campaigns in the experiment arm is above limit.
+     * 
+ * + * TOO_MANY_CAMPAIGNS_IN_EXPERIMENT_ARM = 18; + */ + TOO_MANY_CAMPAIGNS_IN_EXPERIMENT_ARM(18), + /** + *
+     * AI Max experiments do not support campaigns with a target ROAS tolerance
+     * (see
+     * campaign.maximize_conversion_value.target_roas_tolerance_percent_millis).
+     * 
+ * + * CANNOT_ADD_CAMPAIGN_WITH_TARGET_ROAS_TOLERANCE_PERCENT_MILLIS = 19; + */ + CANNOT_ADD_CAMPAIGN_WITH_TARGET_ROAS_TOLERANCE_PERCENT_MILLIS(19), + /** + *
+     * A campaign cannot be added to multiple arms in one experiment. Use
+     * different campaigns in each arm of the experiment.
+     * 
+ * + * CANNOT_HAVE_SAME_CAMPAIGN_CROSS_ARMS_IN_ONE_EXPERIMENT = 20; + */ + CANNOT_HAVE_SAME_CAMPAIGN_CROSS_ARMS_IN_ONE_EXPERIMENT(20), + /** + *
+     * Campaigns in the ADOPT_BROAD_MATCH_KEYWORD experiment cannot target the
+     * Google Display Network.
+     * 
+ * + * SEARCH_PLUS_CAMPAIGN_NOT_ALLOWED = 21; + */ + SEARCH_PLUS_CAMPAIGN_NOT_ALLOWED(21), + /** + *
+     * An asset group asset cannot be added to multiple arms in one experiment.
+     * Use different asset group assets in each arm of the experiment.
+     * 
+ * + * DUPLICATE_ASSET_GROUP_ASSETS_BETWEEN_ARMS = 22; + */ + DUPLICATE_ASSET_GROUP_ASSETS_BETWEEN_ARMS(22), + /** + *
+     * An asset group asset cannot be used multiple times in one arm.
+     * Use different asset group assets in one arm of the experiment.
+     * 
+ * + * DUPLICATE_ASSET_GROUP_ASSETS_IN_ONE_ARM = 23; + */ + DUPLICATE_ASSET_GROUP_ASSETS_IN_ONE_ARM(23), UNRECOGNIZED(-1), ; @@ -328,6 +399,77 @@ public enum ExperimentArmError * TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE = 15; */ public static final int TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE_VALUE = 15; + /** + *
+     * Shared budgets are not allowed in experiments.
+     * 
+ * + * BUDGET_MUST_NOT_BE_SHARED = 16; + */ + public static final int BUDGET_MUST_NOT_BE_SHARED_VALUE = 16; + /** + *
+     * Campaign must enable performance search setting for ADOPT_AI_MAX
+     * experiments.
+     * 
+ * + * ADOPT_AI_MAX_CAMPAIGN_MISSING_PERFORMANCE_SEARCH_ENABLED = 17; + */ + public static final int ADOPT_AI_MAX_CAMPAIGN_MISSING_PERFORMANCE_SEARCH_ENABLED_VALUE = 17; + /** + *
+     * Number of campaigns in the experiment arm is above limit.
+     * 
+ * + * TOO_MANY_CAMPAIGNS_IN_EXPERIMENT_ARM = 18; + */ + public static final int TOO_MANY_CAMPAIGNS_IN_EXPERIMENT_ARM_VALUE = 18; + /** + *
+     * AI Max experiments do not support campaigns with a target ROAS tolerance
+     * (see
+     * campaign.maximize_conversion_value.target_roas_tolerance_percent_millis).
+     * 
+ * + * CANNOT_ADD_CAMPAIGN_WITH_TARGET_ROAS_TOLERANCE_PERCENT_MILLIS = 19; + */ + public static final int CANNOT_ADD_CAMPAIGN_WITH_TARGET_ROAS_TOLERANCE_PERCENT_MILLIS_VALUE = 19; + /** + *
+     * A campaign cannot be added to multiple arms in one experiment. Use
+     * different campaigns in each arm of the experiment.
+     * 
+ * + * CANNOT_HAVE_SAME_CAMPAIGN_CROSS_ARMS_IN_ONE_EXPERIMENT = 20; + */ + public static final int CANNOT_HAVE_SAME_CAMPAIGN_CROSS_ARMS_IN_ONE_EXPERIMENT_VALUE = 20; + /** + *
+     * Campaigns in the ADOPT_BROAD_MATCH_KEYWORD experiment cannot target the
+     * Google Display Network.
+     * 
+ * + * SEARCH_PLUS_CAMPAIGN_NOT_ALLOWED = 21; + */ + public static final int SEARCH_PLUS_CAMPAIGN_NOT_ALLOWED_VALUE = 21; + /** + *
+     * An asset group asset cannot be added to multiple arms in one experiment.
+     * Use different asset group assets in each arm of the experiment.
+     * 
+ * + * DUPLICATE_ASSET_GROUP_ASSETS_BETWEEN_ARMS = 22; + */ + public static final int DUPLICATE_ASSET_GROUP_ASSETS_BETWEEN_ARMS_VALUE = 22; + /** + *
+     * An asset group asset cannot be used multiple times in one arm.
+     * Use different asset group assets in one arm of the experiment.
+     * 
+ * + * DUPLICATE_ASSET_GROUP_ASSETS_IN_ONE_ARM = 23; + */ + public static final int DUPLICATE_ASSET_GROUP_ASSETS_IN_ONE_ARM_VALUE = 23; public final int getNumber() { @@ -370,6 +512,14 @@ public static ExperimentArmError forNumber(int value) { case 13: return CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RANGE; case 14: return BIDDING_STRATEGY_NOT_SUPPORTED_IN_EXPERIMENTS; case 15: return TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE; + case 16: return BUDGET_MUST_NOT_BE_SHARED; + case 17: return ADOPT_AI_MAX_CAMPAIGN_MISSING_PERFORMANCE_SEARCH_ENABLED; + case 18: return TOO_MANY_CAMPAIGNS_IN_EXPERIMENT_ARM; + case 19: return CANNOT_ADD_CAMPAIGN_WITH_TARGET_ROAS_TOLERANCE_PERCENT_MILLIS; + case 20: return CANNOT_HAVE_SAME_CAMPAIGN_CROSS_ARMS_IN_ONE_EXPERIMENT; + case 21: return SEARCH_PLUS_CAMPAIGN_NOT_ALLOWED; + case 22: return DUPLICATE_ASSET_GROUP_ASSETS_BETWEEN_ARMS; + case 23: return DUPLICATE_ASSET_GROUP_ASSETS_IN_ONE_ARM; default: return null; } } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorProto.java index 7c03a534a..84e840f8f 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentArmErrorProto.java @@ -42,8 +42,8 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n:google/ads/googleads/v24/errors/experi" + "ment_arm_error.proto\022\037google.ads.googlea" + - "ds.v24.errors\"\261\005\n\026ExperimentArmErrorEnum" + - "\"\226\005\n\022ExperimentArmError\022\017\n\013UNSPECIFIED\020\000" + + "ds.v24.errors\"\271\010\n\026ExperimentArmErrorEnum" + + "\"\236\010\n\022ExperimentArmError\022\017\n\013UNSPECIFIED\020\000" + "\022\013\n\007UNKNOWN\020\001\022\'\n#EXPERIMENT_ARM_COUNT_LI" + "MIT_EXCEEDED\020\002\022\033\n\027INVALID_CAMPAIGN_STATU" + "S\020\003\022!\n\035DUPLICATE_EXPERIMENT_ARM_NAME\020\004\022%" + @@ -59,14 +59,23 @@ public static void registerAllExtensions( "\n(CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RAN" + "GE\020\r\0221\n-BIDDING_STRATEGY_NOT_SUPPORTED_I" + "N_EXPERIMENTS\020\016\0220\n,TRAFFIC_SPLIT_NOT_SUP" + - "PORTED_FOR_CHANNEL_TYPE\020\017B\367\001\n#com.google" + - ".ads.googleads.v24.errorsB\027ExperimentArm" + - "ErrorProtoP\001ZEgoogle.golang.org/genproto" + - "/googleapis/ads/googleads/v24/errors;err" + - "ors\242\002\003GAA\252\002\037Google.Ads.GoogleAds.V24.Err" + - "ors\312\002\037Google\\Ads\\GoogleAds\\V24\\Errors\352\002#" + - "Google::Ads::GoogleAds::V24::Errorsb\006pro" + - "to3" + "PORTED_FOR_CHANNEL_TYPE\020\017\022\035\n\031BUDGET_MUST" + + "_NOT_BE_SHARED\020\020\022<\n8ADOPT_AI_MAX_CAMPAIG" + + "N_MISSING_PERFORMANCE_SEARCH_ENABLED\020\021\022(" + + "\n$TOO_MANY_CAMPAIGNS_IN_EXPERIMENT_ARM\020\022" + + "\022A\n=CANNOT_ADD_CAMPAIGN_WITH_TARGET_ROAS" + + "_TOLERANCE_PERCENT_MILLIS\020\023\022:\n6CANNOT_HA" + + "VE_SAME_CAMPAIGN_CROSS_ARMS_IN_ONE_EXPER" + + "IMENT\020\024\022$\n SEARCH_PLUS_CAMPAIGN_NOT_ALLO" + + "WED\020\025\022-\n)DUPLICATE_ASSET_GROUP_ASSETS_BE" + + "TWEEN_ARMS\020\026\022+\n\'DUPLICATE_ASSET_GROUP_AS" + + "SETS_IN_ONE_ARM\020\027B\367\001\n#com.google.ads.goo" + + "gleads.v24.errorsB\027ExperimentArmErrorPro" + + "toP\001ZEgoogle.golang.org/genproto/googlea" + + "pis/ads/googleads/v24/errors;errors\242\002\003GA" + + "A\252\002\037Google.Ads.GoogleAds.V24.Errors\312\002\037Go" + + "ogle\\Ads\\GoogleAds\\V24\\Errors\352\002#Google::" + + "Ads::GoogleAds::V24::Errorsb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorEnum.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorEnum.java index 2260926e7..c94816dec 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorEnum.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorEnum.java @@ -322,6 +322,22 @@ public enum ExperimentError * MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION = 31; */ MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION(31), + /** + *
+     * Cannot create an experiment with no arms.
+     * 
+ * + * MISSING_EXPERIMENT_ARMS = 32; + */ + MISSING_EXPERIMENT_ARMS(32), + /** + *
+     * The video experiment subtype is missing.
+     * 
+ * + * MISSING_VIDEO_EXPERIMENT_SUBTYPE = 34; + */ + MISSING_VIDEO_EXPERIMENT_SUBTYPE(34), UNRECOGNIZED(-1), ; @@ -600,6 +616,22 @@ public enum ExperimentError * MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION = 31; */ public static final int MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION_VALUE = 31; + /** + *
+     * Cannot create an experiment with no arms.
+     * 
+ * + * MISSING_EXPERIMENT_ARMS = 32; + */ + public static final int MISSING_EXPERIMENT_ARMS_VALUE = 32; + /** + *
+     * The video experiment subtype is missing.
+     * 
+ * + * MISSING_VIDEO_EXPERIMENT_SUBTYPE = 34; + */ + public static final int MISSING_VIDEO_EXPERIMENT_SUBTYPE_VALUE = 34; public final int getNumber() { @@ -658,6 +690,8 @@ public static ExperimentError forNumber(int value) { case 29: return CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE; case 30: return INVALID_DURATION_FOR_AN_EXPERIMENT; case 31: return MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION; + case 32: return MISSING_EXPERIMENT_ARMS; + case 34: return MISSING_VIDEO_EXPERIMENT_SUBTYPE; default: return null; } } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorProto.java index c7bd1b5eb..d9abf6001 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/errors/ExperimentErrorProto.java @@ -42,7 +42,7 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n6google/ads/googleads/v24/errors/experi" + "ment_error.proto\022\037google.ads.googleads.v" + - "24.errors\"\337\t\n\023ExperimentErrorEnum\"\307\t\n\017Ex" + + "24.errors\"\242\n\n\023ExperimentErrorEnum\"\212\n\n\017Ex" + "perimentError\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOW" + "N\020\001\022!\n\035CANNOT_SET_START_DATE_IN_PAST\020\002\022\036" + "\n\032END_DATE_BEFORE_START_DATE\020\003\022 \n\034START_" + @@ -73,13 +73,15 @@ public static void registerAllExtensions( "NABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TY" + "PE\020\035\022&\n\"INVALID_DURATION_FOR_AN_EXPERIME" + "NT\020\036\0225\n1MISSING_EU_POLITICAL_ADVERTISING" + - "_SELF_DECLARATION\020\037B\364\001\n#com.google.ads.g" + - "oogleads.v24.errorsB\024ExperimentErrorProt" + - "oP\001ZEgoogle.golang.org/genproto/googleap" + - "is/ads/googleads/v24/errors;errors\242\002\003GAA" + - "\252\002\037Google.Ads.GoogleAds.V24.Errors\312\002\037Goo" + - "gle\\Ads\\GoogleAds\\V24\\Errors\352\002#Google::A" + - "ds::GoogleAds::V24::Errorsb\006proto3" + "_SELF_DECLARATION\020\037\022\033\n\027MISSING_EXPERIMEN" + + "T_ARMS\020 \022$\n MISSING_VIDEO_EXPERIMENT_SUB" + + "TYPE\020\"B\364\001\n#com.google.ads.googleads.v24." + + "errorsB\024ExperimentErrorProtoP\001ZEgoogle.g" + + "olang.org/genproto/googleapis/ads/google" + + "ads/v24/errors;errors\242\002\003GAA\252\002\037Google.Ads" + + ".GoogleAds.V24.Errors\312\002\037Google\\Ads\\Googl" + + "eAds\\V24\\Errors\352\002#Google::Ads::GoogleAds" + + "::V24::Errorsb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoal.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoal.java index 36c5a7edf..0373702d4 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoal.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoal.java @@ -211,6 +211,15 @@ public java.lang.String getCampaign() { /** *
    * The biddability of the campaign conversion goal.
+   *
+   * If left unspecified during campaign creation or update operations, this
+   * value will inherit the account-level default biddability for the
+   * corresponding conversion category and origin.
+   *
+   * Note: The account-level default may be set to `true` for newly created
+   * conversion goals. To explicitly prevent a campaign from bidding on this
+   * goal, you must explicitly set `biddable` to `false` and include "biddable"
+   * in your mutate operation's `update_mask`.
    * 
* * bool biddable = 5; @@ -962,6 +971,15 @@ public Builder clearOrigin() { /** *
      * The biddability of the campaign conversion goal.
+     *
+     * If left unspecified during campaign creation or update operations, this
+     * value will inherit the account-level default biddability for the
+     * corresponding conversion category and origin.
+     *
+     * Note: The account-level default may be set to `true` for newly created
+     * conversion goals. To explicitly prevent a campaign from bidding on this
+     * goal, you must explicitly set `biddable` to `false` and include "biddable"
+     * in your mutate operation's `update_mask`.
      * 
* * bool biddable = 5; @@ -974,6 +992,15 @@ public boolean getBiddable() { /** *
      * The biddability of the campaign conversion goal.
+     *
+     * If left unspecified during campaign creation or update operations, this
+     * value will inherit the account-level default biddability for the
+     * corresponding conversion category and origin.
+     *
+     * Note: The account-level default may be set to `true` for newly created
+     * conversion goals. To explicitly prevent a campaign from bidding on this
+     * goal, you must explicitly set `biddable` to `false` and include "biddable"
+     * in your mutate operation's `update_mask`.
      * 
* * bool biddable = 5; @@ -990,6 +1017,15 @@ public Builder setBiddable(boolean value) { /** *
      * The biddability of the campaign conversion goal.
+     *
+     * If left unspecified during campaign creation or update operations, this
+     * value will inherit the account-level default biddability for the
+     * corresponding conversion category and origin.
+     *
+     * Note: The account-level default may be set to `true` for newly created
+     * conversion goals. To explicitly prevent a campaign from bidding on this
+     * goal, you must explicitly set `biddable` to `false` and include "biddable"
+     * in your mutate operation's `update_mask`.
      * 
* * bool biddable = 5; diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoalOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoalOrBuilder.java index 07a09f169..56218f683 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoalOrBuilder.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CampaignConversionGoalOrBuilder.java @@ -99,6 +99,15 @@ public interface CampaignConversionGoalOrBuilder extends /** *
    * The biddability of the campaign conversion goal.
+   *
+   * If left unspecified during campaign creation or update operations, this
+   * value will inherit the account-level default biddability for the
+   * corresponding conversion category and origin.
+   *
+   * Note: The account-level default may be set to `true` for newly created
+   * conversion goals. To explicitly prevent a campaign from bidding on this
+   * goal, you must explicitly set `biddable` to `false` and include "biddable"
+   * in your mutate operation's `update_mask`.
    * 
* * bool biddable = 5; diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccess.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccess.java index 67af9cf1b..a15fc3892 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccess.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccess.java @@ -338,6 +338,35 @@ public java.lang.String getInviterUserEmailAddress() { } } + public static final int PASSKEY_ENABLED_FIELD_NUMBER = 8; + private boolean passkeyEnabled_ = false; + /** + *
+   * Output only. Whether the user has passkey enabled.
+   * Read only field
+   * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return Whether the passkeyEnabled field is set. + */ + @java.lang.Override + public boolean hasPasskeyEnabled() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + *
+   * Output only. Whether the user has passkey enabled.
+   * Read only field
+   * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return The passkeyEnabled. + */ + @java.lang.Override + public boolean getPasskeyEnabled() { + return passkeyEnabled_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -370,6 +399,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000004) != 0)) { com.google.protobuf.GeneratedMessage.writeString(output, 7, inviterUserEmailAddress_); } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeBool(8, passkeyEnabled_); + } getUnknownFields().writeTo(output); } @@ -399,6 +431,10 @@ public int getSerializedSize() { if (((bitField0_ & 0x00000004) != 0)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(7, inviterUserEmailAddress_); } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(8, passkeyEnabled_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -434,6 +470,11 @@ public boolean equals(final java.lang.Object obj) { if (!getInviterUserEmailAddress() .equals(other.getInviterUserEmailAddress())) return false; } + if (hasPasskeyEnabled() != other.hasPasskeyEnabled()) return false; + if (hasPasskeyEnabled()) { + if (getPasskeyEnabled() + != other.getPasskeyEnabled()) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -464,6 +505,11 @@ public int hashCode() { hash = (37 * hash) + INVITER_USER_EMAIL_ADDRESS_FIELD_NUMBER; hash = (53 * hash) + getInviterUserEmailAddress().hashCode(); } + if (hasPasskeyEnabled()) { + hash = (37 * hash) + PASSKEY_ENABLED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPasskeyEnabled()); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -605,6 +651,7 @@ public Builder clear() { accessRole_ = 0; accessCreationDateTime_ = ""; inviterUserEmailAddress_ = ""; + passkeyEnabled_ = false; return this; } @@ -660,6 +707,10 @@ private void buildPartial0(com.google.ads.googleads.v24.resources.CustomerUserAc result.inviterUserEmailAddress_ = inviterUserEmailAddress_; to_bitField0_ |= 0x00000004; } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.passkeyEnabled_ = passkeyEnabled_; + to_bitField0_ |= 0x00000008; + } result.bitField0_ |= to_bitField0_; } @@ -701,6 +752,9 @@ public Builder mergeFrom(com.google.ads.googleads.v24.resources.CustomerUserAcce bitField0_ |= 0x00000020; onChanged(); } + if (other.hasPasskeyEnabled()) { + setPasskeyEnabled(other.getPasskeyEnabled()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -757,6 +811,11 @@ public Builder mergeFrom( bitField0_ |= 0x00000020; break; } // case 58 + case 64: { + passkeyEnabled_ = input.readBool(); + bitField0_ |= 0x00000040; + break; + } // case 64 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -1333,6 +1392,66 @@ public Builder setInviterUserEmailAddressBytes( return this; } + private boolean passkeyEnabled_ ; + /** + *
+     * Output only. Whether the user has passkey enabled.
+     * Read only field
+     * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return Whether the passkeyEnabled field is set. + */ + @java.lang.Override + public boolean hasPasskeyEnabled() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + *
+     * Output only. Whether the user has passkey enabled.
+     * Read only field
+     * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return The passkeyEnabled. + */ + @java.lang.Override + public boolean getPasskeyEnabled() { + return passkeyEnabled_; + } + /** + *
+     * Output only. Whether the user has passkey enabled.
+     * Read only field
+     * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param value The passkeyEnabled to set. + * @return This builder for chaining. + */ + public Builder setPasskeyEnabled(boolean value) { + + passkeyEnabled_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + *
+     * Output only. Whether the user has passkey enabled.
+     * Read only field
+     * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return This builder for chaining. + */ + public Builder clearPasskeyEnabled() { + bitField0_ = (bitField0_ & ~0x00000040); + passkeyEnabled_ = false; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.CustomerUserAccess) } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessOrBuilder.java index e9db615c2..850accd7b 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessOrBuilder.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessOrBuilder.java @@ -165,4 +165,25 @@ public interface CustomerUserAccessOrBuilder extends */ com.google.protobuf.ByteString getInviterUserEmailAddressBytes(); + + /** + *
+   * Output only. Whether the user has passkey enabled.
+   * Read only field
+   * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return Whether the passkeyEnabled field is set. + */ + boolean hasPasskeyEnabled(); + /** + *
+   * Output only. Whether the user has passkey enabled.
+   * Read only field
+   * 
+ * + * optional bool passkey_enabled = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return The passkeyEnabled. + */ + boolean getPasskeyEnabled(); } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessProto.java index 55bf965cd..679a23583 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/CustomerUserAccessProto.java @@ -45,7 +45,7 @@ public static void registerAllExtensions( "leads.v24.resources\0320google/ads/googlead" + "s/v24/enums/access_role.proto\032\037google/ap" + "i/field_behavior.proto\032\031google/api/resou" + - "rce.proto\"\373\003\n\022CustomerUserAccess\022J\n\rreso" + + "rce.proto\"\262\004\n\022CustomerUserAccess\022J\n\rreso" + "urce_name\030\001 \001(\tB3\340A\005\372A-\n+googleads.googl" + "eapis.com/CustomerUserAccess\022\024\n\007user_id\030" + "\002 \001(\003B\003\340A\003\022\037\n\remail_address\030\003 \001(\tB\003\340A\003H\000" + @@ -53,18 +53,20 @@ public static void registerAllExtensions( "ogleads.v24.enums.AccessRoleEnum.AccessR" + "ole\022+\n\031access_creation_date_time\030\006 \001(\tB\003" + "\340A\003H\001\210\001\001\022,\n\032inviter_user_email_address\030\007" + - " \001(\tB\003\340A\003H\002\210\001\001:h\352Ae\n+googleads.googleapi" + - "s.com/CustomerUserAccess\0226customers/{cus" + - "tomer_id}/customerUserAccesses/{user_id}" + - "B\020\n\016_email_addressB\034\n\032_access_creation_d" + - "ate_timeB\035\n\033_inviter_user_email_addressB" + - "\211\002\n&com.google.ads.googleads.v24.resourc" + - "esB\027CustomerUserAccessProtoP\001ZKgoogle.go" + - "lang.org/genproto/googleapis/ads/googlea" + - "ds/v24/resources;resources\242\002\003GAA\252\002\"Googl" + - "e.Ads.GoogleAds.V24.Resources\312\002\"Google\\A" + - "ds\\GoogleAds\\V24\\Resources\352\002&Google::Ads" + - "::GoogleAds::V24::Resourcesb\006proto3" + " \001(\tB\003\340A\003H\002\210\001\001\022!\n\017passkey_enabled\030\010 \001(\010B" + + "\003\340A\003H\003\210\001\001:h\352Ae\n+googleads.googleapis.com" + + "/CustomerUserAccess\0226customers/{customer" + + "_id}/customerUserAccesses/{user_id}B\020\n\016_" + + "email_addressB\034\n\032_access_creation_date_t" + + "imeB\035\n\033_inviter_user_email_addressB\022\n\020_p" + + "asskey_enabledB\211\002\n&com.google.ads.google" + + "ads.v24.resourcesB\027CustomerUserAccessPro" + + "toP\001ZKgoogle.golang.org/genproto/googlea" + + "pis/ads/googleads/v24/resources;resource" + + "s\242\002\003GAA\252\002\"Google.Ads.GoogleAds.V24.Resou" + + "rces\312\002\"Google\\Ads\\GoogleAds\\V24\\Resource" + + "s\352\002&Google::Ads::GoogleAds::V24::Resourc" + + "esb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -78,7 +80,7 @@ public static void registerAllExtensions( internal_static_google_ads_googleads_v24_resources_CustomerUserAccess_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_ads_googleads_v24_resources_CustomerUserAccess_descriptor, - new java.lang.String[] { "ResourceName", "UserId", "EmailAddress", "AccessRole", "AccessCreationDateTime", "InviterUserEmailAddress", }); + new java.lang.String[] { "ResourceName", "UserId", "EmailAddress", "AccessRole", "AccessCreationDateTime", "InviterUserEmailAddress", "PasskeyEnabled", }); descriptor.resolveAllFeaturesImmutable(); com.google.ads.googleads.v24.enums.AccessRoleProto.getDescriptor(); com.google.api.FieldBehaviorProto.getDescriptor(); diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/Experiment.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/Experiment.java index 31f8be4b7..e9f5b1779 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/Experiment.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/Experiment.java @@ -60,6 +60,48 @@ private Experiment() { } private int bitField0_; + private int experimentInfoCase_ = 0; + @SuppressWarnings("serial") + private java.lang.Object experimentInfo_; + public enum ExperimentInfoCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + VIDEO_EXPERIMENT(21), + OPTIMIZE_ASSETS_EXPERIMENT(22), + EXPERIMENTINFO_NOT_SET(0); + private final int value; + private ExperimentInfoCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ExperimentInfoCase valueOf(int value) { + return forNumber(value); + } + + public static ExperimentInfoCase forNumber(int value) { + switch (value) { + case 21: return VIDEO_EXPERIMENT; + case 22: return OPTIMIZE_ASSETS_EXPERIMENT; + case 0: return EXPERIMENTINFO_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public ExperimentInfoCase + getExperimentInfoCase() { + return ExperimentInfoCase.forNumber( + experimentInfoCase_); + } + public static final int RESOURCE_NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object resourceName_ = ""; @@ -677,6 +719,98 @@ public boolean getSyncEnabled() { return syncEnabled_; } + public static final int VIDEO_EXPERIMENT_FIELD_NUMBER = 21; + /** + *
+   * Immutable. Details of the video experiment. Applies for experiment types:
+   * YOUTUBE_CUSTOM.
+   * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the videoExperiment field is set. + */ + @java.lang.Override + public boolean hasVideoExperiment() { + return experimentInfoCase_ == 21; + } + /** + *
+   * Immutable. Details of the video experiment. Applies for experiment types:
+   * YOUTUBE_CUSTOM.
+   * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The videoExperiment. + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.VideoExperimentInfo getVideoExperiment() { + if (experimentInfoCase_ == 21) { + return (com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance(); + } + /** + *
+   * Immutable. Details of the video experiment. Applies for experiment types:
+   * YOUTUBE_CUSTOM.
+   * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.VideoExperimentInfoOrBuilder getVideoExperimentOrBuilder() { + if (experimentInfoCase_ == 21) { + return (com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance(); + } + + public static final int OPTIMIZE_ASSETS_EXPERIMENT_FIELD_NUMBER = 22; + /** + *
+   * Immutable. Details of the optimize assets experiment. Applies for
+   * experiment types: OPTIMIZE_ASSETS.
+   * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the optimizeAssetsExperiment field is set. + */ + @java.lang.Override + public boolean hasOptimizeAssetsExperiment() { + return experimentInfoCase_ == 22; + } + /** + *
+   * Immutable. Details of the optimize assets experiment. Applies for
+   * experiment types: OPTIMIZE_ASSETS.
+   * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The optimizeAssetsExperiment. + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo getOptimizeAssetsExperiment() { + if (experimentInfoCase_ == 22) { + return (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance(); + } + /** + *
+   * Immutable. Details of the optimize assets experiment. Applies for
+   * experiment types: OPTIMIZE_ASSETS.
+   * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfoOrBuilder getOptimizeAssetsExperimentOrBuilder() { + if (experimentInfoCase_ == 22) { + return (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -730,6 +864,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000010) != 0)) { output.writeBool(20, syncEnabled_); } + if (experimentInfoCase_ == 21) { + output.writeMessage(21, (com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_); + } + if (experimentInfoCase_ == 22) { + output.writeMessage(22, (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_); + } getUnknownFields().writeTo(output); } @@ -784,6 +924,14 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBoolSize(20, syncEnabled_); } + if (experimentInfoCase_ == 21) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(21, (com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_); + } + if (experimentInfoCase_ == 22) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(22, (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -837,6 +985,19 @@ public boolean equals(final java.lang.Object obj) { if (getSyncEnabled() != other.getSyncEnabled()) return false; } + if (!getExperimentInfoCase().equals(other.getExperimentInfoCase())) return false; + switch (experimentInfoCase_) { + case 21: + if (!getVideoExperiment() + .equals(other.getVideoExperiment())) return false; + break; + case 22: + if (!getOptimizeAssetsExperiment() + .equals(other.getOptimizeAssetsExperiment())) return false; + break; + case 0: + default: + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -888,6 +1049,18 @@ public int hashCode() { hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getSyncEnabled()); } + switch (experimentInfoCase_) { + case 21: + hash = (37 * hash) + VIDEO_EXPERIMENT_FIELD_NUMBER; + hash = (53 * hash) + getVideoExperiment().hashCode(); + break; + case 22: + hash = (37 * hash) + OPTIMIZE_ASSETS_EXPERIMENT_FIELD_NUMBER; + hash = (53 * hash) + getOptimizeAssetsExperiment().hashCode(); + break; + case 0: + default: + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -1043,6 +1216,14 @@ public Builder clear() { longRunningOperation_ = ""; promoteStatus_ = 0; syncEnabled_ = false; + if (videoExperimentBuilder_ != null) { + videoExperimentBuilder_.clear(); + } + if (optimizeAssetsExperimentBuilder_ != null) { + optimizeAssetsExperimentBuilder_.clear(); + } + experimentInfoCase_ = 0; + experimentInfo_ = null; return this; } @@ -1071,6 +1252,7 @@ public com.google.ads.googleads.v24.resources.Experiment buildPartial() { com.google.ads.googleads.v24.resources.Experiment result = new com.google.ads.googleads.v24.resources.Experiment(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } + buildPartialOneofs(result); onBuilt(); return result; } @@ -1134,6 +1316,19 @@ private void buildPartial0(com.google.ads.googleads.v24.resources.Experiment res result.bitField0_ |= to_bitField0_; } + private void buildPartialOneofs(com.google.ads.googleads.v24.resources.Experiment result) { + result.experimentInfoCase_ = experimentInfoCase_; + result.experimentInfo_ = this.experimentInfo_; + if (experimentInfoCase_ == 21 && + videoExperimentBuilder_ != null) { + result.experimentInfo_ = videoExperimentBuilder_.build(); + } + if (experimentInfoCase_ == 22 && + optimizeAssetsExperimentBuilder_ != null) { + result.experimentInfo_ = optimizeAssetsExperimentBuilder_.build(); + } + } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.google.ads.googleads.v24.resources.Experiment) { @@ -1222,6 +1417,19 @@ public Builder mergeFrom(com.google.ads.googleads.v24.resources.Experiment other if (other.hasSyncEnabled()) { setSyncEnabled(other.getSyncEnabled()); } + switch (other.getExperimentInfoCase()) { + case VIDEO_EXPERIMENT: { + mergeVideoExperiment(other.getVideoExperiment()); + break; + } + case OPTIMIZE_ASSETS_EXPERIMENT: { + mergeOptimizeAssetsExperiment(other.getOptimizeAssetsExperiment()); + break; + } + case EXPERIMENTINFO_NOT_SET: { + break; + } + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1321,6 +1529,20 @@ public Builder mergeFrom( bitField0_ |= 0x00001000; break; } // case 160 + case 170: { + input.readMessage( + internalGetVideoExperimentFieldBuilder().getBuilder(), + extensionRegistry); + experimentInfoCase_ = 21; + break; + } // case 170 + case 178: { + input.readMessage( + internalGetOptimizeAssetsExperimentFieldBuilder().getBuilder(), + extensionRegistry); + experimentInfoCase_ = 22; + break; + } // case 178 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -1336,6 +1558,21 @@ public Builder mergeFrom( } // finally return this; } + private int experimentInfoCase_ = 0; + private java.lang.Object experimentInfo_; + public ExperimentInfoCase + getExperimentInfoCase() { + return ExperimentInfoCase.forNumber( + experimentInfoCase_); + } + + public Builder clearExperimentInfo() { + experimentInfoCase_ = 0; + experimentInfo_ = null; + onChanged(); + return this; + } + private int bitField0_; private java.lang.Object resourceName_ = ""; @@ -2778,6 +3015,380 @@ public Builder clearSyncEnabled() { return this; } + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.VideoExperimentInfo, com.google.ads.googleads.v24.common.VideoExperimentInfo.Builder, com.google.ads.googleads.v24.common.VideoExperimentInfoOrBuilder> videoExperimentBuilder_; + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the videoExperiment field is set. + */ + @java.lang.Override + public boolean hasVideoExperiment() { + return experimentInfoCase_ == 21; + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The videoExperiment. + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.VideoExperimentInfo getVideoExperiment() { + if (videoExperimentBuilder_ == null) { + if (experimentInfoCase_ == 21) { + return (com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance(); + } else { + if (experimentInfoCase_ == 21) { + return videoExperimentBuilder_.getMessage(); + } + return com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance(); + } + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder setVideoExperiment(com.google.ads.googleads.v24.common.VideoExperimentInfo value) { + if (videoExperimentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + experimentInfo_ = value; + onChanged(); + } else { + videoExperimentBuilder_.setMessage(value); + } + experimentInfoCase_ = 21; + return this; + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder setVideoExperiment( + com.google.ads.googleads.v24.common.VideoExperimentInfo.Builder builderForValue) { + if (videoExperimentBuilder_ == null) { + experimentInfo_ = builderForValue.build(); + onChanged(); + } else { + videoExperimentBuilder_.setMessage(builderForValue.build()); + } + experimentInfoCase_ = 21; + return this; + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder mergeVideoExperiment(com.google.ads.googleads.v24.common.VideoExperimentInfo value) { + if (videoExperimentBuilder_ == null) { + if (experimentInfoCase_ == 21 && + experimentInfo_ != com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance()) { + experimentInfo_ = com.google.ads.googleads.v24.common.VideoExperimentInfo.newBuilder((com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_) + .mergeFrom(value).buildPartial(); + } else { + experimentInfo_ = value; + } + onChanged(); + } else { + if (experimentInfoCase_ == 21) { + videoExperimentBuilder_.mergeFrom(value); + } else { + videoExperimentBuilder_.setMessage(value); + } + } + experimentInfoCase_ = 21; + return this; + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder clearVideoExperiment() { + if (videoExperimentBuilder_ == null) { + if (experimentInfoCase_ == 21) { + experimentInfoCase_ = 0; + experimentInfo_ = null; + onChanged(); + } + } else { + if (experimentInfoCase_ == 21) { + experimentInfoCase_ = 0; + experimentInfo_ = null; + } + videoExperimentBuilder_.clear(); + } + return this; + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public com.google.ads.googleads.v24.common.VideoExperimentInfo.Builder getVideoExperimentBuilder() { + return internalGetVideoExperimentFieldBuilder().getBuilder(); + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.VideoExperimentInfoOrBuilder getVideoExperimentOrBuilder() { + if ((experimentInfoCase_ == 21) && (videoExperimentBuilder_ != null)) { + return videoExperimentBuilder_.getMessageOrBuilder(); + } else { + if (experimentInfoCase_ == 21) { + return (com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance(); + } + } + /** + *
+     * Immutable. Details of the video experiment. Applies for experiment types:
+     * YOUTUBE_CUSTOM.
+     * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.VideoExperimentInfo, com.google.ads.googleads.v24.common.VideoExperimentInfo.Builder, com.google.ads.googleads.v24.common.VideoExperimentInfoOrBuilder> + internalGetVideoExperimentFieldBuilder() { + if (videoExperimentBuilder_ == null) { + if (!(experimentInfoCase_ == 21)) { + experimentInfo_ = com.google.ads.googleads.v24.common.VideoExperimentInfo.getDefaultInstance(); + } + videoExperimentBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.VideoExperimentInfo, com.google.ads.googleads.v24.common.VideoExperimentInfo.Builder, com.google.ads.googleads.v24.common.VideoExperimentInfoOrBuilder>( + (com.google.ads.googleads.v24.common.VideoExperimentInfo) experimentInfo_, + getParentForChildren(), + isClean()); + experimentInfo_ = null; + } + experimentInfoCase_ = 21; + onChanged(); + return videoExperimentBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.Builder, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfoOrBuilder> optimizeAssetsExperimentBuilder_; + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the optimizeAssetsExperiment field is set. + */ + @java.lang.Override + public boolean hasOptimizeAssetsExperiment() { + return experimentInfoCase_ == 22; + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The optimizeAssetsExperiment. + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo getOptimizeAssetsExperiment() { + if (optimizeAssetsExperimentBuilder_ == null) { + if (experimentInfoCase_ == 22) { + return (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance(); + } else { + if (experimentInfoCase_ == 22) { + return optimizeAssetsExperimentBuilder_.getMessage(); + } + return com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance(); + } + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder setOptimizeAssetsExperiment(com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo value) { + if (optimizeAssetsExperimentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + experimentInfo_ = value; + onChanged(); + } else { + optimizeAssetsExperimentBuilder_.setMessage(value); + } + experimentInfoCase_ = 22; + return this; + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder setOptimizeAssetsExperiment( + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.Builder builderForValue) { + if (optimizeAssetsExperimentBuilder_ == null) { + experimentInfo_ = builderForValue.build(); + onChanged(); + } else { + optimizeAssetsExperimentBuilder_.setMessage(builderForValue.build()); + } + experimentInfoCase_ = 22; + return this; + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder mergeOptimizeAssetsExperiment(com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo value) { + if (optimizeAssetsExperimentBuilder_ == null) { + if (experimentInfoCase_ == 22 && + experimentInfo_ != com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance()) { + experimentInfo_ = com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.newBuilder((com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_) + .mergeFrom(value).buildPartial(); + } else { + experimentInfo_ = value; + } + onChanged(); + } else { + if (experimentInfoCase_ == 22) { + optimizeAssetsExperimentBuilder_.mergeFrom(value); + } else { + optimizeAssetsExperimentBuilder_.setMessage(value); + } + } + experimentInfoCase_ = 22; + return this; + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder clearOptimizeAssetsExperiment() { + if (optimizeAssetsExperimentBuilder_ == null) { + if (experimentInfoCase_ == 22) { + experimentInfoCase_ = 0; + experimentInfo_ = null; + onChanged(); + } + } else { + if (experimentInfoCase_ == 22) { + experimentInfoCase_ = 0; + experimentInfo_ = null; + } + optimizeAssetsExperimentBuilder_.clear(); + } + return this; + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.Builder getOptimizeAssetsExperimentBuilder() { + return internalGetOptimizeAssetsExperimentFieldBuilder().getBuilder(); + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + @java.lang.Override + public com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfoOrBuilder getOptimizeAssetsExperimentOrBuilder() { + if ((experimentInfoCase_ == 22) && (optimizeAssetsExperimentBuilder_ != null)) { + return optimizeAssetsExperimentBuilder_.getMessageOrBuilder(); + } else { + if (experimentInfoCase_ == 22) { + return (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_; + } + return com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance(); + } + } + /** + *
+     * Immutable. Details of the optimize assets experiment. Applies for
+     * experiment types: OPTIMIZE_ASSETS.
+     * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.Builder, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfoOrBuilder> + internalGetOptimizeAssetsExperimentFieldBuilder() { + if (optimizeAssetsExperimentBuilder_ == null) { + if (!(experimentInfoCase_ == 22)) { + experimentInfo_ = com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.getDefaultInstance(); + } + optimizeAssetsExperimentBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo.Builder, com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfoOrBuilder>( + (com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo) experimentInfo_, + getParentForChildren(), + isClean()); + experimentInfo_ = null; + } + experimentInfoCase_ = 22; + onChanged(); + return optimizeAssetsExperimentBuilder_; + } + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.Experiment) } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArm.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArm.java index dea2b3a28..8eed86251 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArm.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArm.java @@ -40,6 +40,7 @@ private ExperimentArm() { com.google.protobuf.LazyStringArrayList.emptyList(); inDesignCampaigns_ = com.google.protobuf.LazyStringArrayList.emptyList(); + assetGroups_ = java.util.Collections.emptyList(); } public static final com.google.protobuf.Descriptors.Descriptor @@ -55,1448 +56,8636 @@ private ExperimentArm() { com.google.ads.googleads.v24.resources.ExperimentArm.class, com.google.ads.googleads.v24.resources.ExperimentArm.Builder.class); } - public static final int RESOURCE_NAME_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object resourceName_ = ""; - /** - *
-   * Immutable. The resource name of the experiment arm.
-   * Experiment arm resource names have the form:
-   *
-   * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
-   * 
- * - * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The resourceName. - */ - @java.lang.Override - public java.lang.String getResourceName() { - java.lang.Object ref = resourceName_; - 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(); - resourceName_ = s; - return s; - } + public interface AssetTestingInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + java.util.List + getAssetVariationInfosList(); + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo getAssetVariationInfos(int index); + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + int getAssetVariationInfosCount(); + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + java.util.List + getAssetVariationInfosOrBuilderList(); + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfoOrBuilder getAssetVariationInfosOrBuilder( + int index); } /** *
-   * Immutable. The resource name of the experiment arm.
-   * Experiment arm resource names have the form:
-   *
-   * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+   * Details of assets associated with the experimental copies of
+   * ads.
    * 
* - * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The bytes for resourceName. + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo} */ - @java.lang.Override - public com.google.protobuf.ByteString - getResourceNameBytes() { - java.lang.Object ref = resourceName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - resourceName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static final class AssetTestingInfo extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo) + AssetTestingInfoOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + AssetTestingInfo.class.getName()); + } + // Use AssetTestingInfo.newBuilder() to construct. + private AssetTestingInfo(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AssetTestingInfo() { + assetVariationInfos_ = java.util.Collections.emptyList(); } - } - public static final int EXPERIMENT_FIELD_NUMBER = 8; - @SuppressWarnings("serial") - private volatile java.lang.Object experiment_ = ""; - /** - *
-   * Immutable. The experiment to which the ExperimentArm belongs.
-   * 
- * - * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The experiment. - */ - @java.lang.Override - public java.lang.String getExperiment() { - java.lang.Object ref = experiment_; - 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(); - experiment_ = s; - return s; + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_descriptor; } - } - /** - *
-   * Immutable. The experiment to which the ExperimentArm belongs.
-   * 
- * - * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The bytes for experiment. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getExperimentBytes() { - java.lang.Object ref = experiment_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - experiment_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.Builder.class); } - } - public static final int NAME_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; - /** - *
-   * Required. The name of the experiment arm. It must have a minimum length of
-   * 1 and maximum length of 1024. It must be unique under an experiment.
-   * 
- * - * string name = 3 [(.google.api.field_behavior) = REQUIRED]; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - 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(); - name_ = s; - return s; + public static final int ASSET_VARIATION_INFOS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List assetVariationInfos_; + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + @java.lang.Override + public java.util.List getAssetVariationInfosList() { + return assetVariationInfos_; } - } - /** - *
-   * Required. The name of the experiment arm. It must have a minimum length of
-   * 1 and maximum length of 1024. It must be unique under an experiment.
-   * 
- * - * string name = 3 [(.google.api.field_behavior) = REQUIRED]; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + @java.lang.Override + public java.util.List + getAssetVariationInfosOrBuilderList() { + return assetVariationInfos_; + } + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + @java.lang.Override + public int getAssetVariationInfosCount() { + return assetVariationInfos_.size(); + } + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo getAssetVariationInfos(int index) { + return assetVariationInfos_.get(index); + } + /** + *
+     * Details of assets associated for each experimental copy of the ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfoOrBuilder getAssetVariationInfosOrBuilder( + int index) { + return assetVariationInfos_.get(index); } - } - public static final int CONTROL_FIELD_NUMBER = 4; - private boolean control_ = false; - /** - *
-   * Whether this arm is a control arm. A control arm is the arm against
-   * which the other arms are compared.
-   * 
- * - * bool control = 4; - * @return The control. - */ - @java.lang.Override - public boolean getControl() { - return control_; - } + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; - public static final int TRAFFIC_SPLIT_FIELD_NUMBER = 5; - private long trafficSplit_ = 0L; - /** - *
-   * Traffic split of the trial arm. The value should be between 1 and 100
-   * and must total 100 between the two trial arms.
-   * 
- * - * int64 traffic_split = 5; - * @return The trafficSplit. - */ - @java.lang.Override - public long getTrafficSplit() { - return trafficSplit_; - } + memoizedIsInitialized = 1; + return true; + } - public static final int CAMPAIGNS_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList campaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - /** - *
-   * List of campaigns in the trial arm. The max length is one.
-   * 
- * - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @return A list containing the campaigns. - */ - public com.google.protobuf.ProtocolStringList - getCampaignsList() { - return campaigns_; - } - /** - *
-   * List of campaigns in the trial arm. The max length is one.
-   * 
- * - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @return The count of campaigns. - */ - public int getCampaignsCount() { - return campaigns_.size(); - } - /** - *
-   * List of campaigns in the trial arm. The max length is one.
-   * 
- * - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param index The index of the element to return. - * @return The campaigns at the given index. - */ - public java.lang.String getCampaigns(int index) { - return campaigns_.get(index); - } - /** - *
-   * List of campaigns in the trial arm. The max length is one.
-   * 
- * - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param index The index of the value to return. - * @return The bytes of the campaigns at the given index. - */ - public com.google.protobuf.ByteString - getCampaignsBytes(int index) { - return campaigns_.getByteString(index); - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < assetVariationInfos_.size(); i++) { + output.writeMessage(1, assetVariationInfos_.get(i)); + } + getUnknownFields().writeTo(output); + } - public static final int IN_DESIGN_CAMPAIGNS_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList inDesignCampaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - /** - *
-   * Output only. The in design campaigns in the treatment experiment arm.
-   * 
- * - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @return A list containing the inDesignCampaigns. - */ - public com.google.protobuf.ProtocolStringList - getInDesignCampaignsList() { - return inDesignCampaigns_; - } - /** - *
-   * Output only. The in design campaigns in the treatment experiment arm.
-   * 
- * - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @return The count of inDesignCampaigns. - */ - public int getInDesignCampaignsCount() { - return inDesignCampaigns_.size(); - } - /** - *
-   * Output only. The in design campaigns in the treatment experiment arm.
-   * 
- * - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param index The index of the element to return. - * @return The inDesignCampaigns at the given index. - */ - public java.lang.String getInDesignCampaigns(int index) { - return inDesignCampaigns_.get(index); - } - /** - *
-   * Output only. The in design campaigns in the treatment experiment arm.
-   * 
- * - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param index The index of the value to return. - * @return The bytes of the inDesignCampaigns at the given index. - */ - public com.google.protobuf.ByteString - getInDesignCampaignsBytes(int index) { - return inDesignCampaigns_.getByteString(index); - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + size = 0; + for (int i = 0; i < assetVariationInfos_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, assetVariationInfos_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - memoizedIsInitialized = 1; - return true; - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo other = (com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo) obj; - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceName_)) { - com.google.protobuf.GeneratedMessage.writeString(output, 1, resourceName_); + if (!getAssetVariationInfosList() + .equals(other.getAssetVariationInfosList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; } - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessage.writeString(output, 3, name_); + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getAssetVariationInfosCount() > 0) { + hash = (37 * hash) + ASSET_VARIATION_INFOS_FIELD_NUMBER; + hash = (53 * hash) + getAssetVariationInfosList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - if (control_ != false) { - output.writeBool(4, control_); + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (trafficSplit_ != 0L) { - output.writeInt64(5, trafficSplit_); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - for (int i = 0; i < campaigns_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 6, campaigns_.getRaw(i)); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - for (int i = 0; i < inDesignCampaigns_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 7, inDesignCampaigns_.getRaw(i)); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(experiment_)) { - com.google.protobuf.GeneratedMessage.writeString(output, 8, experiment_); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceName_)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(1, resourceName_); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(3, name_); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); } - if (control_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(4, control_); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); } - if (trafficSplit_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(5, trafficSplit_); + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); } - { - int dataSize = 0; - for (int i = 0; i < campaigns_.size(); i++) { - dataSize += computeStringSizeNoTag(campaigns_.getRaw(i)); - } - size += dataSize; - size += 1 * getCampaignsList().size(); + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - { - int dataSize = 0; - for (int i = 0; i < inDesignCampaigns_.size(); i++) { - dataSize += computeStringSizeNoTag(inDesignCampaigns_.getRaw(i)); - } - size += dataSize; - size += 1 * getInDesignCampaignsList().size(); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); } - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(experiment_)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(8, experiment_); + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); } - 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.v24.resources.ExperimentArm)) { - return super.equals(obj); + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); } - com.google.ads.googleads.v24.resources.ExperimentArm other = (com.google.ads.googleads.v24.resources.ExperimentArm) obj; - - if (!getResourceName() - .equals(other.getResourceName())) return false; - if (!getExperiment() - .equals(other.getExperiment())) return false; - if (!getName() - .equals(other.getName())) return false; - if (getControl() - != other.getControl()) return false; - if (getTrafficSplit() - != other.getTrafficSplit()) return false; - if (!getCampaignsList() - .equals(other.getCampaignsList())) return false; - if (!getInDesignCampaignsList() - .equals(other.getInDesignCampaignsList())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; + public static Builder newBuilder(com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + RESOURCE_NAME_FIELD_NUMBER; - hash = (53 * hash) + getResourceName().hashCode(); - hash = (37 * hash) + EXPERIMENT_FIELD_NUMBER; - hash = (53 * hash) + getExperiment().hashCode(); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - hash = (37 * hash) + CONTROL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getControl()); - hash = (37 * hash) + TRAFFIC_SPLIT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTrafficSplit()); - if (getCampaignsCount() > 0) { - hash = (37 * hash) + CAMPAIGNS_FIELD_NUMBER; - hash = (53 * hash) + getCampaignsList().hashCode(); + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); } - if (getInDesignCampaignsCount() > 0) { - hash = (37 * hash) + IN_DESIGN_CAMPAIGNS_FIELD_NUMBER; - hash = (53 * hash) + getInDesignCampaignsList().hashCode(); + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } + /** + *
+     * Details of assets associated with the experimental copies of
+     * ads.
+     * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo) + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_descriptor; + } - public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static com.google.ads.googleads.v24.resources.ExperimentArm 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.v24.resources.ExperimentArm parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static com.google.ads.googleads.v24.resources.ExperimentArm 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.v24.resources.ExperimentArm parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage - .parseWithIOException(PARSER, input); - } - public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage - .parseWithIOException(PARSER, input, extensionRegistry); - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.Builder.class); + } - public static com.google.ads.googleads.v24.resources.ExperimentArm parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage - .parseDelimitedWithIOException(PARSER, input); - } + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.newBuilder() + private Builder() { - public static com.google.ads.googleads.v24.resources.ExperimentArm parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage - .parseWithIOException(PARSER, input); - } - public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage - .parseWithIOException(PARSER, input, extensionRegistry); - } + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (assetVariationInfosBuilder_ == null) { + assetVariationInfos_ = java.util.Collections.emptyList(); + } else { + assetVariationInfos_ = null; + assetVariationInfosBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo build() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo result = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo result) { + if (assetVariationInfosBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + assetVariationInfos_ = java.util.Collections.unmodifiableList(assetVariationInfos_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.assetVariationInfos_ = assetVariationInfos_; + } else { + result.assetVariationInfos_ = assetVariationInfosBuilder_.build(); + } + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.getDefaultInstance()) return this; + if (assetVariationInfosBuilder_ == null) { + if (!other.assetVariationInfos_.isEmpty()) { + if (assetVariationInfos_.isEmpty()) { + assetVariationInfos_ = other.assetVariationInfos_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.addAll(other.assetVariationInfos_); + } + onChanged(); + } + } else { + if (!other.assetVariationInfos_.isEmpty()) { + if (assetVariationInfosBuilder_.isEmpty()) { + assetVariationInfosBuilder_.dispose(); + assetVariationInfosBuilder_ = null; + assetVariationInfos_ = other.assetVariationInfos_; + bitField0_ = (bitField0_ & ~0x00000001); + assetVariationInfosBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + internalGetAssetVariationInfosFieldBuilder() : null; + } else { + assetVariationInfosBuilder_.addAllMessages(other.assetVariationInfos_); + } + } + } + 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 10: { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo m = + input.readMessage( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.parser(), + extensionRegistry); + if (assetVariationInfosBuilder_ == null) { + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.add(m); + } else { + assetVariationInfosBuilder_.addMessage(m); + } + break; + } // case 10 + 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 java.util.List assetVariationInfos_ = + java.util.Collections.emptyList(); + private void ensureAssetVariationInfosIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + assetVariationInfos_ = new java.util.ArrayList(assetVariationInfos_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfoOrBuilder> assetVariationInfosBuilder_; + + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public java.util.List getAssetVariationInfosList() { + if (assetVariationInfosBuilder_ == null) { + return java.util.Collections.unmodifiableList(assetVariationInfos_); + } else { + return assetVariationInfosBuilder_.getMessageList(); + } + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public int getAssetVariationInfosCount() { + if (assetVariationInfosBuilder_ == null) { + return assetVariationInfos_.size(); + } else { + return assetVariationInfosBuilder_.getCount(); + } + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo getAssetVariationInfos(int index) { + if (assetVariationInfosBuilder_ == null) { + return assetVariationInfos_.get(index); + } else { + return assetVariationInfosBuilder_.getMessage(index); + } + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder setAssetVariationInfos( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo value) { + if (assetVariationInfosBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.set(index, value); + onChanged(); + } else { + assetVariationInfosBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder setAssetVariationInfos( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder builderForValue) { + if (assetVariationInfosBuilder_ == null) { + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.set(index, builderForValue.build()); + onChanged(); + } else { + assetVariationInfosBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder addAssetVariationInfos(com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo value) { + if (assetVariationInfosBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.add(value); + onChanged(); + } else { + assetVariationInfosBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder addAssetVariationInfos( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo value) { + if (assetVariationInfosBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.add(index, value); + onChanged(); + } else { + assetVariationInfosBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder addAssetVariationInfos( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder builderForValue) { + if (assetVariationInfosBuilder_ == null) { + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.add(builderForValue.build()); + onChanged(); + } else { + assetVariationInfosBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder addAssetVariationInfos( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder builderForValue) { + if (assetVariationInfosBuilder_ == null) { + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.add(index, builderForValue.build()); + onChanged(); + } else { + assetVariationInfosBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder addAllAssetVariationInfos( + java.lang.Iterable values) { + if (assetVariationInfosBuilder_ == null) { + ensureAssetVariationInfosIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assetVariationInfos_); + onChanged(); + } else { + assetVariationInfosBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder clearAssetVariationInfos() { + if (assetVariationInfosBuilder_ == null) { + assetVariationInfos_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + assetVariationInfosBuilder_.clear(); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public Builder removeAssetVariationInfos(int index) { + if (assetVariationInfosBuilder_ == null) { + ensureAssetVariationInfosIsMutable(); + assetVariationInfos_.remove(index); + onChanged(); + } else { + assetVariationInfosBuilder_.remove(index); + } + return this; + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder getAssetVariationInfosBuilder( + int index) { + return internalGetAssetVariationInfosFieldBuilder().getBuilder(index); + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfoOrBuilder getAssetVariationInfosOrBuilder( + int index) { + if (assetVariationInfosBuilder_ == null) { + return assetVariationInfos_.get(index); } else { + return assetVariationInfosBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public java.util.List + getAssetVariationInfosOrBuilderList() { + if (assetVariationInfosBuilder_ != null) { + return assetVariationInfosBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(assetVariationInfos_); + } + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder addAssetVariationInfosBuilder() { + return internalGetAssetVariationInfosFieldBuilder().addBuilder( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.getDefaultInstance()); + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder addAssetVariationInfosBuilder( + int index) { + return internalGetAssetVariationInfosFieldBuilder().addBuilder( + index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.getDefaultInstance()); + } + /** + *
+       * Details of assets associated for each experimental copy of the ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo asset_variation_infos = 1; + */ + public java.util.List + getAssetVariationInfosBuilderList() { + return internalGetAssetVariationInfosFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfoOrBuilder> + internalGetAssetVariationInfosFieldBuilder() { + if (assetVariationInfosBuilder_ == null) { + assetVariationInfosBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfoOrBuilder>( + assetVariationInfos_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + assetVariationInfos_ = null; + } + return assetVariationInfosBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo) + private static final com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo(); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AssetTestingInfo 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.v24.resources.ExperimentArm.AssetTestingInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(com.google.ads.googleads.v24.resources.ExperimentArm 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.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; + public interface AssetVariationInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Associated base AdGroup resource name.
+     * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @return The baseAdGroup. + */ + java.lang.String getBaseAdGroup(); + /** + *
+     * Associated base AdGroup resource name.
+     * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for baseAdGroup. + */ + com.google.protobuf.ByteString + getBaseAdGroupBytes(); + + /** + *
+     * Associated base ad resource name.
+     * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @return The baseAd. + */ + java.lang.String getBaseAd(); + /** + *
+     * Associated base ad resource name.
+     * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @return The bytes for baseAd. + */ + com.google.protobuf.ByteString + getBaseAdBytes(); + + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + java.util.List + getAssetDetailsList(); + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail getAssetDetails(int index); + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + int getAssetDetailsCount(); + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + java.util.List + getAssetDetailsOrBuilderList(); + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetailOrBuilder getAssetDetailsOrBuilder( + int index); } /** *
-   * A Google ads experiment for users to experiment changes on multiple
-   * campaigns, compare the performance, and apply the effective changes.
+   * Details of asset variations to be performed on an ad in the control ad
+   * group.
    * 
* - * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm} + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo} */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder implements - // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm) - com.google.ads.googleads.v24.resources.ExperimentArmOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor; + public static final class AssetVariationInfo extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo) + AssetVariationInfoOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + AssetVariationInfo.class.getName()); + } + // Use AssetVariationInfo.newBuilder() to construct. + private AssetVariationInfo(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AssetVariationInfo() { + baseAdGroup_ = ""; + baseAd_ = ""; + assetDetails_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_fieldAccessorTable + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_fieldAccessorTable .ensureFieldAccessorsInitialized( - com.google.ads.googleads.v24.resources.ExperimentArm.class, com.google.ads.googleads.v24.resources.ExperimentArm.Builder.class); + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder.class); } - // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.newBuilder() - private Builder() { + public static final int BASE_AD_GROUP_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object baseAdGroup_ = ""; + /** + *
+     * Associated base AdGroup resource name.
+     * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @return The baseAdGroup. + */ + @java.lang.Override + public java.lang.String getBaseAdGroup() { + java.lang.Object ref = baseAdGroup_; + 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(); + baseAdGroup_ = s; + return s; + } + } + /** + *
+     * Associated base AdGroup resource name.
+     * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for baseAdGroup. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBaseAdGroupBytes() { + java.lang.Object ref = baseAdGroup_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + baseAdGroup_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BASE_AD_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object baseAd_ = ""; + /** + *
+     * Associated base ad resource name.
+     * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @return The baseAd. + */ + @java.lang.Override + public java.lang.String getBaseAd() { + java.lang.Object ref = baseAd_; + 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(); + baseAd_ = s; + return s; + } + } + /** + *
+     * Associated base ad resource name.
+     * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @return The bytes for baseAd. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBaseAdBytes() { + java.lang.Object ref = baseAd_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + baseAd_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ASSET_DETAILS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private java.util.List assetDetails_; + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + @java.lang.Override + public java.util.List getAssetDetailsList() { + return assetDetails_; + } + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + @java.lang.Override + public java.util.List + getAssetDetailsOrBuilderList() { + return assetDetails_; + } + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + @java.lang.Override + public int getAssetDetailsCount() { + return assetDetails_.size(); + } + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail getAssetDetails(int index) { + return assetDetails_.get(index); + } + /** + *
+     * Details for each asset that is being modified from the base
+     * ad.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetailOrBuilder getAssetDetailsOrBuilder( + int index) { + return assetDetails_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(baseAdGroup_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, baseAdGroup_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(baseAd_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, baseAd_); + } + for (int i = 0; i < assetDetails_.size(); i++) { + output.writeMessage(3, assetDetails_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(baseAdGroup_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, baseAdGroup_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(baseAd_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, baseAd_); + } + for (int i = 0; i < assetDetails_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, assetDetails_.get(i)); + } + 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.v24.resources.ExperimentArm.AssetVariationInfo)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo other = (com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo) obj; + + if (!getBaseAdGroup() + .equals(other.getBaseAdGroup())) return false; + if (!getBaseAd() + .equals(other.getBaseAd())) return false; + if (!getAssetDetailsList() + .equals(other.getAssetDetailsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + BASE_AD_GROUP_FIELD_NUMBER; + hash = (53 * hash) + getBaseAdGroup().hashCode(); + hash = (37 * hash) + BASE_AD_FIELD_NUMBER; + hash = (53 * hash) + getBaseAd().hashCode(); + if (getAssetDetailsCount() > 0) { + hash = (37 * hash) + ASSET_DETAILS_FIELD_NUMBER; + hash = (53 * hash) + getAssetDetailsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo 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.v24.resources.ExperimentArm.AssetVariationInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo 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.v24.resources.ExperimentArm.AssetVariationInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.resources.ExperimentArm.AssetVariationInfo 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Details of asset variations to be performed on an ad in the control ad
+     * group.
+     * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo) + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + baseAdGroup_ = ""; + baseAd_ = ""; + if (assetDetailsBuilder_ == null) { + assetDetails_ = java.util.Collections.emptyList(); + } else { + assetDetails_ = null; + assetDetailsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo build() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo result = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo result) { + if (assetDetailsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + assetDetails_ = java.util.Collections.unmodifiableList(assetDetails_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.assetDetails_ = assetDetails_; + } else { + result.assetDetails_ = assetDetailsBuilder_.build(); + } + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.baseAdGroup_ = baseAdGroup_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.baseAd_ = baseAd_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo.getDefaultInstance()) return this; + if (!other.getBaseAdGroup().isEmpty()) { + baseAdGroup_ = other.baseAdGroup_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getBaseAd().isEmpty()) { + baseAd_ = other.baseAd_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (assetDetailsBuilder_ == null) { + if (!other.assetDetails_.isEmpty()) { + if (assetDetails_.isEmpty()) { + assetDetails_ = other.assetDetails_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureAssetDetailsIsMutable(); + assetDetails_.addAll(other.assetDetails_); + } + onChanged(); + } + } else { + if (!other.assetDetails_.isEmpty()) { + if (assetDetailsBuilder_.isEmpty()) { + assetDetailsBuilder_.dispose(); + assetDetailsBuilder_ = null; + assetDetails_ = other.assetDetails_; + bitField0_ = (bitField0_ & ~0x00000004); + assetDetailsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + internalGetAssetDetailsFieldBuilder() : null; + } else { + assetDetailsBuilder_.addAllMessages(other.assetDetails_); + } + } + } + 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 10: { + baseAdGroup_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + baseAd_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail m = + input.readMessage( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.parser(), + extensionRegistry); + if (assetDetailsBuilder_ == null) { + ensureAssetDetailsIsMutable(); + assetDetails_.add(m); + } else { + assetDetailsBuilder_.addMessage(m); + } + break; + } // case 26 + 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 java.lang.Object baseAdGroup_ = ""; + /** + *
+       * Associated base AdGroup resource name.
+       * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @return The baseAdGroup. + */ + public java.lang.String getBaseAdGroup() { + java.lang.Object ref = baseAdGroup_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + baseAdGroup_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Associated base AdGroup resource name.
+       * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for baseAdGroup. + */ + public com.google.protobuf.ByteString + getBaseAdGroupBytes() { + java.lang.Object ref = baseAdGroup_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + baseAdGroup_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Associated base AdGroup resource name.
+       * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @param value The baseAdGroup to set. + * @return This builder for chaining. + */ + public Builder setBaseAdGroup( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + baseAdGroup_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Associated base AdGroup resource name.
+       * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearBaseAdGroup() { + baseAdGroup_ = getDefaultInstance().getBaseAdGroup(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * Associated base AdGroup resource name.
+       * 
+ * + * string base_ad_group = 1 [(.google.api.resource_reference) = { ... } + * @param value The bytes for baseAdGroup to set. + * @return This builder for chaining. + */ + public Builder setBaseAdGroupBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + baseAdGroup_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + private java.lang.Object baseAd_ = ""; + /** + *
+       * Associated base ad resource name.
+       * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @return The baseAd. + */ + public java.lang.String getBaseAd() { + java.lang.Object ref = baseAd_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + baseAd_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Associated base ad resource name.
+       * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @return The bytes for baseAd. + */ + public com.google.protobuf.ByteString + getBaseAdBytes() { + java.lang.Object ref = baseAd_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + baseAd_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Associated base ad resource name.
+       * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @param value The baseAd to set. + * @return This builder for chaining. + */ + public Builder setBaseAd( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + baseAd_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Associated base ad resource name.
+       * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearBaseAd() { + baseAd_ = getDefaultInstance().getBaseAd(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * Associated base ad resource name.
+       * 
+ * + * string base_ad = 2 [(.google.api.resource_reference) = { ... } + * @param value The bytes for baseAd to set. + * @return This builder for chaining. + */ + public Builder setBaseAdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + baseAd_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List assetDetails_ = + java.util.Collections.emptyList(); + private void ensureAssetDetailsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + assetDetails_ = new java.util.ArrayList(assetDetails_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetailOrBuilder> assetDetailsBuilder_; + + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public java.util.List getAssetDetailsList() { + if (assetDetailsBuilder_ == null) { + return java.util.Collections.unmodifiableList(assetDetails_); + } else { + return assetDetailsBuilder_.getMessageList(); + } + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public int getAssetDetailsCount() { + if (assetDetailsBuilder_ == null) { + return assetDetails_.size(); + } else { + return assetDetailsBuilder_.getCount(); + } + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail getAssetDetails(int index) { + if (assetDetailsBuilder_ == null) { + return assetDetails_.get(index); + } else { + return assetDetailsBuilder_.getMessage(index); + } + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder setAssetDetails( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail value) { + if (assetDetailsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetDetailsIsMutable(); + assetDetails_.set(index, value); + onChanged(); + } else { + assetDetailsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder setAssetDetails( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder builderForValue) { + if (assetDetailsBuilder_ == null) { + ensureAssetDetailsIsMutable(); + assetDetails_.set(index, builderForValue.build()); + onChanged(); + } else { + assetDetailsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder addAssetDetails(com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail value) { + if (assetDetailsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetDetailsIsMutable(); + assetDetails_.add(value); + onChanged(); + } else { + assetDetailsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder addAssetDetails( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail value) { + if (assetDetailsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetDetailsIsMutable(); + assetDetails_.add(index, value); + onChanged(); + } else { + assetDetailsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder addAssetDetails( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder builderForValue) { + if (assetDetailsBuilder_ == null) { + ensureAssetDetailsIsMutable(); + assetDetails_.add(builderForValue.build()); + onChanged(); + } else { + assetDetailsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder addAssetDetails( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder builderForValue) { + if (assetDetailsBuilder_ == null) { + ensureAssetDetailsIsMutable(); + assetDetails_.add(index, builderForValue.build()); + onChanged(); + } else { + assetDetailsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder addAllAssetDetails( + java.lang.Iterable values) { + if (assetDetailsBuilder_ == null) { + ensureAssetDetailsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assetDetails_); + onChanged(); + } else { + assetDetailsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder clearAssetDetails() { + if (assetDetailsBuilder_ == null) { + assetDetails_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + assetDetailsBuilder_.clear(); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public Builder removeAssetDetails(int index) { + if (assetDetailsBuilder_ == null) { + ensureAssetDetailsIsMutable(); + assetDetails_.remove(index); + onChanged(); + } else { + assetDetailsBuilder_.remove(index); + } + return this; + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder getAssetDetailsBuilder( + int index) { + return internalGetAssetDetailsFieldBuilder().getBuilder(index); + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetailOrBuilder getAssetDetailsOrBuilder( + int index) { + if (assetDetailsBuilder_ == null) { + return assetDetails_.get(index); } else { + return assetDetailsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public java.util.List + getAssetDetailsOrBuilderList() { + if (assetDetailsBuilder_ != null) { + return assetDetailsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(assetDetails_); + } + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder addAssetDetailsBuilder() { + return internalGetAssetDetailsFieldBuilder().addBuilder( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.getDefaultInstance()); + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder addAssetDetailsBuilder( + int index) { + return internalGetAssetDetailsFieldBuilder().addBuilder( + index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.getDefaultInstance()); + } + /** + *
+       * Details for each asset that is being modified from the base
+       * ad.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetDetail asset_details = 3; + */ + public java.util.List + getAssetDetailsBuilderList() { + return internalGetAssetDetailsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetailOrBuilder> + internalGetAssetDetailsFieldBuilder() { + if (assetDetailsBuilder_ == null) { + assetDetailsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetailOrBuilder>( + assetDetails_, + ((bitField0_ & 0x00000004) != 0), + getParentForChildren(), + isClean()); + assetDetails_ = null; + } + return assetDetailsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo) + private static final com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo(); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetVariationInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AssetVariationInfo 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.v24.resources.ExperimentArm.AssetVariationInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AssetDetailOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.resources.ExperimentArm.AssetDetail) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * The asset that is being modified for the experiment.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The asset. + */ + java.lang.String getAsset(); + /** + *
+     * The asset that is being modified for the experiment.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for asset. + */ + com.google.protobuf.ByteString + getAssetBytes(); + + /** + *
+     * Field type for the asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The enum numeric value on the wire for fieldType. + */ + int getFieldTypeValue(); + /** + *
+     * Field type for the asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The fieldType. + */ + com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType getFieldType(); + + /** + *
+     * Enum to specify whether the asset is removed or added from the base
+     * ad.
+     * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @return The enum numeric value on the wire for assetDetailOperation. + */ + int getAssetDetailOperationValue(); + /** + *
+     * Enum to specify whether the asset is removed or added from the base
+     * ad.
+     * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @return The assetDetailOperation. + */ + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation getAssetDetailOperation(); + } + /** + *
+   * Details of an asset modification for the experiment ad, such as adding or
+   * removing the asset.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetDetail} + */ + public static final class AssetDetail extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetDetail) + AssetDetailOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + AssetDetail.class.getName()); + } + // Use AssetDetail.newBuilder() to construct. + private AssetDetail(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AssetDetail() { + asset_ = ""; + fieldType_ = 0; + assetDetailOperation_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder.class); + } + + public static final int ASSET_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object asset_ = ""; + /** + *
+     * The asset that is being modified for the experiment.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The asset. + */ + @java.lang.Override + public java.lang.String getAsset() { + java.lang.Object ref = asset_; + 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(); + asset_ = s; + return s; + } + } + /** + *
+     * The asset that is being modified for the experiment.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for asset. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAssetBytes() { + java.lang.Object ref = asset_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + asset_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FIELD_TYPE_FIELD_NUMBER = 2; + private int fieldType_ = 0; + /** + *
+     * Field type for the asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The enum numeric value on the wire for fieldType. + */ + @java.lang.Override public int getFieldTypeValue() { + return fieldType_; + } + /** + *
+     * Field type for the asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The fieldType. + */ + @java.lang.Override public com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType getFieldType() { + com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType result = com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.forNumber(fieldType_); + return result == null ? com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNRECOGNIZED : result; + } + + public static final int ASSET_DETAIL_OPERATION_FIELD_NUMBER = 3; + private int assetDetailOperation_ = 0; + /** + *
+     * Enum to specify whether the asset is removed or added from the base
+     * ad.
+     * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @return The enum numeric value on the wire for assetDetailOperation. + */ + @java.lang.Override public int getAssetDetailOperationValue() { + return assetDetailOperation_; + } + /** + *
+     * Enum to specify whether the asset is removed or added from the base
+     * ad.
+     * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @return The assetDetailOperation. + */ + @java.lang.Override public com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation getAssetDetailOperation() { + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation result = com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation.forNumber(assetDetailOperation_); + return result == null ? com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(asset_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, asset_); + } + if (fieldType_ != com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNSPECIFIED.getNumber()) { + output.writeEnum(2, fieldType_); + } + if (assetDetailOperation_ != com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation.UNSPECIFIED.getNumber()) { + output.writeEnum(3, assetDetailOperation_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(asset_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, asset_); + } + if (fieldType_ != com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, fieldType_); + } + if (assetDetailOperation_ != com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation.UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, assetDetailOperation_); + } + 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.v24.resources.ExperimentArm.AssetDetail)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail other = (com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail) obj; + + if (!getAsset() + .equals(other.getAsset())) return false; + if (fieldType_ != other.fieldType_) return false; + if (assetDetailOperation_ != other.assetDetailOperation_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ASSET_FIELD_NUMBER; + hash = (53 * hash) + getAsset().hashCode(); + hash = (37 * hash) + FIELD_TYPE_FIELD_NUMBER; + hash = (53 * hash) + fieldType_; + hash = (37 * hash) + ASSET_DETAIL_OPERATION_FIELD_NUMBER; + hash = (53 * hash) + assetDetailOperation_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail 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.v24.resources.ExperimentArm.AssetDetail parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail 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.v24.resources.ExperimentArm.AssetDetail parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.resources.ExperimentArm.AssetDetail 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Details of an asset modification for the experiment ad, such as adding or
+     * removing the asset.
+     * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetDetail} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetDetail) + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetailOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + asset_ = ""; + fieldType_ = 0; + assetDetailOperation_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail build() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail result = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.asset_ = asset_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.fieldType_ = fieldType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.assetDetailOperation_ = assetDetailOperation_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail.getDefaultInstance()) return this; + if (!other.getAsset().isEmpty()) { + asset_ = other.asset_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.fieldType_ != 0) { + setFieldTypeValue(other.getFieldTypeValue()); + } + if (other.assetDetailOperation_ != 0) { + setAssetDetailOperationValue(other.getAssetDetailOperationValue()); + } + 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 10: { + asset_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + fieldType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + assetDetailOperation_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + 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 java.lang.Object asset_ = ""; + /** + *
+       * The asset that is being modified for the experiment.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The asset. + */ + public java.lang.String getAsset() { + java.lang.Object ref = asset_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + asset_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * The asset that is being modified for the experiment.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for asset. + */ + public com.google.protobuf.ByteString + getAssetBytes() { + java.lang.Object ref = asset_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + asset_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * The asset that is being modified for the experiment.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @param value The asset to set. + * @return This builder for chaining. + */ + public Builder setAsset( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + asset_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * The asset that is being modified for the experiment.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearAsset() { + asset_ = getDefaultInstance().getAsset(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * The asset that is being modified for the experiment.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @param value The bytes for asset to set. + * @return This builder for chaining. + */ + public Builder setAssetBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + asset_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int fieldType_ = 0; + /** + *
+       * Field type for the asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The enum numeric value on the wire for fieldType. + */ + @java.lang.Override public int getFieldTypeValue() { + return fieldType_; + } + /** + *
+       * Field type for the asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @param value The enum numeric value on the wire for fieldType to set. + * @return This builder for chaining. + */ + public Builder setFieldTypeValue(int value) { + fieldType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Field type for the asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The fieldType. + */ + @java.lang.Override + public com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType getFieldType() { + com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType result = com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.forNumber(fieldType_); + return result == null ? com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNRECOGNIZED : result; + } + /** + *
+       * Field type for the asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @param value The fieldType to set. + * @return This builder for chaining. + */ + public Builder setFieldType(com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType value) { + if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000002; + fieldType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Field type for the asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return This builder for chaining. + */ + public Builder clearFieldType() { + bitField0_ = (bitField0_ & ~0x00000002); + fieldType_ = 0; + onChanged(); + return this; + } + + private int assetDetailOperation_ = 0; + /** + *
+       * Enum to specify whether the asset is removed or added from the base
+       * ad.
+       * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @return The enum numeric value on the wire for assetDetailOperation. + */ + @java.lang.Override public int getAssetDetailOperationValue() { + return assetDetailOperation_; + } + /** + *
+       * Enum to specify whether the asset is removed or added from the base
+       * ad.
+       * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @param value The enum numeric value on the wire for assetDetailOperation to set. + * @return This builder for chaining. + */ + public Builder setAssetDetailOperationValue(int value) { + assetDetailOperation_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Enum to specify whether the asset is removed or added from the base
+       * ad.
+       * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @return The assetDetailOperation. + */ + @java.lang.Override + public com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation getAssetDetailOperation() { + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation result = com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation.forNumber(assetDetailOperation_); + return result == null ? com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation.UNRECOGNIZED : result; + } + /** + *
+       * Enum to specify whether the asset is removed or added from the base
+       * ad.
+       * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @param value The assetDetailOperation to set. + * @return This builder for chaining. + */ + public Builder setAssetDetailOperation(com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation value) { + if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000004; + assetDetailOperation_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Enum to specify whether the asset is removed or added from the base
+       * ad.
+       * 
+ * + * .google.ads.googleads.v24.enums.ExperimentAssetDetailOperationEnum.ExperimentAssetDetailOperation asset_detail_operation = 3; + * @return This builder for chaining. + */ + public Builder clearAssetDetailOperation() { + bitField0_ = (bitField0_ & ~0x00000004); + assetDetailOperation_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetDetail) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetDetail) + private static final com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail(); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetDetail getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AssetDetail 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.v24.resources.ExperimentArm.AssetDetail getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AssetGroupInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Asset group resource name.
+     * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @return The assetGroup. + */ + java.lang.String getAssetGroup(); + /** + *
+     * Asset group resource name.
+     * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for assetGroup. + */ + com.google.protobuf.ByteString + getAssetGroupBytes(); + + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + java.util.List + getAssetGroupAssetsList(); + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo getAssetGroupAssets(int index); + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + int getAssetGroupAssetsCount(); + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + java.util.List + getAssetGroupAssetsOrBuilderList(); + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfoOrBuilder getAssetGroupAssetsOrBuilder( + int index); + } + /** + *
+   * Holds the asset groups included in an arm of an Optimize Assets experiment.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo} + */ + public static final class AssetGroupInfo extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo) + AssetGroupInfoOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + AssetGroupInfo.class.getName()); + } + // Use AssetGroupInfo.newBuilder() to construct. + private AssetGroupInfo(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AssetGroupInfo() { + assetGroup_ = ""; + assetGroupAssets_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder.class); + } + + public static final int ASSET_GROUP_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object assetGroup_ = ""; + /** + *
+     * Asset group resource name.
+     * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @return The assetGroup. + */ + @java.lang.Override + public java.lang.String getAssetGroup() { + java.lang.Object ref = assetGroup_; + 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(); + assetGroup_ = s; + return s; + } + } + /** + *
+     * Asset group resource name.
+     * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for assetGroup. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAssetGroupBytes() { + java.lang.Object ref = assetGroup_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + assetGroup_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ASSET_GROUP_ASSETS_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private java.util.List assetGroupAssets_; + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + @java.lang.Override + public java.util.List getAssetGroupAssetsList() { + return assetGroupAssets_; + } + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + @java.lang.Override + public java.util.List + getAssetGroupAssetsOrBuilderList() { + return assetGroupAssets_; + } + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + @java.lang.Override + public int getAssetGroupAssetsCount() { + return assetGroupAssets_.size(); + } + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo getAssetGroupAssets(int index) { + return assetGroupAssets_.get(index); + } + /** + *
+     * List of asset group assets under the asset group.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfoOrBuilder getAssetGroupAssetsOrBuilder( + int index) { + return assetGroupAssets_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(assetGroup_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, assetGroup_); + } + for (int i = 0; i < assetGroupAssets_.size(); i++) { + output.writeMessage(2, assetGroupAssets_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(assetGroup_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, assetGroup_); + } + for (int i = 0; i < assetGroupAssets_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, assetGroupAssets_.get(i)); + } + 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.v24.resources.ExperimentArm.AssetGroupInfo)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo other = (com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo) obj; + + if (!getAssetGroup() + .equals(other.getAssetGroup())) return false; + if (!getAssetGroupAssetsList() + .equals(other.getAssetGroupAssetsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ASSET_GROUP_FIELD_NUMBER; + hash = (53 * hash) + getAssetGroup().hashCode(); + if (getAssetGroupAssetsCount() > 0) { + hash = (37 * hash) + ASSET_GROUP_ASSETS_FIELD_NUMBER; + hash = (53 * hash) + getAssetGroupAssetsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo 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.v24.resources.ExperimentArm.AssetGroupInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo 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.v24.resources.ExperimentArm.AssetGroupInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.resources.ExperimentArm.AssetGroupInfo 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Holds the asset groups included in an arm of an Optimize Assets experiment.
+     * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo) + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + assetGroup_ = ""; + if (assetGroupAssetsBuilder_ == null) { + assetGroupAssets_ = java.util.Collections.emptyList(); + } else { + assetGroupAssets_ = null; + assetGroupAssetsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo build() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo result = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo result) { + if (assetGroupAssetsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + assetGroupAssets_ = java.util.Collections.unmodifiableList(assetGroupAssets_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.assetGroupAssets_ = assetGroupAssets_; + } else { + result.assetGroupAssets_ = assetGroupAssetsBuilder_.build(); + } + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.assetGroup_ = assetGroup_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.getDefaultInstance()) return this; + if (!other.getAssetGroup().isEmpty()) { + assetGroup_ = other.assetGroup_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (assetGroupAssetsBuilder_ == null) { + if (!other.assetGroupAssets_.isEmpty()) { + if (assetGroupAssets_.isEmpty()) { + assetGroupAssets_ = other.assetGroupAssets_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.addAll(other.assetGroupAssets_); + } + onChanged(); + } + } else { + if (!other.assetGroupAssets_.isEmpty()) { + if (assetGroupAssetsBuilder_.isEmpty()) { + assetGroupAssetsBuilder_.dispose(); + assetGroupAssetsBuilder_ = null; + assetGroupAssets_ = other.assetGroupAssets_; + bitField0_ = (bitField0_ & ~0x00000002); + assetGroupAssetsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + internalGetAssetGroupAssetsFieldBuilder() : null; + } else { + assetGroupAssetsBuilder_.addAllMessages(other.assetGroupAssets_); + } + } + } + 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 10: { + assetGroup_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo m = + input.readMessage( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.parser(), + extensionRegistry); + if (assetGroupAssetsBuilder_ == null) { + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.add(m); + } else { + assetGroupAssetsBuilder_.addMessage(m); + } + break; + } // case 18 + 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 java.lang.Object assetGroup_ = ""; + /** + *
+       * Asset group resource name.
+       * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @return The assetGroup. + */ + public java.lang.String getAssetGroup() { + java.lang.Object ref = assetGroup_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + assetGroup_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Asset group resource name.
+       * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for assetGroup. + */ + public com.google.protobuf.ByteString + getAssetGroupBytes() { + java.lang.Object ref = assetGroup_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + assetGroup_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Asset group resource name.
+       * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @param value The assetGroup to set. + * @return This builder for chaining. + */ + public Builder setAssetGroup( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + assetGroup_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Asset group resource name.
+       * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearAssetGroup() { + assetGroup_ = getDefaultInstance().getAssetGroup(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * Asset group resource name.
+       * 
+ * + * string asset_group = 1 [(.google.api.resource_reference) = { ... } + * @param value The bytes for assetGroup to set. + * @return This builder for chaining. + */ + public Builder setAssetGroupBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + assetGroup_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.util.List assetGroupAssets_ = + java.util.Collections.emptyList(); + private void ensureAssetGroupAssetsIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + assetGroupAssets_ = new java.util.ArrayList(assetGroupAssets_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfoOrBuilder> assetGroupAssetsBuilder_; + + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public java.util.List getAssetGroupAssetsList() { + if (assetGroupAssetsBuilder_ == null) { + return java.util.Collections.unmodifiableList(assetGroupAssets_); + } else { + return assetGroupAssetsBuilder_.getMessageList(); + } + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public int getAssetGroupAssetsCount() { + if (assetGroupAssetsBuilder_ == null) { + return assetGroupAssets_.size(); + } else { + return assetGroupAssetsBuilder_.getCount(); + } + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo getAssetGroupAssets(int index) { + if (assetGroupAssetsBuilder_ == null) { + return assetGroupAssets_.get(index); + } else { + return assetGroupAssetsBuilder_.getMessage(index); + } + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder setAssetGroupAssets( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo value) { + if (assetGroupAssetsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.set(index, value); + onChanged(); + } else { + assetGroupAssetsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder setAssetGroupAssets( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder builderForValue) { + if (assetGroupAssetsBuilder_ == null) { + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.set(index, builderForValue.build()); + onChanged(); + } else { + assetGroupAssetsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder addAssetGroupAssets(com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo value) { + if (assetGroupAssetsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.add(value); + onChanged(); + } else { + assetGroupAssetsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder addAssetGroupAssets( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo value) { + if (assetGroupAssetsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.add(index, value); + onChanged(); + } else { + assetGroupAssetsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder addAssetGroupAssets( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder builderForValue) { + if (assetGroupAssetsBuilder_ == null) { + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.add(builderForValue.build()); + onChanged(); + } else { + assetGroupAssetsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder addAssetGroupAssets( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder builderForValue) { + if (assetGroupAssetsBuilder_ == null) { + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.add(index, builderForValue.build()); + onChanged(); + } else { + assetGroupAssetsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder addAllAssetGroupAssets( + java.lang.Iterable values) { + if (assetGroupAssetsBuilder_ == null) { + ensureAssetGroupAssetsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assetGroupAssets_); + onChanged(); + } else { + assetGroupAssetsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder clearAssetGroupAssets() { + if (assetGroupAssetsBuilder_ == null) { + assetGroupAssets_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + assetGroupAssetsBuilder_.clear(); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public Builder removeAssetGroupAssets(int index) { + if (assetGroupAssetsBuilder_ == null) { + ensureAssetGroupAssetsIsMutable(); + assetGroupAssets_.remove(index); + onChanged(); + } else { + assetGroupAssetsBuilder_.remove(index); + } + return this; + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder getAssetGroupAssetsBuilder( + int index) { + return internalGetAssetGroupAssetsFieldBuilder().getBuilder(index); + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfoOrBuilder getAssetGroupAssetsOrBuilder( + int index) { + if (assetGroupAssetsBuilder_ == null) { + return assetGroupAssets_.get(index); } else { + return assetGroupAssetsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public java.util.List + getAssetGroupAssetsOrBuilderList() { + if (assetGroupAssetsBuilder_ != null) { + return assetGroupAssetsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(assetGroupAssets_); + } + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder addAssetGroupAssetsBuilder() { + return internalGetAssetGroupAssetsFieldBuilder().addBuilder( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.getDefaultInstance()); + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder addAssetGroupAssetsBuilder( + int index) { + return internalGetAssetGroupAssetsFieldBuilder().addBuilder( + index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.getDefaultInstance()); + } + /** + *
+       * List of asset group assets under the asset group.
+       * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo asset_group_assets = 2; + */ + public java.util.List + getAssetGroupAssetsBuilderList() { + return internalGetAssetGroupAssetsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfoOrBuilder> + internalGetAssetGroupAssetsFieldBuilder() { + if (assetGroupAssetsBuilder_ == null) { + assetGroupAssetsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfoOrBuilder>( + assetGroupAssets_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + assetGroupAssets_ = null; + } + return assetGroupAssetsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo) + private static final com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo(); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AssetGroupInfo 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.v24.resources.ExperimentArm.AssetGroupInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AssetGroupAssetInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Asset resource name of the asset group asset.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The asset. + */ + java.lang.String getAsset(); + /** + *
+     * Asset resource name of the asset group asset.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for asset. + */ + com.google.protobuf.ByteString + getAssetBytes(); + + /** + *
+     * Field type of the asset group asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The enum numeric value on the wire for fieldType. + */ + int getFieldTypeValue(); + /** + *
+     * Field type of the asset group asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The fieldType. + */ + com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType getFieldType(); + } + /** + *
+   * Holds the details of an asset within an asset group for an Optimize Assets
+   * experiment arm.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo} + */ + public static final class AssetGroupAssetInfo extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo) + AssetGroupAssetInfoOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + AssetGroupAssetInfo.class.getName()); + } + // Use AssetGroupAssetInfo.newBuilder() to construct. + private AssetGroupAssetInfo(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AssetGroupAssetInfo() { + asset_ = ""; + fieldType_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder.class); + } + + public static final int ASSET_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object asset_ = ""; + /** + *
+     * Asset resource name of the asset group asset.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The asset. + */ + @java.lang.Override + public java.lang.String getAsset() { + java.lang.Object ref = asset_; + 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(); + asset_ = s; + return s; + } + } + /** + *
+     * Asset resource name of the asset group asset.
+     * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for asset. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAssetBytes() { + java.lang.Object ref = asset_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + asset_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FIELD_TYPE_FIELD_NUMBER = 2; + private int fieldType_ = 0; + /** + *
+     * Field type of the asset group asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The enum numeric value on the wire for fieldType. + */ + @java.lang.Override public int getFieldTypeValue() { + return fieldType_; + } + /** + *
+     * Field type of the asset group asset.
+     * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The fieldType. + */ + @java.lang.Override public com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType getFieldType() { + com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType result = com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.forNumber(fieldType_); + return result == null ? com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(asset_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, asset_); + } + if (fieldType_ != com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNSPECIFIED.getNumber()) { + output.writeEnum(2, fieldType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(asset_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, asset_); + } + if (fieldType_ != com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, fieldType_); + } + 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.v24.resources.ExperimentArm.AssetGroupAssetInfo)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo other = (com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo) obj; + + if (!getAsset() + .equals(other.getAsset())) return false; + if (fieldType_ != other.fieldType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ASSET_FIELD_NUMBER; + hash = (53 * hash) + getAsset().hashCode(); + hash = (37 * hash) + FIELD_TYPE_FIELD_NUMBER; + hash = (53 * hash) + fieldType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo 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.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo 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.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.resources.ExperimentArm.AssetGroupAssetInfo 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Holds the details of an asset within an asset group for an Optimize Assets
+     * experiment arm.
+     * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo) + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + asset_ = ""; + fieldType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo build() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo result = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.asset_ = asset_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.fieldType_ = fieldType_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo.getDefaultInstance()) return this; + if (!other.getAsset().isEmpty()) { + asset_ = other.asset_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.fieldType_ != 0) { + setFieldTypeValue(other.getFieldTypeValue()); + } + 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 10: { + asset_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + fieldType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + 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 java.lang.Object asset_ = ""; + /** + *
+       * Asset resource name of the asset group asset.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The asset. + */ + public java.lang.String getAsset() { + java.lang.Object ref = asset_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + asset_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Asset resource name of the asset group asset.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return The bytes for asset. + */ + public com.google.protobuf.ByteString + getAssetBytes() { + java.lang.Object ref = asset_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + asset_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Asset resource name of the asset group asset.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @param value The asset to set. + * @return This builder for chaining. + */ + public Builder setAsset( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + asset_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Asset resource name of the asset group asset.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearAsset() { + asset_ = getDefaultInstance().getAsset(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * Asset resource name of the asset group asset.
+       * 
+ * + * string asset = 1 [(.google.api.resource_reference) = { ... } + * @param value The bytes for asset to set. + * @return This builder for chaining. + */ + public Builder setAssetBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + asset_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int fieldType_ = 0; + /** + *
+       * Field type of the asset group asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The enum numeric value on the wire for fieldType. + */ + @java.lang.Override public int getFieldTypeValue() { + return fieldType_; + } + /** + *
+       * Field type of the asset group asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @param value The enum numeric value on the wire for fieldType to set. + * @return This builder for chaining. + */ + public Builder setFieldTypeValue(int value) { + fieldType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Field type of the asset group asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return The fieldType. + */ + @java.lang.Override + public com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType getFieldType() { + com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType result = com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.forNumber(fieldType_); + return result == null ? com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType.UNRECOGNIZED : result; + } + /** + *
+       * Field type of the asset group asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @param value The fieldType to set. + * @return This builder for chaining. + */ + public Builder setFieldType(com.google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType value) { + if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000002; + fieldType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Field type of the asset group asset.
+       * 
+ * + * .google.ads.googleads.v24.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2; + * @return This builder for chaining. + */ + public Builder clearFieldType() { + bitField0_ = (bitField0_ & ~0x00000002); + fieldType_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo) + private static final com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo(); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupAssetInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AssetGroupAssetInfo 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.v24.resources.ExperimentArm.AssetGroupAssetInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ExperimentalPerformanceMaxCampaignSettingsOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Immutable. The amount of budget of the Performance Max experiment
+     * campaign.
+     * 
+ * + * int64 budget_amount_micros = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The budgetAmountMicros. + */ + long getBudgetAmountMicros(); + + /** + *
+     * Immutable. Target ROAS of the Performance Max experiment campaign.
+     * 
+ * + * double target_roas = 2 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The targetRoas. + */ + double getTargetRoas(); + + /** + *
+     * Immutable. Target CPA of the Performance Max experiment campaign.
+     * 
+ * + * int64 target_cpa_micros = 3 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The targetCpaMicros. + */ + long getTargetCpaMicros(); + + /** + *
+     * Immutable. Bidding strategy type of the Performance Max experiment
+     * campaign.
+     * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The enum numeric value on the wire for biddingStrategyType. + */ + int getBiddingStrategyTypeValue(); + /** + *
+     * Immutable. Bidding strategy type of the Performance Max experiment
+     * campaign.
+     * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The biddingStrategyType. + */ + com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType getBiddingStrategyType(); + } + /** + *
+   * Parameters for an experiment to create a Performance Max campaign.
+   * The experimental Performance Max campaign gets created automatically
+   * based on the existing SHOPPING campaign settings and the settings
+   * specified in this field.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings} + */ + public static final class ExperimentalPerformanceMaxCampaignSettings extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings) + ExperimentalPerformanceMaxCampaignSettingsOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + ExperimentalPerformanceMaxCampaignSettings.class.getName()); + } + // Use ExperimentalPerformanceMaxCampaignSettings.newBuilder() to construct. + private ExperimentalPerformanceMaxCampaignSettings(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ExperimentalPerformanceMaxCampaignSettings() { + biddingStrategyType_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.class, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.Builder.class); + } + + public static final int BUDGET_AMOUNT_MICROS_FIELD_NUMBER = 1; + private long budgetAmountMicros_ = 0L; + /** + *
+     * Immutable. The amount of budget of the Performance Max experiment
+     * campaign.
+     * 
+ * + * int64 budget_amount_micros = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The budgetAmountMicros. + */ + @java.lang.Override + public long getBudgetAmountMicros() { + return budgetAmountMicros_; + } + + public static final int TARGET_ROAS_FIELD_NUMBER = 2; + private double targetRoas_ = 0D; + /** + *
+     * Immutable. Target ROAS of the Performance Max experiment campaign.
+     * 
+ * + * double target_roas = 2 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The targetRoas. + */ + @java.lang.Override + public double getTargetRoas() { + return targetRoas_; + } + + public static final int TARGET_CPA_MICROS_FIELD_NUMBER = 3; + private long targetCpaMicros_ = 0L; + /** + *
+     * Immutable. Target CPA of the Performance Max experiment campaign.
+     * 
+ * + * int64 target_cpa_micros = 3 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The targetCpaMicros. + */ + @java.lang.Override + public long getTargetCpaMicros() { + return targetCpaMicros_; + } + + public static final int BIDDING_STRATEGY_TYPE_FIELD_NUMBER = 4; + private int biddingStrategyType_ = 0; + /** + *
+     * Immutable. Bidding strategy type of the Performance Max experiment
+     * campaign.
+     * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The enum numeric value on the wire for biddingStrategyType. + */ + @java.lang.Override public int getBiddingStrategyTypeValue() { + return biddingStrategyType_; + } + /** + *
+     * Immutable. Bidding strategy type of the Performance Max experiment
+     * campaign.
+     * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The biddingStrategyType. + */ + @java.lang.Override public com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType getBiddingStrategyType() { + com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType result = com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType.forNumber(biddingStrategyType_); + return result == null ? com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (budgetAmountMicros_ != 0L) { + output.writeInt64(1, budgetAmountMicros_); + } + if (java.lang.Double.doubleToRawLongBits(targetRoas_) != 0) { + output.writeDouble(2, targetRoas_); + } + if (targetCpaMicros_ != 0L) { + output.writeInt64(3, targetCpaMicros_); + } + if (biddingStrategyType_ != com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNSPECIFIED.getNumber()) { + output.writeEnum(4, biddingStrategyType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (budgetAmountMicros_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, budgetAmountMicros_); + } + if (java.lang.Double.doubleToRawLongBits(targetRoas_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(2, targetRoas_); + } + if (targetCpaMicros_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, targetCpaMicros_); + } + if (biddingStrategyType_ != com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(4, biddingStrategyType_); + } + 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.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings other = (com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings) obj; + + if (getBudgetAmountMicros() + != other.getBudgetAmountMicros()) return false; + if (java.lang.Double.doubleToLongBits(getTargetRoas()) + != java.lang.Double.doubleToLongBits( + other.getTargetRoas())) return false; + if (getTargetCpaMicros() + != other.getTargetCpaMicros()) return false; + if (biddingStrategyType_ != other.biddingStrategyType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + BUDGET_AMOUNT_MICROS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getBudgetAmountMicros()); + hash = (37 * hash) + TARGET_ROAS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getTargetRoas())); + hash = (37 * hash) + TARGET_CPA_MICROS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTargetCpaMicros()); + hash = (37 * hash) + BIDDING_STRATEGY_TYPE_FIELD_NUMBER; + hash = (53 * hash) + biddingStrategyType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings 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.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings 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.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Parameters for an experiment to create a Performance Max campaign.
+     * The experimental Performance Max campaign gets created automatically
+     * based on the existing SHOPPING campaign settings and the settings
+     * specified in this field.
+     * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings) + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettingsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.class, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + budgetAmountMicros_ = 0L; + targetRoas_ = 0D; + targetCpaMicros_ = 0L; + biddingStrategyType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings build() { + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings result = new com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.budgetAmountMicros_ = budgetAmountMicros_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.targetRoas_ = targetRoas_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.targetCpaMicros_ = targetCpaMicros_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.biddingStrategyType_ = biddingStrategyType_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.getDefaultInstance()) return this; + if (other.getBudgetAmountMicros() != 0L) { + setBudgetAmountMicros(other.getBudgetAmountMicros()); + } + if (java.lang.Double.doubleToRawLongBits(other.getTargetRoas()) != 0) { + setTargetRoas(other.getTargetRoas()); + } + if (other.getTargetCpaMicros() != 0L) { + setTargetCpaMicros(other.getTargetCpaMicros()); + } + if (other.biddingStrategyType_ != 0) { + setBiddingStrategyTypeValue(other.getBiddingStrategyTypeValue()); + } + 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 8: { + budgetAmountMicros_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 17: { + targetRoas_ = input.readDouble(); + bitField0_ |= 0x00000002; + break; + } // case 17 + case 24: { + targetCpaMicros_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + biddingStrategyType_ = input.readEnum(); + bitField0_ |= 0x00000008; + break; + } // case 32 + 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 long budgetAmountMicros_ ; + /** + *
+       * Immutable. The amount of budget of the Performance Max experiment
+       * campaign.
+       * 
+ * + * int64 budget_amount_micros = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The budgetAmountMicros. + */ + @java.lang.Override + public long getBudgetAmountMicros() { + return budgetAmountMicros_; + } + /** + *
+       * Immutable. The amount of budget of the Performance Max experiment
+       * campaign.
+       * 
+ * + * int64 budget_amount_micros = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @param value The budgetAmountMicros to set. + * @return This builder for chaining. + */ + public Builder setBudgetAmountMicros(long value) { + + budgetAmountMicros_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Immutable. The amount of budget of the Performance Max experiment
+       * campaign.
+       * 
+ * + * int64 budget_amount_micros = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return This builder for chaining. + */ + public Builder clearBudgetAmountMicros() { + bitField0_ = (bitField0_ & ~0x00000001); + budgetAmountMicros_ = 0L; + onChanged(); + return this; + } + + private double targetRoas_ ; + /** + *
+       * Immutable. Target ROAS of the Performance Max experiment campaign.
+       * 
+ * + * double target_roas = 2 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The targetRoas. + */ + @java.lang.Override + public double getTargetRoas() { + return targetRoas_; + } + /** + *
+       * Immutable. Target ROAS of the Performance Max experiment campaign.
+       * 
+ * + * double target_roas = 2 [(.google.api.field_behavior) = IMMUTABLE]; + * @param value The targetRoas to set. + * @return This builder for chaining. + */ + public Builder setTargetRoas(double value) { + + targetRoas_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Immutable. Target ROAS of the Performance Max experiment campaign.
+       * 
+ * + * double target_roas = 2 [(.google.api.field_behavior) = IMMUTABLE]; + * @return This builder for chaining. + */ + public Builder clearTargetRoas() { + bitField0_ = (bitField0_ & ~0x00000002); + targetRoas_ = 0D; + onChanged(); + return this; + } + + private long targetCpaMicros_ ; + /** + *
+       * Immutable. Target CPA of the Performance Max experiment campaign.
+       * 
+ * + * int64 target_cpa_micros = 3 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The targetCpaMicros. + */ + @java.lang.Override + public long getTargetCpaMicros() { + return targetCpaMicros_; + } + /** + *
+       * Immutable. Target CPA of the Performance Max experiment campaign.
+       * 
+ * + * int64 target_cpa_micros = 3 [(.google.api.field_behavior) = IMMUTABLE]; + * @param value The targetCpaMicros to set. + * @return This builder for chaining. + */ + public Builder setTargetCpaMicros(long value) { + + targetCpaMicros_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Immutable. Target CPA of the Performance Max experiment campaign.
+       * 
+ * + * int64 target_cpa_micros = 3 [(.google.api.field_behavior) = IMMUTABLE]; + * @return This builder for chaining. + */ + public Builder clearTargetCpaMicros() { + bitField0_ = (bitField0_ & ~0x00000004); + targetCpaMicros_ = 0L; + onChanged(); + return this; + } + + private int biddingStrategyType_ = 0; + /** + *
+       * Immutable. Bidding strategy type of the Performance Max experiment
+       * campaign.
+       * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The enum numeric value on the wire for biddingStrategyType. + */ + @java.lang.Override public int getBiddingStrategyTypeValue() { + return biddingStrategyType_; + } + /** + *
+       * Immutable. Bidding strategy type of the Performance Max experiment
+       * campaign.
+       * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @param value The enum numeric value on the wire for biddingStrategyType to set. + * @return This builder for chaining. + */ + public Builder setBiddingStrategyTypeValue(int value) { + biddingStrategyType_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * Immutable. Bidding strategy type of the Performance Max experiment
+       * campaign.
+       * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The biddingStrategyType. + */ + @java.lang.Override + public com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType getBiddingStrategyType() { + com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType result = com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType.forNumber(biddingStrategyType_); + return result == null ? com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNRECOGNIZED : result; + } + /** + *
+       * Immutable. Bidding strategy type of the Performance Max experiment
+       * campaign.
+       * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @param value The biddingStrategyType to set. + * @return This builder for chaining. + */ + public Builder setBiddingStrategyType(com.google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType value) { + if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000008; + biddingStrategyType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Immutable. Bidding strategy type of the Performance Max experiment
+       * campaign.
+       * 
+ * + * .google.ads.googleads.v24.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 4 [(.google.api.field_behavior) = IMMUTABLE]; + * @return This builder for chaining. + */ + public Builder clearBiddingStrategyType() { + bitField0_ = (bitField0_ & ~0x00000008); + biddingStrategyType_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings) + private static final com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings(); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ExperimentalPerformanceMaxCampaignSettings 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.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PerformanceMaxExperimentArmInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Immutable. Performance Max campaign settings to be applied on the
+     * Google-created experimental campaign in a Performance Max experiment. The
+     * experimental campaign is automatically created by Google upon experiment
+     * creation.
+     * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the experimentalPerformanceMaxCampaignSettings field is set. + */ + boolean hasExperimentalPerformanceMaxCampaignSettings(); + /** + *
+     * Immutable. Performance Max campaign settings to be applied on the
+     * Google-created experimental campaign in a Performance Max experiment. The
+     * experimental campaign is automatically created by Google upon experiment
+     * creation.
+     * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The experimentalPerformanceMaxCampaignSettings. + */ + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings getExperimentalPerformanceMaxCampaignSettings(); + /** + *
+     * Immutable. Performance Max campaign settings to be applied on the
+     * Google-created experimental campaign in a Performance Max experiment. The
+     * experimental campaign is automatically created by Google upon experiment
+     * creation.
+     * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettingsOrBuilder getExperimentalPerformanceMaxCampaignSettingsOrBuilder(); + } + /** + *
+   * Information specific to the control or treatment campaign of a Performance
+   * Max experiment.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo} + */ + public static final class PerformanceMaxExperimentArmInfo extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo) + PerformanceMaxExperimentArmInfoOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 31, + /* patch= */ 0, + /* suffix= */ "", + PerformanceMaxExperimentArmInfo.class.getName()); + } + // Use PerformanceMaxExperimentArmInfo.newBuilder() to construct. + private PerformanceMaxExperimentArmInfo(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private PerformanceMaxExperimentArmInfo() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.Builder.class); + } + + private int bitField0_; + public static final int EXPERIMENTAL_PERFORMANCE_MAX_CAMPAIGN_SETTINGS_FIELD_NUMBER = 1; + private com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimentalPerformanceMaxCampaignSettings_; + /** + *
+     * Immutable. Performance Max campaign settings to be applied on the
+     * Google-created experimental campaign in a Performance Max experiment. The
+     * experimental campaign is automatically created by Google upon experiment
+     * creation.
+     * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the experimentalPerformanceMaxCampaignSettings field is set. + */ + @java.lang.Override + public boolean hasExperimentalPerformanceMaxCampaignSettings() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * Immutable. Performance Max campaign settings to be applied on the
+     * Google-created experimental campaign in a Performance Max experiment. The
+     * experimental campaign is automatically created by Google upon experiment
+     * creation.
+     * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The experimentalPerformanceMaxCampaignSettings. + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings getExperimentalPerformanceMaxCampaignSettings() { + return experimentalPerformanceMaxCampaignSettings_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.getDefaultInstance() : experimentalPerformanceMaxCampaignSettings_; + } + /** + *
+     * Immutable. Performance Max campaign settings to be applied on the
+     * Google-created experimental campaign in a Performance Max experiment. The
+     * experimental campaign is automatically created by Google upon experiment
+     * creation.
+     * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettingsOrBuilder getExperimentalPerformanceMaxCampaignSettingsOrBuilder() { + return experimentalPerformanceMaxCampaignSettings_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.getDefaultInstance() : experimentalPerformanceMaxCampaignSettings_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getExperimentalPerformanceMaxCampaignSettings()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getExperimentalPerformanceMaxCampaignSettings()); + } + 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.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo other = (com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo) obj; + + if (hasExperimentalPerformanceMaxCampaignSettings() != other.hasExperimentalPerformanceMaxCampaignSettings()) return false; + if (hasExperimentalPerformanceMaxCampaignSettings()) { + if (!getExperimentalPerformanceMaxCampaignSettings() + .equals(other.getExperimentalPerformanceMaxCampaignSettings())) 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 (hasExperimentalPerformanceMaxCampaignSettings()) { + hash = (37 * hash) + EXPERIMENTAL_PERFORMANCE_MAX_CAMPAIGN_SETTINGS_FIELD_NUMBER; + hash = (53 * hash) + getExperimentalPerformanceMaxCampaignSettings().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo 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.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo 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.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Information specific to the control or treatment campaign of a Performance
+     * Max experiment.
+     * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo) + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.class, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + internalGetExperimentalPerformanceMaxCampaignSettingsFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + experimentalPerformanceMaxCampaignSettings_ = null; + if (experimentalPerformanceMaxCampaignSettingsBuilder_ != null) { + experimentalPerformanceMaxCampaignSettingsBuilder_.dispose(); + experimentalPerformanceMaxCampaignSettingsBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo build() { + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo result = new com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.experimentalPerformanceMaxCampaignSettings_ = experimentalPerformanceMaxCampaignSettingsBuilder_ == null + ? experimentalPerformanceMaxCampaignSettings_ + : experimentalPerformanceMaxCampaignSettingsBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.getDefaultInstance()) return this; + if (other.hasExperimentalPerformanceMaxCampaignSettings()) { + mergeExperimentalPerformanceMaxCampaignSettings(other.getExperimentalPerformanceMaxCampaignSettings()); + } + 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 10: { + input.readMessage( + internalGetExperimentalPerformanceMaxCampaignSettingsFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + 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 com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimentalPerformanceMaxCampaignSettings_; + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettingsOrBuilder> experimentalPerformanceMaxCampaignSettingsBuilder_; + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the experimentalPerformanceMaxCampaignSettings field is set. + */ + public boolean hasExperimentalPerformanceMaxCampaignSettings() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The experimentalPerformanceMaxCampaignSettings. + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings getExperimentalPerformanceMaxCampaignSettings() { + if (experimentalPerformanceMaxCampaignSettingsBuilder_ == null) { + return experimentalPerformanceMaxCampaignSettings_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.getDefaultInstance() : experimentalPerformanceMaxCampaignSettings_; + } else { + return experimentalPerformanceMaxCampaignSettingsBuilder_.getMessage(); + } + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder setExperimentalPerformanceMaxCampaignSettings(com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings value) { + if (experimentalPerformanceMaxCampaignSettingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + experimentalPerformanceMaxCampaignSettings_ = value; + } else { + experimentalPerformanceMaxCampaignSettingsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder setExperimentalPerformanceMaxCampaignSettings( + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.Builder builderForValue) { + if (experimentalPerformanceMaxCampaignSettingsBuilder_ == null) { + experimentalPerformanceMaxCampaignSettings_ = builderForValue.build(); + } else { + experimentalPerformanceMaxCampaignSettingsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder mergeExperimentalPerformanceMaxCampaignSettings(com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings value) { + if (experimentalPerformanceMaxCampaignSettingsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + experimentalPerformanceMaxCampaignSettings_ != null && + experimentalPerformanceMaxCampaignSettings_ != com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.getDefaultInstance()) { + getExperimentalPerformanceMaxCampaignSettingsBuilder().mergeFrom(value); + } else { + experimentalPerformanceMaxCampaignSettings_ = value; + } + } else { + experimentalPerformanceMaxCampaignSettingsBuilder_.mergeFrom(value); + } + if (experimentalPerformanceMaxCampaignSettings_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public Builder clearExperimentalPerformanceMaxCampaignSettings() { + bitField0_ = (bitField0_ & ~0x00000001); + experimentalPerformanceMaxCampaignSettings_ = null; + if (experimentalPerformanceMaxCampaignSettingsBuilder_ != null) { + experimentalPerformanceMaxCampaignSettingsBuilder_.dispose(); + experimentalPerformanceMaxCampaignSettingsBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.Builder getExperimentalPerformanceMaxCampaignSettingsBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return internalGetExperimentalPerformanceMaxCampaignSettingsFieldBuilder().getBuilder(); + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettingsOrBuilder getExperimentalPerformanceMaxCampaignSettingsOrBuilder() { + if (experimentalPerformanceMaxCampaignSettingsBuilder_ != null) { + return experimentalPerformanceMaxCampaignSettingsBuilder_.getMessageOrBuilder(); + } else { + return experimentalPerformanceMaxCampaignSettings_ == null ? + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.getDefaultInstance() : experimentalPerformanceMaxCampaignSettings_; + } + } + /** + *
+       * Immutable. Performance Max campaign settings to be applied on the
+       * Google-created experimental campaign in a Performance Max experiment. The
+       * experimental campaign is automatically created by Google upon experiment
+       * creation.
+       * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings experimental_performance_max_campaign_settings = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettingsOrBuilder> + internalGetExperimentalPerformanceMaxCampaignSettingsFieldBuilder() { + if (experimentalPerformanceMaxCampaignSettingsBuilder_ == null) { + experimentalPerformanceMaxCampaignSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettings.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.ExperimentalPerformanceMaxCampaignSettingsOrBuilder>( + getExperimentalPerformanceMaxCampaignSettings(), + getParentForChildren(), + isClean()); + experimentalPerformanceMaxCampaignSettings_ = null; + } + return experimentalPerformanceMaxCampaignSettingsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo) + } + + // @@protoc_insertion_point(class_scope:google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo) + private static final com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo(); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PerformanceMaxExperimentArmInfo 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.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private int bitField0_; + public static final int RESOURCE_NAME_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object resourceName_ = ""; + /** + *
+   * Immutable. The resource name of the experiment arm.
+   * Experiment arm resource names have the form:
+   *
+   * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+   * 
+ * + * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The resourceName. + */ + @java.lang.Override + public java.lang.String getResourceName() { + java.lang.Object ref = resourceName_; + 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(); + resourceName_ = s; + return s; + } + } + /** + *
+   * Immutable. The resource name of the experiment arm.
+   * Experiment arm resource names have the form:
+   *
+   * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+   * 
+ * + * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The bytes for resourceName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getResourceNameBytes() { + java.lang.Object ref = resourceName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EXPERIMENT_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private volatile java.lang.Object experiment_ = ""; + /** + *
+   * Immutable. The experiment to which the ExperimentArm belongs.
+   * 
+ * + * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The experiment. + */ + @java.lang.Override + public java.lang.String getExperiment() { + java.lang.Object ref = experiment_; + 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(); + experiment_ = s; + return s; + } + } + /** + *
+   * Immutable. The experiment to which the ExperimentArm belongs.
+   * 
+ * + * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The bytes for experiment. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getExperimentBytes() { + java.lang.Object ref = experiment_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + experiment_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NAME_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + *
+   * Required. The name of the experiment arm. It must have a minimum length of
+   * 1 and maximum length of 1024. It must be unique under an experiment.
+   * 
+ * + * string name = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + 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(); + name_ = s; + return s; + } + } + /** + *
+   * Required. The name of the experiment arm. It must have a minimum length of
+   * 1 and maximum length of 1024. It must be unique under an experiment.
+   * 
+ * + * string name = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONTROL_FIELD_NUMBER = 4; + private boolean control_ = false; + /** + *
+   * Whether this arm is a control arm. A control arm is the arm against
+   * which the other arms are compared.
+   * 
+ * + * bool control = 4; + * @return The control. + */ + @java.lang.Override + public boolean getControl() { + return control_; + } + + public static final int TRAFFIC_SPLIT_FIELD_NUMBER = 5; + private long trafficSplit_ = 0L; + /** + *
+   * Traffic split of the trial arm. The value should be between 1 and 100
+   * and must total 100 between the two trial arms.
+   * 
+ * + * int64 traffic_split = 5; + * @return The trafficSplit. + */ + @java.lang.Override + public long getTrafficSplit() { + return trafficSplit_; + } + + public static final int CAMPAIGNS_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList campaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + *
+   * List of campaigns in the trial arm. The max length is one.
+   * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @return A list containing the campaigns. + */ + public com.google.protobuf.ProtocolStringList + getCampaignsList() { + return campaigns_; + } + /** + *
+   * List of campaigns in the trial arm. The max length is one.
+   * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @return The count of campaigns. + */ + public int getCampaignsCount() { + return campaigns_.size(); + } + /** + *
+   * List of campaigns in the trial arm. The max length is one.
+   * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param index The index of the element to return. + * @return The campaigns at the given index. + */ + public java.lang.String getCampaigns(int index) { + return campaigns_.get(index); + } + /** + *
+   * List of campaigns in the trial arm. The max length is one.
+   * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param index The index of the value to return. + * @return The bytes of the campaigns at the given index. + */ + public com.google.protobuf.ByteString + getCampaignsBytes(int index) { + return campaigns_.getByteString(index); + } + + public static final int IN_DESIGN_CAMPAIGNS_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList inDesignCampaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + *
+   * Output only. The in design campaigns in the treatment experiment arm.
+   * 
+ * + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @return A list containing the inDesignCampaigns. + */ + public com.google.protobuf.ProtocolStringList + getInDesignCampaignsList() { + return inDesignCampaigns_; + } + /** + *
+   * Output only. The in design campaigns in the treatment experiment arm.
+   * 
+ * + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @return The count of inDesignCampaigns. + */ + public int getInDesignCampaignsCount() { + return inDesignCampaigns_.size(); + } + /** + *
+   * Output only. The in design campaigns in the treatment experiment arm.
+   * 
+ * + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param index The index of the element to return. + * @return The inDesignCampaigns at the given index. + */ + public java.lang.String getInDesignCampaigns(int index) { + return inDesignCampaigns_.get(index); + } + /** + *
+   * Output only. The in design campaigns in the treatment experiment arm.
+   * 
+ * + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param index The index of the value to return. + * @return The bytes of the inDesignCampaigns at the given index. + */ + public com.google.protobuf.ByteString + getInDesignCampaignsBytes(int index) { + return inDesignCampaigns_.getByteString(index); + } + + public static final int ASSET_TESTING_INFO_FIELD_NUMBER = 9; + private com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo assetTestingInfo_; + /** + *
+   * Details of assets under experiment.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + * @return Whether the assetTestingInfo field is set. + */ + @java.lang.Override + public boolean hasAssetTestingInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+   * Details of assets under experiment.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + * @return The assetTestingInfo. + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo getAssetTestingInfo() { + return assetTestingInfo_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.getDefaultInstance() : assetTestingInfo_; + } + /** + *
+   * Details of assets under experiment.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfoOrBuilder getAssetTestingInfoOrBuilder() { + return assetTestingInfo_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.getDefaultInstance() : assetTestingInfo_; + } + + public static final int ASSET_GROUPS_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private java.util.List assetGroups_; + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + @java.lang.Override + public java.util.List getAssetGroupsList() { + return assetGroups_; + } + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + @java.lang.Override + public java.util.List + getAssetGroupsOrBuilderList() { + return assetGroups_; + } + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + @java.lang.Override + public int getAssetGroupsCount() { + return assetGroups_.size(); + } + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo getAssetGroups(int index) { + return assetGroups_.get(index); + } + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfoOrBuilder getAssetGroupsOrBuilder( + int index) { + return assetGroups_.get(index); + } + + public static final int PERFORMANCE_MAX_EXPERIMENT_ARM_INFO_FIELD_NUMBER = 11; + private com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performanceMaxExperimentArmInfo_; + /** + *
+   * Immutable. Information specific to the control or treatment campaign of a
+   * Performance Max experiment.
+   *
+   * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+   * For example, the treatment experiment arm contains the
+   * information of treatment Performance Max campaign settings for
+   * PMAX_REPLACEMENT_SHOPPING experiments.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the performanceMaxExperimentArmInfo field is set. + */ + @java.lang.Override + public boolean hasPerformanceMaxExperimentArmInfo() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+   * Immutable. Information specific to the control or treatment campaign of a
+   * Performance Max experiment.
+   *
+   * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+   * For example, the treatment experiment arm contains the
+   * information of treatment Performance Max campaign settings for
+   * PMAX_REPLACEMENT_SHOPPING experiments.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The performanceMaxExperimentArmInfo. + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo getPerformanceMaxExperimentArmInfo() { + return performanceMaxExperimentArmInfo_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.getDefaultInstance() : performanceMaxExperimentArmInfo_; + } + /** + *
+   * Immutable. Information specific to the control or treatment campaign of a
+   * Performance Max experiment.
+   *
+   * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+   * For example, the treatment experiment arm contains the
+   * information of treatment Performance Max campaign settings for
+   * PMAX_REPLACEMENT_SHOPPING experiments.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + */ + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfoOrBuilder getPerformanceMaxExperimentArmInfoOrBuilder() { + return performanceMaxExperimentArmInfo_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.getDefaultInstance() : performanceMaxExperimentArmInfo_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, resourceName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, name_); + } + if (control_ != false) { + output.writeBool(4, control_); + } + if (trafficSplit_ != 0L) { + output.writeInt64(5, trafficSplit_); + } + for (int i = 0; i < campaigns_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 6, campaigns_.getRaw(i)); + } + for (int i = 0; i < inDesignCampaigns_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, inDesignCampaigns_.getRaw(i)); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(experiment_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 8, experiment_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(9, getAssetTestingInfo()); + } + for (int i = 0; i < assetGroups_.size(); i++) { + output.writeMessage(10, assetGroups_.get(i)); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(11, getPerformanceMaxExperimentArmInfo()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, resourceName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, name_); + } + if (control_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(4, control_); + } + if (trafficSplit_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(5, trafficSplit_); + } + { + int dataSize = 0; + for (int i = 0; i < campaigns_.size(); i++) { + dataSize += computeStringSizeNoTag(campaigns_.getRaw(i)); + } + size += dataSize; + size += 1 * getCampaignsList().size(); + } + { + int dataSize = 0; + for (int i = 0; i < inDesignCampaigns_.size(); i++) { + dataSize += computeStringSizeNoTag(inDesignCampaigns_.getRaw(i)); + } + size += dataSize; + size += 1 * getInDesignCampaignsList().size(); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(experiment_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(8, experiment_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, getAssetTestingInfo()); + } + for (int i = 0; i < assetGroups_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, assetGroups_.get(i)); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, getPerformanceMaxExperimentArmInfo()); + } + 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.v24.resources.ExperimentArm)) { + return super.equals(obj); + } + com.google.ads.googleads.v24.resources.ExperimentArm other = (com.google.ads.googleads.v24.resources.ExperimentArm) obj; + + if (!getResourceName() + .equals(other.getResourceName())) return false; + if (!getExperiment() + .equals(other.getExperiment())) return false; + if (!getName() + .equals(other.getName())) return false; + if (getControl() + != other.getControl()) return false; + if (getTrafficSplit() + != other.getTrafficSplit()) return false; + if (!getCampaignsList() + .equals(other.getCampaignsList())) return false; + if (!getInDesignCampaignsList() + .equals(other.getInDesignCampaignsList())) return false; + if (hasAssetTestingInfo() != other.hasAssetTestingInfo()) return false; + if (hasAssetTestingInfo()) { + if (!getAssetTestingInfo() + .equals(other.getAssetTestingInfo())) return false; + } + if (!getAssetGroupsList() + .equals(other.getAssetGroupsList())) return false; + if (hasPerformanceMaxExperimentArmInfo() != other.hasPerformanceMaxExperimentArmInfo()) return false; + if (hasPerformanceMaxExperimentArmInfo()) { + if (!getPerformanceMaxExperimentArmInfo() + .equals(other.getPerformanceMaxExperimentArmInfo())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RESOURCE_NAME_FIELD_NUMBER; + hash = (53 * hash) + getResourceName().hashCode(); + hash = (37 * hash) + EXPERIMENT_FIELD_NUMBER; + hash = (53 * hash) + getExperiment().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + CONTROL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getControl()); + hash = (37 * hash) + TRAFFIC_SPLIT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTrafficSplit()); + if (getCampaignsCount() > 0) { + hash = (37 * hash) + CAMPAIGNS_FIELD_NUMBER; + hash = (53 * hash) + getCampaignsList().hashCode(); + } + if (getInDesignCampaignsCount() > 0) { + hash = (37 * hash) + IN_DESIGN_CAMPAIGNS_FIELD_NUMBER; + hash = (53 * hash) + getInDesignCampaignsList().hashCode(); + } + if (hasAssetTestingInfo()) { + hash = (37 * hash) + ASSET_TESTING_INFO_FIELD_NUMBER; + hash = (53 * hash) + getAssetTestingInfo().hashCode(); + } + if (getAssetGroupsCount() > 0) { + hash = (37 * hash) + ASSET_GROUPS_FIELD_NUMBER; + hash = (53 * hash) + getAssetGroupsList().hashCode(); + } + if (hasPerformanceMaxExperimentArmInfo()) { + hash = (37 * hash) + PERFORMANCE_MAX_EXPERIMENT_ARM_INFO_FIELD_NUMBER; + hash = (53 * hash) + getPerformanceMaxExperimentArmInfo().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm 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.v24.resources.ExperimentArm parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm 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.v24.resources.ExperimentArm parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.ads.googleads.v24.resources.ExperimentArm parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.google.ads.googleads.v24.resources.ExperimentArm parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .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.v24.resources.ExperimentArm 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * A Google ads experiment for users to experiment changes on multiple
+   * campaigns, compare the performance, and apply the effective changes.
+   * 
+ * + * Protobuf type {@code google.ads.googleads.v24.resources.ExperimentArm} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:google.ads.googleads.v24.resources.ExperimentArm) + com.google.ads.googleads.v24.resources.ExperimentArmOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.ads.googleads.v24.resources.ExperimentArm.class, com.google.ads.googleads.v24.resources.ExperimentArm.Builder.class); + } + + // Construct using com.google.ads.googleads.v24.resources.ExperimentArm.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + internalGetAssetTestingInfoFieldBuilder(); + internalGetAssetGroupsFieldBuilder(); + internalGetPerformanceMaxExperimentArmInfoFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + resourceName_ = ""; + experiment_ = ""; + name_ = ""; + control_ = false; + trafficSplit_ = 0L; + campaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + inDesignCampaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + assetTestingInfo_ = null; + if (assetTestingInfoBuilder_ != null) { + assetTestingInfoBuilder_.dispose(); + assetTestingInfoBuilder_ = null; + } + if (assetGroupsBuilder_ == null) { + assetGroups_ = java.util.Collections.emptyList(); + } else { + assetGroups_ = null; + assetGroupsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000100); + performanceMaxExperimentArmInfo_ = null; + if (performanceMaxExperimentArmInfoBuilder_ != null) { + performanceMaxExperimentArmInfoBuilder_.dispose(); + performanceMaxExperimentArmInfoBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm getDefaultInstanceForType() { + return com.google.ads.googleads.v24.resources.ExperimentArm.getDefaultInstance(); + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm build() { + com.google.ads.googleads.v24.resources.ExperimentArm result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.ads.googleads.v24.resources.ExperimentArm buildPartial() { + com.google.ads.googleads.v24.resources.ExperimentArm result = new com.google.ads.googleads.v24.resources.ExperimentArm(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.google.ads.googleads.v24.resources.ExperimentArm result) { + if (assetGroupsBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0)) { + assetGroups_ = java.util.Collections.unmodifiableList(assetGroups_); + bitField0_ = (bitField0_ & ~0x00000100); + } + result.assetGroups_ = assetGroups_; + } else { + result.assetGroups_ = assetGroupsBuilder_.build(); + } + } + + private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.resourceName_ = resourceName_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.experiment_ = experiment_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.control_ = control_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.trafficSplit_ = trafficSplit_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + campaigns_.makeImmutable(); + result.campaigns_ = campaigns_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + inDesignCampaigns_.makeImmutable(); + result.inDesignCampaigns_ = inDesignCampaigns_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000080) != 0)) { + result.assetTestingInfo_ = assetTestingInfoBuilder_ == null + ? assetTestingInfo_ + : assetTestingInfoBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.performanceMaxExperimentArmInfo_ = performanceMaxExperimentArmInfoBuilder_ == null + ? performanceMaxExperimentArmInfo_ + : performanceMaxExperimentArmInfoBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm) { + return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm other) { + if (other == com.google.ads.googleads.v24.resources.ExperimentArm.getDefaultInstance()) return this; + if (!other.getResourceName().isEmpty()) { + resourceName_ = other.resourceName_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getExperiment().isEmpty()) { + experiment_ = other.experiment_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.getControl() != false) { + setControl(other.getControl()); + } + if (other.getTrafficSplit() != 0L) { + setTrafficSplit(other.getTrafficSplit()); + } + if (!other.campaigns_.isEmpty()) { + if (campaigns_.isEmpty()) { + campaigns_ = other.campaigns_; + bitField0_ |= 0x00000020; + } else { + ensureCampaignsIsMutable(); + campaigns_.addAll(other.campaigns_); + } + onChanged(); + } + if (!other.inDesignCampaigns_.isEmpty()) { + if (inDesignCampaigns_.isEmpty()) { + inDesignCampaigns_ = other.inDesignCampaigns_; + bitField0_ |= 0x00000040; + } else { + ensureInDesignCampaignsIsMutable(); + inDesignCampaigns_.addAll(other.inDesignCampaigns_); + } + onChanged(); + } + if (other.hasAssetTestingInfo()) { + mergeAssetTestingInfo(other.getAssetTestingInfo()); + } + if (assetGroupsBuilder_ == null) { + if (!other.assetGroups_.isEmpty()) { + if (assetGroups_.isEmpty()) { + assetGroups_ = other.assetGroups_; + bitField0_ = (bitField0_ & ~0x00000100); + } else { + ensureAssetGroupsIsMutable(); + assetGroups_.addAll(other.assetGroups_); + } + onChanged(); + } + } else { + if (!other.assetGroups_.isEmpty()) { + if (assetGroupsBuilder_.isEmpty()) { + assetGroupsBuilder_.dispose(); + assetGroupsBuilder_ = null; + assetGroups_ = other.assetGroups_; + bitField0_ = (bitField0_ & ~0x00000100); + assetGroupsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + internalGetAssetGroupsFieldBuilder() : null; + } else { + assetGroupsBuilder_.addAllMessages(other.assetGroups_); + } + } + } + if (other.hasPerformanceMaxExperimentArmInfo()) { + mergePerformanceMaxExperimentArmInfo(other.getPerformanceMaxExperimentArmInfo()); + } + 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 10: { + resourceName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 26: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: { + control_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + trafficSplit_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: { + java.lang.String s = input.readStringRequireUtf8(); + ensureCampaignsIsMutable(); + campaigns_.add(s); + break; + } // case 50 + case 58: { + java.lang.String s = input.readStringRequireUtf8(); + ensureInDesignCampaignsIsMutable(); + inDesignCampaigns_.add(s); + break; + } // case 58 + case 66: { + experiment_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 66 + case 74: { + input.readMessage( + internalGetAssetTestingInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 74 + case 82: { + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo m = + input.readMessage( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.parser(), + extensionRegistry); + if (assetGroupsBuilder_ == null) { + ensureAssetGroupsIsMutable(); + assetGroups_.add(m); + } else { + assetGroupsBuilder_.addMessage(m); + } + break; + } // case 82 + case 90: { + input.readMessage( + internalGetPerformanceMaxExperimentArmInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000200; + break; + } // case 90 + 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 java.lang.Object resourceName_ = ""; + /** + *
+     * Immutable. The resource name of the experiment arm.
+     * Experiment arm resource names have the form:
+     *
+     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * 
+ * + * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The resourceName. + */ + public java.lang.String getResourceName() { + java.lang.Object ref = resourceName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * Immutable. The resource name of the experiment arm.
+     * Experiment arm resource names have the form:
+     *
+     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * 
+ * + * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The bytes for resourceName. + */ + public com.google.protobuf.ByteString + getResourceNameBytes() { + java.lang.Object ref = resourceName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * Immutable. The resource name of the experiment arm.
+     * Experiment arm resource names have the form:
+     *
+     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * 
+ * + * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @param value The resourceName to set. + * @return This builder for chaining. + */ + public Builder setResourceName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + resourceName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+     * Immutable. The resource name of the experiment arm.
+     * Experiment arm resource names have the form:
+     *
+     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * 
+ * + * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearResourceName() { + resourceName_ = getDefaultInstance().getResourceName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+     * Immutable. The resource name of the experiment arm.
+     * Experiment arm resource names have the form:
+     *
+     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * 
+ * + * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @param value The bytes for resourceName to set. + * @return This builder for chaining. + */ + public Builder setResourceNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + resourceName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object experiment_ = ""; + /** + *
+     * Immutable. The experiment to which the ExperimentArm belongs.
+     * 
+ * + * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The experiment. + */ + public java.lang.String getExperiment() { + java.lang.Object ref = experiment_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + experiment_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * Immutable. The experiment to which the ExperimentArm belongs.
+     * 
+ * + * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return The bytes for experiment. + */ + public com.google.protobuf.ByteString + getExperimentBytes() { + java.lang.Object ref = experiment_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + experiment_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * Immutable. The experiment to which the ExperimentArm belongs.
+     * 
+ * + * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @param value The experiment to set. + * @return This builder for chaining. + */ + public Builder setExperiment( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + experiment_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+     * Immutable. The experiment to which the ExperimentArm belongs.
+     * 
+ * + * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearExperiment() { + experiment_ = getDefaultInstance().getExperiment(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+     * Immutable. The experiment to which the ExperimentArm belongs.
+     * 
+ * + * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * @param value The bytes for experiment to set. + * @return This builder for chaining. + */ + public Builder setExperimentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + experiment_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object name_ = ""; + /** + *
+     * Required. The name of the experiment arm. It must have a minimum length of
+     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * 
+ * + * string name = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * Required. The name of the experiment arm. It must have a minimum length of
+     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * 
+ * + * string name = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * Required. The name of the experiment arm. It must have a minimum length of
+     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * 
+ * + * string name = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+     * Required. The name of the experiment arm. It must have a minimum length of
+     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * 
+ * + * string name = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+     * Required. The name of the experiment arm. It must have a minimum length of
+     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * 
+ * + * string name = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; } - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); + private boolean control_ ; + /** + *
+     * Whether this arm is a control arm. A control arm is the arm against
+     * which the other arms are compared.
+     * 
+ * + * bool control = 4; + * @return The control. + */ + @java.lang.Override + public boolean getControl() { + return control_; + } + /** + *
+     * Whether this arm is a control arm. A control arm is the arm against
+     * which the other arms are compared.
+     * 
+ * + * bool control = 4; + * @param value The control to set. + * @return This builder for chaining. + */ + public Builder setControl(boolean value) { + control_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - resourceName_ = ""; - experiment_ = ""; - name_ = ""; + /** + *
+     * Whether this arm is a control arm. A control arm is the arm against
+     * which the other arms are compared.
+     * 
+ * + * bool control = 4; + * @return This builder for chaining. + */ + public Builder clearControl() { + bitField0_ = (bitField0_ & ~0x00000008); control_ = false; - trafficSplit_ = 0L; - campaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - inDesignCampaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + onChanged(); return this; } + private long trafficSplit_ ; + /** + *
+     * Traffic split of the trial arm. The value should be between 1 and 100
+     * and must total 100 between the two trial arms.
+     * 
+ * + * int64 traffic_split = 5; + * @return The trafficSplit. + */ @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return com.google.ads.googleads.v24.resources.ExperimentArmProto.internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor; + public long getTrafficSplit() { + return trafficSplit_; } + /** + *
+     * Traffic split of the trial arm. The value should be between 1 and 100
+     * and must total 100 between the two trial arms.
+     * 
+ * + * int64 traffic_split = 5; + * @param value The trafficSplit to set. + * @return This builder for chaining. + */ + public Builder setTrafficSplit(long value) { - @java.lang.Override - public com.google.ads.googleads.v24.resources.ExperimentArm getDefaultInstanceForType() { - return com.google.ads.googleads.v24.resources.ExperimentArm.getDefaultInstance(); + trafficSplit_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+     * Traffic split of the trial arm. The value should be between 1 and 100
+     * and must total 100 between the two trial arms.
+     * 
+ * + * int64 traffic_split = 5; + * @return This builder for chaining. + */ + public Builder clearTrafficSplit() { + bitField0_ = (bitField0_ & ~0x00000010); + trafficSplit_ = 0L; + onChanged(); + return this; } - @java.lang.Override - public com.google.ads.googleads.v24.resources.ExperimentArm build() { - com.google.ads.googleads.v24.resources.ExperimentArm result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); + private com.google.protobuf.LazyStringArrayList campaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureCampaignsIsMutable() { + if (!campaigns_.isModifiable()) { + campaigns_ = new com.google.protobuf.LazyStringArrayList(campaigns_); } - return result; + bitField0_ |= 0x00000020; } - - @java.lang.Override - public com.google.ads.googleads.v24.resources.ExperimentArm buildPartial() { - com.google.ads.googleads.v24.resources.ExperimentArm result = new com.google.ads.googleads.v24.resources.ExperimentArm(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @return A list containing the campaigns. + */ + public com.google.protobuf.ProtocolStringList + getCampaignsList() { + campaigns_.makeImmutable(); + return campaigns_; } - - private void buildPartial0(com.google.ads.googleads.v24.resources.ExperimentArm result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.resourceName_ = resourceName_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.experiment_ = experiment_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.name_ = name_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.control_ = control_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.trafficSplit_ = trafficSplit_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - campaigns_.makeImmutable(); - result.campaigns_ = campaigns_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - inDesignCampaigns_.makeImmutable(); - result.inDesignCampaigns_ = inDesignCampaigns_; - } + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @return The count of campaigns. + */ + public int getCampaignsCount() { + return campaigns_.size(); } - - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof com.google.ads.googleads.v24.resources.ExperimentArm) { - return mergeFrom((com.google.ads.googleads.v24.resources.ExperimentArm)other); - } else { - super.mergeFrom(other); - return this; - } + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param index The index of the element to return. + * @return The campaigns at the given index. + */ + public java.lang.String getCampaigns(int index) { + return campaigns_.get(index); + } + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param index The index of the value to return. + * @return The bytes of the campaigns at the given index. + */ + public com.google.protobuf.ByteString + getCampaignsBytes(int index) { + return campaigns_.getByteString(index); + } + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param index The index to set the value at. + * @param value The campaigns to set. + * @return This builder for chaining. + */ + public Builder setCampaigns( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureCampaignsIsMutable(); + campaigns_.set(index, value); + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param value The campaigns to add. + * @return This builder for chaining. + */ + public Builder addCampaigns( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureCampaignsIsMutable(); + campaigns_.add(value); + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param values The campaigns to add. + * @return This builder for chaining. + */ + public Builder addAllCampaigns( + java.lang.Iterable values) { + ensureCampaignsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, campaigns_); + bitField0_ |= 0x00000020; + onChanged(); + return this; } - - public Builder mergeFrom(com.google.ads.googleads.v24.resources.ExperimentArm other) { - if (other == com.google.ads.googleads.v24.resources.ExperimentArm.getDefaultInstance()) return this; - if (!other.getResourceName().isEmpty()) { - resourceName_ = other.resourceName_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getExperiment().isEmpty()) { - experiment_ = other.experiment_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (other.getControl() != false) { - setControl(other.getControl()); - } - if (other.getTrafficSplit() != 0L) { - setTrafficSplit(other.getTrafficSplit()); - } - if (!other.campaigns_.isEmpty()) { - if (campaigns_.isEmpty()) { - campaigns_ = other.campaigns_; - bitField0_ |= 0x00000020; - } else { - ensureCampaignsIsMutable(); - campaigns_.addAll(other.campaigns_); - } - onChanged(); - } - if (!other.inDesignCampaigns_.isEmpty()) { - if (inDesignCampaigns_.isEmpty()) { - inDesignCampaigns_ = other.inDesignCampaigns_; - bitField0_ |= 0x00000040; - } else { - ensureInDesignCampaignsIsMutable(); - inDesignCampaigns_.addAll(other.inDesignCampaigns_); - } - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @return This builder for chaining. + */ + public Builder clearCampaigns() { + campaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020);; onChanged(); return this; } - - @java.lang.Override - public final boolean isInitialized() { - return true; + /** + *
+     * List of campaigns in the trial arm. The max length is one.
+     * 
+ * + * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } + * @param value The bytes of the campaigns to add. + * @return This builder for chaining. + */ + public Builder addCampaignsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureCampaignsIsMutable(); + campaigns_.add(value); + bitField0_ |= 0x00000020; + onChanged(); + return this; } - @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(); + private com.google.protobuf.LazyStringArrayList inDesignCampaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureInDesignCampaignsIsMutable() { + if (!inDesignCampaigns_.isModifiable()) { + inDesignCampaigns_ = new com.google.protobuf.LazyStringArrayList(inDesignCampaigns_); } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - resourceName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 26: { - name_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 32: { - control_ = input.readBool(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - trafficSplit_ = input.readInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 50: { - java.lang.String s = input.readStringRequireUtf8(); - ensureCampaignsIsMutable(); - campaigns_.add(s); - break; - } // case 50 - case 58: { - java.lang.String s = input.readStringRequireUtf8(); - ensureInDesignCampaignsIsMutable(); - inDesignCampaigns_.add(s); - break; - } // case 58 - case 66: { - experiment_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 66 - 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; + bitField0_ |= 0x00000040; } - private int bitField0_; - - private java.lang.Object resourceName_ = ""; /** *
-     * Immutable. The resource name of the experiment arm.
-     * Experiment arm resource names have the form:
+     * Output only. The in design campaigns in the treatment experiment arm.
+     * 
* - * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}` + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @return A list containing the inDesignCampaigns. + */ + public com.google.protobuf.ProtocolStringList + getInDesignCampaignsList() { + inDesignCampaigns_.makeImmutable(); + return inDesignCampaigns_; + } + /** + *
+     * Output only. The in design campaigns in the treatment experiment arm.
      * 
* - * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The resourceName. + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @return The count of inDesignCampaigns. */ - public java.lang.String getResourceName() { - java.lang.Object ref = resourceName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - resourceName_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public int getInDesignCampaignsCount() { + return inDesignCampaigns_.size(); } /** *
-     * Immutable. The resource name of the experiment arm.
-     * Experiment arm resource names have the form:
+     * Output only. The in design campaigns in the treatment experiment arm.
+     * 
* - * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}` + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param index The index of the element to return. + * @return The inDesignCampaigns at the given index. + */ + public java.lang.String getInDesignCampaigns(int index) { + return inDesignCampaigns_.get(index); + } + /** + *
+     * Output only. The in design campaigns in the treatment experiment arm.
      * 
* - * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The bytes for resourceName. + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param index The index of the value to return. + * @return The bytes of the inDesignCampaigns at the given index. */ public com.google.protobuf.ByteString - getResourceNameBytes() { - java.lang.Object ref = resourceName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - resourceName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + getInDesignCampaignsBytes(int index) { + return inDesignCampaigns_.getByteString(index); + } + /** + *
+     * Output only. The in design campaigns in the treatment experiment arm.
+     * 
+ * + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param index The index to set the value at. + * @param value The inDesignCampaigns to set. + * @return This builder for chaining. + */ + public Builder setInDesignCampaigns( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureInDesignCampaignsIsMutable(); + inDesignCampaigns_.set(index, value); + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + *
+     * Output only. The in design campaigns in the treatment experiment arm.
+     * 
+ * + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param value The inDesignCampaigns to add. + * @return This builder for chaining. + */ + public Builder addInDesignCampaigns( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureInDesignCampaignsIsMutable(); + inDesignCampaigns_.add(value); + bitField0_ |= 0x00000040; + onChanged(); + return this; } /** *
-     * Immutable. The resource name of the experiment arm.
-     * Experiment arm resource names have the form:
-     *
-     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * Output only. The in design campaigns in the treatment experiment arm.
      * 
* - * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @param value The resourceName to set. + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param values The inDesignCampaigns to add. * @return This builder for chaining. */ - public Builder setResourceName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - resourceName_ = value; - bitField0_ |= 0x00000001; + public Builder addAllInDesignCampaigns( + java.lang.Iterable values) { + ensureInDesignCampaignsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, inDesignCampaigns_); + bitField0_ |= 0x00000040; onChanged(); return this; } /** *
-     * Immutable. The resource name of the experiment arm.
-     * Experiment arm resource names have the form:
-     *
-     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * Output only. The in design campaigns in the treatment experiment arm.
      * 
* - * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } * @return This builder for chaining. */ - public Builder clearResourceName() { - resourceName_ = getDefaultInstance().getResourceName(); - bitField0_ = (bitField0_ & ~0x00000001); + public Builder clearInDesignCampaigns() { + inDesignCampaigns_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000040);; onChanged(); return this; } /** *
-     * Immutable. The resource name of the experiment arm.
-     * Experiment arm resource names have the form:
-     *
-     * `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`
+     * Output only. The in design campaigns in the treatment experiment arm.
      * 
* - * string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @param value The bytes for resourceName to set. + * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } + * @param value The bytes of the inDesignCampaigns to add. * @return This builder for chaining. */ - public Builder setResourceNameBytes( + public Builder addInDesignCampaignsBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - resourceName_ = value; - bitField0_ |= 0x00000001; + ensureInDesignCampaignsIsMutable(); + inDesignCampaigns_.add(value); + bitField0_ |= 0x00000040; onChanged(); return this; } - private java.lang.Object experiment_ = ""; + private com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo assetTestingInfo_; + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfoOrBuilder> assetTestingInfoBuilder_; /** *
-     * Immutable. The experiment to which the ExperimentArm belongs.
+     * Details of assets under experiment.
      * 
* - * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The experiment. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + * @return Whether the assetTestingInfo field is set. */ - public java.lang.String getExperiment() { - java.lang.Object ref = experiment_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - experiment_ = s; - return s; + public boolean hasAssetTestingInfo() { + return ((bitField0_ & 0x00000080) != 0); + } + /** + *
+     * Details of assets under experiment.
+     * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + * @return The assetTestingInfo. + */ + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo getAssetTestingInfo() { + if (assetTestingInfoBuilder_ == null) { + return assetTestingInfo_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.getDefaultInstance() : assetTestingInfo_; } else { - return (java.lang.String) ref; + return assetTestingInfoBuilder_.getMessage(); } } /** *
-     * Immutable. The experiment to which the ExperimentArm belongs.
+     * Details of assets under experiment.
      * 
* - * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return The bytes for experiment. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; */ - public com.google.protobuf.ByteString - getExperimentBytes() { - java.lang.Object ref = experiment_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - experiment_ = b; - return b; + public Builder setAssetTestingInfo(com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo value) { + if (assetTestingInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + assetTestingInfo_ = value; } else { - return (com.google.protobuf.ByteString) ref; + assetTestingInfoBuilder_.setMessage(value); } + bitField0_ |= 0x00000080; + onChanged(); + return this; } /** *
-     * Immutable. The experiment to which the ExperimentArm belongs.
+     * Details of assets under experiment.
      * 
* - * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @param value The experiment to set. - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; */ - public Builder setExperiment( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - experiment_ = value; - bitField0_ |= 0x00000002; + public Builder setAssetTestingInfo( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.Builder builderForValue) { + if (assetTestingInfoBuilder_ == null) { + assetTestingInfo_ = builderForValue.build(); + } else { + assetTestingInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; onChanged(); return this; } /** *
-     * Immutable. The experiment to which the ExperimentArm belongs.
+     * Details of assets under experiment.
      * 
* - * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; */ - public Builder clearExperiment() { - experiment_ = getDefaultInstance().getExperiment(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); + public Builder mergeAssetTestingInfo(com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo value) { + if (assetTestingInfoBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && + assetTestingInfo_ != null && + assetTestingInfo_ != com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.getDefaultInstance()) { + getAssetTestingInfoBuilder().mergeFrom(value); + } else { + assetTestingInfo_ = value; + } + } else { + assetTestingInfoBuilder_.mergeFrom(value); + } + if (assetTestingInfo_ != null) { + bitField0_ |= 0x00000080; + onChanged(); + } return this; } /** *
-     * Immutable. The experiment to which the ExperimentArm belongs.
+     * Details of assets under experiment.
      * 
* - * string experiment = 8 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... } - * @param value The bytes for experiment to set. - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; */ - public Builder setExperimentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - experiment_ = value; - bitField0_ |= 0x00000002; + public Builder clearAssetTestingInfo() { + bitField0_ = (bitField0_ & ~0x00000080); + assetTestingInfo_ = null; + if (assetTestingInfoBuilder_ != null) { + assetTestingInfoBuilder_.dispose(); + assetTestingInfoBuilder_ = null; + } onChanged(); return this; } - - private java.lang.Object name_ = ""; /** *
-     * Required. The name of the experiment arm. It must have a minimum length of
-     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * Details of assets under experiment.
      * 
* - * string name = 3 [(.google.api.field_behavior) = REQUIRED]; - * @return The name. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.Builder getAssetTestingInfoBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return internalGetAssetTestingInfoFieldBuilder().getBuilder(); } /** *
-     * Required. The name of the experiment arm. It must have a minimum length of
-     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * Details of assets under experiment.
      * 
* - * string name = 3 [(.google.api.field_behavior) = REQUIRED]; - * @return The bytes for name. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfoOrBuilder getAssetTestingInfoOrBuilder() { + if (assetTestingInfoBuilder_ != null) { + return assetTestingInfoBuilder_.getMessageOrBuilder(); } else { - return (com.google.protobuf.ByteString) ref; + return assetTestingInfo_ == null ? + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.getDefaultInstance() : assetTestingInfo_; } } /** *
-     * Required. The name of the experiment arm. It must have a minimum length of
-     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * Details of assets under experiment.
      * 
* - * string name = 3 [(.google.api.field_behavior) = REQUIRED]; - * @param value The name to set. - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; */ - public Builder setName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - name_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfoOrBuilder> + internalGetAssetTestingInfoFieldBuilder() { + if (assetTestingInfoBuilder_ == null) { + assetTestingInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfoOrBuilder>( + getAssetTestingInfo(), + getParentForChildren(), + isClean()); + assetTestingInfo_ = null; + } + return assetTestingInfoBuilder_; + } + + private java.util.List assetGroups_ = + java.util.Collections.emptyList(); + private void ensureAssetGroupsIsMutable() { + if (!((bitField0_ & 0x00000100) != 0)) { + assetGroups_ = new java.util.ArrayList(assetGroups_); + bitField0_ |= 0x00000100; + } } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfoOrBuilder> assetGroupsBuilder_; + /** *
-     * Required. The name of the experiment arm. It must have a minimum length of
-     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * List of asset groups in the experiment arm.
      * 
* - * string name = 3 [(.google.api.field_behavior) = REQUIRED]; - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; + public java.util.List getAssetGroupsList() { + if (assetGroupsBuilder_ == null) { + return java.util.Collections.unmodifiableList(assetGroups_); + } else { + return assetGroupsBuilder_.getMessageList(); + } } /** *
-     * Required. The name of the experiment arm. It must have a minimum length of
-     * 1 and maximum length of 1024. It must be unique under an experiment.
+     * List of asset groups in the experiment arm.
      * 
* - * string name = 3 [(.google.api.field_behavior) = REQUIRED]; - * @param value The bytes for name to set. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - name_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; + public int getAssetGroupsCount() { + if (assetGroupsBuilder_ == null) { + return assetGroups_.size(); + } else { + return assetGroupsBuilder_.getCount(); + } } - - private boolean control_ ; /** *
-     * Whether this arm is a control arm. A control arm is the arm against
-     * which the other arms are compared.
+     * List of asset groups in the experiment arm.
      * 
* - * bool control = 4; - * @return The control. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - @java.lang.Override - public boolean getControl() { - return control_; + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo getAssetGroups(int index) { + if (assetGroupsBuilder_ == null) { + return assetGroups_.get(index); + } else { + return assetGroupsBuilder_.getMessage(index); + } } /** *
-     * Whether this arm is a control arm. A control arm is the arm against
-     * which the other arms are compared.
+     * List of asset groups in the experiment arm.
      * 
* - * bool control = 4; - * @param value The control to set. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder setControl(boolean value) { - - control_ = value; - bitField0_ |= 0x00000008; - onChanged(); + public Builder setAssetGroups( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo value) { + if (assetGroupsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetGroupsIsMutable(); + assetGroups_.set(index, value); + onChanged(); + } else { + assetGroupsBuilder_.setMessage(index, value); + } return this; } /** *
-     * Whether this arm is a control arm. A control arm is the arm against
-     * which the other arms are compared.
+     * List of asset groups in the experiment arm.
      * 
* - * bool control = 4; - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder clearControl() { - bitField0_ = (bitField0_ & ~0x00000008); - control_ = false; - onChanged(); + public Builder setAssetGroups( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder builderForValue) { + if (assetGroupsBuilder_ == null) { + ensureAssetGroupsIsMutable(); + assetGroups_.set(index, builderForValue.build()); + onChanged(); + } else { + assetGroupsBuilder_.setMessage(index, builderForValue.build()); + } return this; } - - private long trafficSplit_ ; /** *
-     * Traffic split of the trial arm. The value should be between 1 and 100
-     * and must total 100 between the two trial arms.
+     * List of asset groups in the experiment arm.
      * 
* - * int64 traffic_split = 5; - * @return The trafficSplit. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - @java.lang.Override - public long getTrafficSplit() { - return trafficSplit_; + public Builder addAssetGroups(com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo value) { + if (assetGroupsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetGroupsIsMutable(); + assetGroups_.add(value); + onChanged(); + } else { + assetGroupsBuilder_.addMessage(value); + } + return this; + } + /** + *
+     * List of asset groups in the experiment arm.
+     * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + public Builder addAssetGroups( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo value) { + if (assetGroupsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetGroupsIsMutable(); + assetGroups_.add(index, value); + onChanged(); + } else { + assetGroupsBuilder_.addMessage(index, value); + } + return this; } /** *
-     * Traffic split of the trial arm. The value should be between 1 and 100
-     * and must total 100 between the two trial arms.
+     * List of asset groups in the experiment arm.
      * 
* - * int64 traffic_split = 5; - * @param value The trafficSplit to set. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder setTrafficSplit(long value) { - - trafficSplit_ = value; - bitField0_ |= 0x00000010; - onChanged(); + public Builder addAssetGroups( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder builderForValue) { + if (assetGroupsBuilder_ == null) { + ensureAssetGroupsIsMutable(); + assetGroups_.add(builderForValue.build()); + onChanged(); + } else { + assetGroupsBuilder_.addMessage(builderForValue.build()); + } return this; } /** *
-     * Traffic split of the trial arm. The value should be between 1 and 100
-     * and must total 100 between the two trial arms.
+     * List of asset groups in the experiment arm.
      * 
* - * int64 traffic_split = 5; - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder clearTrafficSplit() { - bitField0_ = (bitField0_ & ~0x00000010); - trafficSplit_ = 0L; - onChanged(); - return this; - } - - private com.google.protobuf.LazyStringArrayList campaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - private void ensureCampaignsIsMutable() { - if (!campaigns_.isModifiable()) { - campaigns_ = new com.google.protobuf.LazyStringArrayList(campaigns_); + public Builder addAssetGroups( + int index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder builderForValue) { + if (assetGroupsBuilder_ == null) { + ensureAssetGroupsIsMutable(); + assetGroups_.add(index, builderForValue.build()); + onChanged(); + } else { + assetGroupsBuilder_.addMessage(index, builderForValue.build()); } - bitField0_ |= 0x00000020; + return this; } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @return A list containing the campaigns. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public com.google.protobuf.ProtocolStringList - getCampaignsList() { - campaigns_.makeImmutable(); - return campaigns_; + public Builder addAllAssetGroups( + java.lang.Iterable values) { + if (assetGroupsBuilder_ == null) { + ensureAssetGroupsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assetGroups_); + onChanged(); + } else { + assetGroupsBuilder_.addAllMessages(values); + } + return this; } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @return The count of campaigns. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public int getCampaignsCount() { - return campaigns_.size(); + public Builder clearAssetGroups() { + if (assetGroupsBuilder_ == null) { + assetGroups_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + } else { + assetGroupsBuilder_.clear(); + } + return this; } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param index The index of the element to return. - * @return The campaigns at the given index. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public java.lang.String getCampaigns(int index) { - return campaigns_.get(index); + public Builder removeAssetGroups(int index) { + if (assetGroupsBuilder_ == null) { + ensureAssetGroupsIsMutable(); + assetGroups_.remove(index); + onChanged(); + } else { + assetGroupsBuilder_.remove(index); + } + return this; } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param index The index of the value to return. - * @return The bytes of the campaigns at the given index. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public com.google.protobuf.ByteString - getCampaignsBytes(int index) { - return campaigns_.getByteString(index); + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder getAssetGroupsBuilder( + int index) { + return internalGetAssetGroupsFieldBuilder().getBuilder(index); } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param index The index to set the value at. - * @param value The campaigns to set. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder setCampaigns( - int index, java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureCampaignsIsMutable(); - campaigns_.set(index, value); - bitField0_ |= 0x00000020; - onChanged(); - return this; + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfoOrBuilder getAssetGroupsOrBuilder( + int index) { + if (assetGroupsBuilder_ == null) { + return assetGroups_.get(index); } else { + return assetGroupsBuilder_.getMessageOrBuilder(index); + } } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param value The campaigns to add. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder addCampaigns( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureCampaignsIsMutable(); - campaigns_.add(value); - bitField0_ |= 0x00000020; - onChanged(); - return this; + public java.util.List + getAssetGroupsOrBuilderList() { + if (assetGroupsBuilder_ != null) { + return assetGroupsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(assetGroups_); + } } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param values The campaigns to add. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder addAllCampaigns( - java.lang.Iterable values) { - ensureCampaignsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, campaigns_); - bitField0_ |= 0x00000020; - onChanged(); - return this; + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder addAssetGroupsBuilder() { + return internalGetAssetGroupsFieldBuilder().addBuilder( + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.getDefaultInstance()); } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder clearCampaigns() { - campaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020);; - onChanged(); - return this; + public com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder addAssetGroupsBuilder( + int index) { + return internalGetAssetGroupsFieldBuilder().addBuilder( + index, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.getDefaultInstance()); } /** *
-     * List of campaigns in the trial arm. The max length is one.
+     * List of asset groups in the experiment arm.
      * 
* - * repeated string campaigns = 6 [(.google.api.resource_reference) = { ... } - * @param value The bytes of the campaigns to add. - * @return This builder for chaining. + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; */ - public Builder addCampaignsBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - ensureCampaignsIsMutable(); - campaigns_.add(value); - bitField0_ |= 0x00000020; - onChanged(); - return this; + public java.util.List + getAssetGroupsBuilderList() { + return internalGetAssetGroupsFieldBuilder().getBuilderList(); } - - private com.google.protobuf.LazyStringArrayList inDesignCampaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - private void ensureInDesignCampaignsIsMutable() { - if (!inDesignCampaigns_.isModifiable()) { - inDesignCampaigns_ = new com.google.protobuf.LazyStringArrayList(inDesignCampaigns_); + private com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfoOrBuilder> + internalGetAssetGroupsFieldBuilder() { + if (assetGroupsBuilder_ == null) { + assetGroupsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfoOrBuilder>( + assetGroups_, + ((bitField0_ & 0x00000100) != 0), + getParentForChildren(), + isClean()); + assetGroups_ = null; } - bitField0_ |= 0x00000040; + return assetGroupsBuilder_; } + + private com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performanceMaxExperimentArmInfo_; + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfoOrBuilder> performanceMaxExperimentArmInfoBuilder_; /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @return A list containing the inDesignCampaigns. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the performanceMaxExperimentArmInfo field is set. */ - public com.google.protobuf.ProtocolStringList - getInDesignCampaignsList() { - inDesignCampaigns_.makeImmutable(); - return inDesignCampaigns_; + public boolean hasPerformanceMaxExperimentArmInfo() { + return ((bitField0_ & 0x00000200) != 0); } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @return The count of inDesignCampaigns. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The performanceMaxExperimentArmInfo. */ - public int getInDesignCampaignsCount() { - return inDesignCampaigns_.size(); + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo getPerformanceMaxExperimentArmInfo() { + if (performanceMaxExperimentArmInfoBuilder_ == null) { + return performanceMaxExperimentArmInfo_ == null ? com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.getDefaultInstance() : performanceMaxExperimentArmInfo_; + } else { + return performanceMaxExperimentArmInfoBuilder_.getMessage(); + } } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param index The index of the element to return. - * @return The inDesignCampaigns at the given index. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; */ - public java.lang.String getInDesignCampaigns(int index) { - return inDesignCampaigns_.get(index); + public Builder setPerformanceMaxExperimentArmInfo(com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo value) { + if (performanceMaxExperimentArmInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + performanceMaxExperimentArmInfo_ = value; + } else { + performanceMaxExperimentArmInfoBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param index The index of the value to return. - * @return The bytes of the inDesignCampaigns at the given index. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; */ - public com.google.protobuf.ByteString - getInDesignCampaignsBytes(int index) { - return inDesignCampaigns_.getByteString(index); + public Builder setPerformanceMaxExperimentArmInfo( + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.Builder builderForValue) { + if (performanceMaxExperimentArmInfoBuilder_ == null) { + performanceMaxExperimentArmInfo_ = builderForValue.build(); + } else { + performanceMaxExperimentArmInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param index The index to set the value at. - * @param value The inDesignCampaigns to set. - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; */ - public Builder setInDesignCampaigns( - int index, java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureInDesignCampaignsIsMutable(); - inDesignCampaigns_.set(index, value); - bitField0_ |= 0x00000040; - onChanged(); + public Builder mergePerformanceMaxExperimentArmInfo(com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo value) { + if (performanceMaxExperimentArmInfoBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) && + performanceMaxExperimentArmInfo_ != null && + performanceMaxExperimentArmInfo_ != com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.getDefaultInstance()) { + getPerformanceMaxExperimentArmInfoBuilder().mergeFrom(value); + } else { + performanceMaxExperimentArmInfo_ = value; + } + } else { + performanceMaxExperimentArmInfoBuilder_.mergeFrom(value); + } + if (performanceMaxExperimentArmInfo_ != null) { + bitField0_ |= 0x00000200; + onChanged(); + } return this; } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param value The inDesignCampaigns to add. - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; */ - public Builder addInDesignCampaigns( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureInDesignCampaignsIsMutable(); - inDesignCampaigns_.add(value); - bitField0_ |= 0x00000040; + public Builder clearPerformanceMaxExperimentArmInfo() { + bitField0_ = (bitField0_ & ~0x00000200); + performanceMaxExperimentArmInfo_ = null; + if (performanceMaxExperimentArmInfoBuilder_ != null) { + performanceMaxExperimentArmInfoBuilder_.dispose(); + performanceMaxExperimentArmInfoBuilder_ = null; + } onChanged(); return this; } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param values The inDesignCampaigns to add. - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; */ - public Builder addAllInDesignCampaigns( - java.lang.Iterable values) { - ensureInDesignCampaignsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, inDesignCampaigns_); - bitField0_ |= 0x00000040; + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.Builder getPerformanceMaxExperimentArmInfoBuilder() { + bitField0_ |= 0x00000200; onChanged(); - return this; + return internalGetPerformanceMaxExperimentArmInfoFieldBuilder().getBuilder(); } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; */ - public Builder clearInDesignCampaigns() { - inDesignCampaigns_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - bitField0_ = (bitField0_ & ~0x00000040);; - onChanged(); - return this; + public com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfoOrBuilder getPerformanceMaxExperimentArmInfoOrBuilder() { + if (performanceMaxExperimentArmInfoBuilder_ != null) { + return performanceMaxExperimentArmInfoBuilder_.getMessageOrBuilder(); + } else { + return performanceMaxExperimentArmInfo_ == null ? + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.getDefaultInstance() : performanceMaxExperimentArmInfo_; + } } /** *
-     * Output only. The in design campaigns in the treatment experiment arm.
+     * Immutable. Information specific to the control or treatment campaign of a
+     * Performance Max experiment.
+     *
+     * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+     * For example, the treatment experiment arm contains the
+     * information of treatment Performance Max campaign settings for
+     * PMAX_REPLACEMENT_SHOPPING experiments.
      * 
* - * repeated string in_design_campaigns = 7 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... } - * @param value The bytes of the inDesignCampaigns to add. - * @return This builder for chaining. + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; */ - public Builder addInDesignCampaignsBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - ensureInDesignCampaignsIsMutable(); - inDesignCampaigns_.add(value); - bitField0_ |= 0x00000040; - onChanged(); - return this; + private com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfoOrBuilder> + internalGetPerformanceMaxExperimentArmInfoFieldBuilder() { + if (performanceMaxExperimentArmInfoBuilder_ == null) { + performanceMaxExperimentArmInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo.Builder, com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfoOrBuilder>( + getPerformanceMaxExperimentArmInfo(), + getParentForChildren(), + isClean()); + performanceMaxExperimentArmInfo_ = null; + } + return performanceMaxExperimentArmInfoBuilder_; } // @@protoc_insertion_point(builder_scope:google.ads.googleads.v24.resources.ExperimentArm) diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmOrBuilder.java index 49b033157..667b7da76 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmOrBuilder.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmOrBuilder.java @@ -181,4 +181,120 @@ public interface ExperimentArmOrBuilder extends */ com.google.protobuf.ByteString getInDesignCampaignsBytes(int index); + + /** + *
+   * Details of assets under experiment.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + * @return Whether the assetTestingInfo field is set. + */ + boolean hasAssetTestingInfo(); + /** + *
+   * Details of assets under experiment.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + * @return The assetTestingInfo. + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo getAssetTestingInfo(); + /** + *
+   * Details of assets under experiment.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfo asset_testing_info = 9; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetTestingInfoOrBuilder getAssetTestingInfoOrBuilder(); + + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + java.util.List + getAssetGroupsList(); + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo getAssetGroups(int index); + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + int getAssetGroupsCount(); + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + java.util.List + getAssetGroupsOrBuilderList(); + /** + *
+   * List of asset groups in the experiment arm.
+   * 
+ * + * repeated .google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfo asset_groups = 10; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.AssetGroupInfoOrBuilder getAssetGroupsOrBuilder( + int index); + + /** + *
+   * Immutable. Information specific to the control or treatment campaign of a
+   * Performance Max experiment.
+   *
+   * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+   * For example, the treatment experiment arm contains the
+   * information of treatment Performance Max campaign settings for
+   * PMAX_REPLACEMENT_SHOPPING experiments.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the performanceMaxExperimentArmInfo field is set. + */ + boolean hasPerformanceMaxExperimentArmInfo(); + /** + *
+   * Immutable. Information specific to the control or treatment campaign of a
+   * Performance Max experiment.
+   *
+   * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+   * For example, the treatment experiment arm contains the
+   * information of treatment Performance Max campaign settings for
+   * PMAX_REPLACEMENT_SHOPPING experiments.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The performanceMaxExperimentArmInfo. + */ + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo getPerformanceMaxExperimentArmInfo(); + /** + *
+   * Immutable. Information specific to the control or treatment campaign of a
+   * Performance Max experiment.
+   *
+   * This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING.
+   * For example, the treatment experiment arm contains the
+   * information of treatment Performance Max campaign settings for
+   * PMAX_REPLACEMENT_SHOPPING experiments.
+   * 
+ * + * .google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfo performance_max_experiment_arm_info = 11 [(.google.api.field_behavior) = IMMUTABLE]; + */ + com.google.ads.googleads.v24.resources.ExperimentArm.PerformanceMaxExperimentArmInfoOrBuilder getPerformanceMaxExperimentArmInfoOrBuilder(); } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmProto.java index b63add658..48ae27c73 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentArmProto.java @@ -31,6 +31,41 @@ public static void registerAllExtensions( static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_google_ads_googleads_v24_resources_ExperimentArm_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_descriptor; + static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -42,30 +77,82 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n7google/ads/googleads/v24/resources/exp" + "eriment_arm.proto\022\"google.ads.googleads." + - "v24.resources\032\037google/api/field_behavior" + - ".proto\032\031google/api/resource.proto\"\304\003\n\rEx" + - "perimentArm\022E\n\rresource_name\030\001 \001(\tB.\340A\005\372" + - "A(\n&googleads.googleapis.com/ExperimentA" + - "rm\022?\n\nexperiment\030\010 \001(\tB+\340A\005\372A%\n#googlead" + - "s.googleapis.com/Experiment\022\021\n\004name\030\003 \001(" + - "\tB\003\340A\002\022\017\n\007control\030\004 \001(\010\022\025\n\rtraffic_split" + - "\030\005 \001(\003\0229\n\tcampaigns\030\006 \003(\tB&\372A#\n!googlead" + - "s.googleapis.com/Campaign\022F\n\023in_design_c" + - "ampaigns\030\007 \003(\tB)\340A\003\372A#\n!googleads.google" + - "apis.com/Campaign:m\352Aj\n&googleads.google" + - "apis.com/ExperimentArm\022@customers/{custo" + - "mer_id}/experimentArms/{trial_id}~{trial" + - "_arm_id}B\204\002\n&com.google.ads.googleads.v2" + - "4.resourcesB\022ExperimentArmProtoP\001ZKgoogl" + - "e.golang.org/genproto/googleapis/ads/goo" + - "gleads/v24/resources;resources\242\002\003GAA\252\002\"G" + - "oogle.Ads.GoogleAds.V24.Resources\312\002\"Goog" + - "le\\Ads\\GoogleAds\\V24\\Resources\352\002&Google:" + - ":Ads::GoogleAds::V24::Resourcesb\006proto3" + "v24.resources\0325google/ads/googleads/v24/" + + "enums/asset_field_type.proto\032:google/ads" + + "/googleads/v24/enums/bidding_strategy_ty" + + "pe.proto\032Fgoogle/ads/googleads/v24/enums" + + "/experiment_asset_detail_operation.proto" + + "\032\037google/api/field_behavior.proto\032\031googl" + + "e/api/resource.proto\"\215\021\n\rExperimentArm\022E" + + "\n\rresource_name\030\001 \001(\tB.\340A\005\372A(\n&googleads" + + ".googleapis.com/ExperimentArm\022?\n\nexperim" + + "ent\030\010 \001(\tB+\340A\005\372A%\n#googleads.googleapis." + + "com/Experiment\022\021\n\004name\030\003 \001(\tB\003\340A\002\022\017\n\007con" + + "trol\030\004 \001(\010\022\025\n\rtraffic_split\030\005 \001(\003\0229\n\tcam" + + "paigns\030\006 \003(\tB&\372A#\n!googleads.googleapis." + + "com/Campaign\022F\n\023in_design_campaigns\030\007 \003(" + + "\tB)\340A\003\372A#\n!googleads.googleapis.com/Camp" + + "aign\022^\n\022asset_testing_info\030\t \001(\0132B.googl" + + "e.ads.googleads.v24.resources.Experiment" + + "Arm.AssetTestingInfo\022V\n\014asset_groups\030\n \003" + + "(\0132@.google.ads.googleads.v24.resources." + + "ExperimentArm.AssetGroupInfo\022\203\001\n#perform" + + "ance_max_experiment_arm_info\030\013 \001(\0132Q.goo" + + "gle.ads.googleads.v24.resources.Experime" + + "ntArm.PerformanceMaxExperimentArmInfoB\003\340" + + "A\005\032w\n\020AssetTestingInfo\022c\n\025asset_variatio" + + "n_infos\030\001 \003(\0132D.google.ads.googleads.v24" + + ".resources.ExperimentArm.AssetVariationI" + + "nfo\032\333\001\n\022AssetVariationInfo\022<\n\rbase_ad_gr" + + "oup\030\001 \001(\tB%\372A\"\n googleads.googleapis.com" + + "/AdGroup\0221\n\007base_ad\030\002 \001(\tB \372A\035\n\033googlead" + + "s.googleapis.com/Ad\022T\n\rasset_details\030\003 \003" + + "(\0132=.google.ads.googleads.v24.resources." + + "ExperimentArm.AssetDetail\032\234\002\n\013AssetDetai" + + "l\0222\n\005asset\030\001 \001(\tB#\372A \n\036googleads.googlea" + + "pis.com/Asset\022U\n\nfield_type\030\002 \001(\0162A.goog" + + "le.ads.googleads.v24.enums.AssetFieldTyp" + + "eEnum.AssetFieldType\022\201\001\n\026asset_detail_op" + + "eration\030\003 \001(\0162a.google.ads.googleads.v24" + + ".enums.ExperimentAssetDetailOperationEnu" + + "m.ExperimentAssetDetailOperation\032\262\001\n\016Ass" + + "etGroupInfo\022=\n\013asset_group\030\001 \001(\tB(\372A%\n#g" + + "oogleads.googleapis.com/AssetGroup\022a\n\022as" + + "set_group_assets\030\002 \003(\0132E.google.ads.goog" + + "leads.v24.resources.ExperimentArm.AssetG" + + "roupAssetInfo\032\240\001\n\023AssetGroupAssetInfo\0222\n" + + "\005asset\030\001 \001(\tB#\372A \n\036googleads.googleapis." + + "com/Asset\022U\n\nfield_type\030\002 \001(\0162A.google.a" + + "ds.googleads.v24.enums.AssetFieldTypeEnu" + + "m.AssetFieldType\032\372\001\n*ExperimentalPerform" + + "anceMaxCampaignSettings\022!\n\024budget_amount" + + "_micros\030\001 \001(\003B\003\340A\005\022\030\n\013target_roas\030\002 \001(\001B" + + "\003\340A\005\022\036\n\021target_cpa_micros\030\003 \001(\003B\003\340A\005\022o\n\025" + + "bidding_strategy_type\030\004 \001(\0162K.google.ads" + + ".googleads.v24.enums.BiddingStrategyType" + + "Enum.BiddingStrategyTypeB\003\340A\005\032\275\001\n\037Perfor" + + "manceMaxExperimentArmInfo\022\231\001\n.experiment" + + "al_performance_max_campaign_settings\030\001 \001" + + "(\0132\\.google.ads.googleads.v24.resources." + + "ExperimentArm.ExperimentalPerformanceMax" + + "CampaignSettingsB\003\340A\005:m\352Aj\n&googleads.go" + + "ogleapis.com/ExperimentArm\022@customers/{c" + + "ustomer_id}/experimentArms/{trial_id}~{t" + + "rial_arm_id}B\204\002\n&com.google.ads.googlead" + + "s.v24.resourcesB\022ExperimentArmProtoP\001ZKg" + + "oogle.golang.org/genproto/googleapis/ads" + + "/googleads/v24/resources;resources\242\002\003GAA" + + "\252\002\"Google.Ads.GoogleAds.V24.Resources\312\002\"" + + "Google\\Ads\\GoogleAds\\V24\\Resources\352\002&Goo" + + "gle::Ads::GoogleAds::V24::Resourcesb\006pro" + + "to3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.ads.googleads.v24.enums.AssetFieldTypeProto.getDescriptor(), + com.google.ads.googleads.v24.enums.BiddingStrategyTypeProto.getDescriptor(), + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationProto.getDescriptor(), com.google.api.FieldBehaviorProto.getDescriptor(), com.google.api.ResourceProto.getDescriptor(), }); @@ -74,8 +161,53 @@ public static void registerAllExtensions( internal_static_google_ads_googleads_v24_resources_ExperimentArm_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor, - new java.lang.String[] { "ResourceName", "Experiment", "Name", "Control", "TrafficSplit", "Campaigns", "InDesignCampaigns", }); + new java.lang.String[] { "ResourceName", "Experiment", "Name", "Control", "TrafficSplit", "Campaigns", "InDesignCampaigns", "AssetTestingInfo", "AssetGroups", "PerformanceMaxExperimentArmInfo", }); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_descriptor = + internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor.getNestedTypes().get(0); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetTestingInfo_descriptor, + new java.lang.String[] { "AssetVariationInfos", }); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_descriptor = + internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor.getNestedTypes().get(1); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetVariationInfo_descriptor, + new java.lang.String[] { "BaseAdGroup", "BaseAd", "AssetDetails", }); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_descriptor = + internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor.getNestedTypes().get(2); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetDetail_descriptor, + new java.lang.String[] { "Asset", "FieldType", "AssetDetailOperation", }); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_descriptor = + internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor.getNestedTypes().get(3); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupInfo_descriptor, + new java.lang.String[] { "AssetGroup", "AssetGroupAssets", }); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_descriptor = + internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor.getNestedTypes().get(4); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_resources_ExperimentArm_AssetGroupAssetInfo_descriptor, + new java.lang.String[] { "Asset", "FieldType", }); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_descriptor = + internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor.getNestedTypes().get(5); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings_descriptor, + new java.lang.String[] { "BudgetAmountMicros", "TargetRoas", "TargetCpaMicros", "BiddingStrategyType", }); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_descriptor = + internal_static_google_ads_googleads_v24_resources_ExperimentArm_descriptor.getNestedTypes().get(6); + internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_ads_googleads_v24_resources_ExperimentArm_PerformanceMaxExperimentArmInfo_descriptor, + new java.lang.String[] { "ExperimentalPerformanceMaxCampaignSettings", }); descriptor.resolveAllFeaturesImmutable(); + com.google.ads.googleads.v24.enums.AssetFieldTypeProto.getDescriptor(); + com.google.ads.googleads.v24.enums.BiddingStrategyTypeProto.getDescriptor(); + com.google.ads.googleads.v24.enums.ExperimentAssetDetailOperationProto.getDescriptor(); com.google.api.FieldBehaviorProto.getDescriptor(); com.google.api.ResourceProto.getDescriptor(); com.google.protobuf.ExtensionRegistry registry = diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentOrBuilder.java index dab857aac..d45f5bcea 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentOrBuilder.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentOrBuilder.java @@ -374,4 +374,66 @@ com.google.ads.googleads.v24.common.MetricGoalOrBuilder getGoalsOrBuilder( * @return The syncEnabled. */ boolean getSyncEnabled(); + + /** + *
+   * Immutable. Details of the video experiment. Applies for experiment types:
+   * YOUTUBE_CUSTOM.
+   * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the videoExperiment field is set. + */ + boolean hasVideoExperiment(); + /** + *
+   * Immutable. Details of the video experiment. Applies for experiment types:
+   * YOUTUBE_CUSTOM.
+   * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The videoExperiment. + */ + com.google.ads.googleads.v24.common.VideoExperimentInfo getVideoExperiment(); + /** + *
+   * Immutable. Details of the video experiment. Applies for experiment types:
+   * YOUTUBE_CUSTOM.
+   * 
+ * + * .google.ads.googleads.v24.common.VideoExperimentInfo video_experiment = 21 [(.google.api.field_behavior) = IMMUTABLE]; + */ + com.google.ads.googleads.v24.common.VideoExperimentInfoOrBuilder getVideoExperimentOrBuilder(); + + /** + *
+   * Immutable. Details of the optimize assets experiment. Applies for
+   * experiment types: OPTIMIZE_ASSETS.
+   * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + * @return Whether the optimizeAssetsExperiment field is set. + */ + boolean hasOptimizeAssetsExperiment(); + /** + *
+   * Immutable. Details of the optimize assets experiment. Applies for
+   * experiment types: OPTIMIZE_ASSETS.
+   * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + * @return The optimizeAssetsExperiment. + */ + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo getOptimizeAssetsExperiment(); + /** + *
+   * Immutable. Details of the optimize assets experiment. Applies for
+   * experiment types: OPTIMIZE_ASSETS.
+   * 
+ * + * .google.ads.googleads.v24.common.OptimizeAssetsExperimentInfo optimize_assets_experiment = 22 [(.google.api.field_behavior) = IMMUTABLE]; + */ + com.google.ads.googleads.v24.common.OptimizeAssetsExperimentInfoOrBuilder getOptimizeAssetsExperimentOrBuilder(); + + com.google.ads.googleads.v24.resources.Experiment.ExperimentInfoCase getExperimentInfoCase(); } diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentProto.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentProto.java index 77d938f88..0fd9c63e0 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentProto.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/resources/ExperimentProto.java @@ -42,45 +42,52 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n3google/ads/googleads/v24/resources/exp" + "eriment.proto\022\"google.ads.googleads.v24." + - "resources\0321google/ads/googleads/v24/comm" + - "on/metric_goal.proto\0328google/ads/googlea" + - "ds/v24/enums/async_action_status.proto\0326" + - "google/ads/googleads/v24/enums/experimen" + - "t_status.proto\0324google/ads/googleads/v24" + - "/enums/experiment_type.proto\032\037google/api" + - "/field_behavior.proto\032\031google/api/resour" + - "ce.proto\"\246\006\n\nExperiment\022B\n\rresource_name" + - "\030\001 \001(\tB+\340A\005\372A%\n#googleads.googleapis.com" + - "/Experiment\022\037\n\rexperiment_id\030\t \001(\003B\003\340A\003H" + - "\000\210\001\001\022\021\n\004name\030\n \001(\tB\003\340A\002\022\023\n\013description\030\013" + - " \001(\t\022\016\n\006suffix\030\014 \001(\t\022T\n\004type\030\r \001(\0162A.goo" + - "gle.ads.googleads.v24.enums.ExperimentTy" + - "peEnum.ExperimentTypeB\003\340A\002\022U\n\006status\030\016 \001" + - "(\0162E.google.ads.googleads.v24.enums.Expe" + - "rimentStatusEnum.ExperimentStatus\022\027\n\nsta" + - "rt_date\030\017 \001(\tH\001\210\001\001\022\025\n\010end_date\030\020 \001(\tH\002\210\001" + - "\001\022:\n\005goals\030\021 \003(\0132+.google.ads.googleads." + - "v24.common.MetricGoal\022(\n\026long_running_op" + - "eration\030\022 \001(\tB\003\340A\003H\003\210\001\001\022d\n\016promote_statu" + - "s\030\023 \001(\0162G.google.ads.googleads.v24.enums" + - ".AsyncActionStatusEnum.AsyncActionStatus" + - "B\003\340A\003\022\036\n\014sync_enabled\030\024 \001(\010B\003\340A\005H\004\210\001\001:X\352" + - "AU\n#googleads.googleapis.com/Experiment\022" + - ".customers/{customer_id}/experiments/{tr" + - "ial_id}B\020\n\016_experiment_idB\r\n\013_start_date" + - "B\013\n\t_end_dateB\031\n\027_long_running_operation" + - "B\017\n\r_sync_enabledB\201\002\n&com.google.ads.goo" + - "gleads.v24.resourcesB\017ExperimentProtoP\001Z" + - "Kgoogle.golang.org/genproto/googleapis/a" + - "ds/googleads/v24/resources;resources\242\002\003G" + - "AA\252\002\"Google.Ads.GoogleAds.V24.Resources\312" + - "\002\"Google\\Ads\\GoogleAds\\V24\\Resources\352\002&G" + - "oogle::Ads::GoogleAds::V24::Resourcesb\006p" + - "roto3" + "resources\0326google/ads/googleads/v24/comm" + + "on/experiment_types.proto\0321google/ads/go" + + "ogleads/v24/common/metric_goal.proto\0328go" + + "ogle/ads/googleads/v24/enums/async_actio" + + "n_status.proto\0326google/ads/googleads/v24" + + "/enums/experiment_status.proto\0324google/a" + + "ds/googleads/v24/enums/experiment_type.p" + + "roto\032\037google/api/field_behavior.proto\032\031g" + + "oogle/api/resource.proto\"\372\007\n\nExperiment\022" + + "B\n\rresource_name\030\001 \001(\tB+\340A\005\372A%\n#googlead" + + "s.googleapis.com/Experiment\022\037\n\rexperimen" + + "t_id\030\t \001(\003B\003\340A\003H\001\210\001\001\022\021\n\004name\030\n \001(\tB\003\340A\002\022" + + "\023\n\013description\030\013 \001(\t\022\016\n\006suffix\030\014 \001(\t\022T\n\004" + + "type\030\r \001(\0162A.google.ads.googleads.v24.en" + + "ums.ExperimentTypeEnum.ExperimentTypeB\003\340" + + "A\002\022U\n\006status\030\016 \001(\0162E.google.ads.googlead" + + "s.v24.enums.ExperimentStatusEnum.Experim" + + "entStatus\022\027\n\nstart_date\030\017 \001(\tH\002\210\001\001\022\025\n\010en" + + "d_date\030\020 \001(\tH\003\210\001\001\022:\n\005goals\030\021 \003(\0132+.googl" + + "e.ads.googleads.v24.common.MetricGoal\022(\n" + + "\026long_running_operation\030\022 \001(\tB\003\340A\003H\004\210\001\001\022" + + "d\n\016promote_status\030\023 \001(\0162G.google.ads.goo" + + "gleads.v24.enums.AsyncActionStatusEnum.A" + + "syncActionStatusB\003\340A\003\022\036\n\014sync_enabled\030\024 " + + "\001(\010B\003\340A\005H\005\210\001\001\022U\n\020video_experiment\030\025 \001(\0132" + + "4.google.ads.googleads.v24.common.VideoE" + + "xperimentInfoB\003\340A\005H\000\022h\n\032optimize_assets_" + + "experiment\030\026 \001(\0132=.google.ads.googleads." + + "v24.common.OptimizeAssetsExperimentInfoB" + + "\003\340A\005H\000:X\352AU\n#googleads.googleapis.com/Ex" + + "periment\022.customers/{customer_id}/experi" + + "ments/{trial_id}B\021\n\017experiment_infoB\020\n\016_" + + "experiment_idB\r\n\013_start_dateB\013\n\t_end_dat" + + "eB\031\n\027_long_running_operationB\017\n\r_sync_en" + + "abledB\201\002\n&com.google.ads.googleads.v24.r" + + "esourcesB\017ExperimentProtoP\001ZKgoogle.gola" + + "ng.org/genproto/googleapis/ads/googleads" + + "/v24/resources;resources\242\002\003GAA\252\002\"Google." + + "Ads.GoogleAds.V24.Resources\312\002\"Google\\Ads" + + "\\GoogleAds\\V24\\Resources\352\002&Google::Ads::" + + "GoogleAds::V24::Resourcesb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.ads.googleads.v24.common.ExperimentTypesProto.getDescriptor(), com.google.ads.googleads.v24.common.MetricGoalProto.getDescriptor(), com.google.ads.googleads.v24.enums.AsyncActionStatusProto.getDescriptor(), com.google.ads.googleads.v24.enums.ExperimentStatusProto.getDescriptor(), @@ -93,8 +100,9 @@ public static void registerAllExtensions( internal_static_google_ads_googleads_v24_resources_Experiment_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_ads_googleads_v24_resources_Experiment_descriptor, - new java.lang.String[] { "ResourceName", "ExperimentId", "Name", "Description", "Suffix", "Type", "Status", "StartDate", "EndDate", "Goals", "LongRunningOperation", "PromoteStatus", "SyncEnabled", }); + new java.lang.String[] { "ResourceName", "ExperimentId", "Name", "Description", "Suffix", "Type", "Status", "StartDate", "EndDate", "Goals", "LongRunningOperation", "PromoteStatus", "SyncEnabled", "VideoExperiment", "OptimizeAssetsExperiment", "ExperimentInfo", }); descriptor.resolveAllFeaturesImmutable(); + com.google.ads.googleads.v24.common.ExperimentTypesProto.getDescriptor(); com.google.ads.googleads.v24.common.MetricGoalProto.getDescriptor(); com.google.ads.googleads.v24.enums.AsyncActionStatusProto.getDescriptor(); com.google.ads.googleads.v24.enums.ExperimentStatusProto.getDescriptor(); diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetrics.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetrics.java index 3eb61d397..9d298773b 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetrics.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetrics.java @@ -142,9 +142,9 @@ public long getCommentsCount() { private double engagementRate_ = 0D; /** *
-   * The lifetime engagement rate of this channel. The value is computed as the
-   * total number of likes, shares, and comments across all videos divided by
-   * the total number of video views.
+   * The lifetime engagement rate of this channel. A measurement of how often
+   * people engage with the creator's content. The value, between 0 and 1, is
+   * calculated as total engagement divided by total views.
    * 
* * double engagement_rate = 8; @@ -1317,9 +1317,9 @@ public Builder clearCommentsCount() { private double engagementRate_ ; /** *
-     * The lifetime engagement rate of this channel. The value is computed as the
-     * total number of likes, shares, and comments across all videos divided by
-     * the total number of video views.
+     * The lifetime engagement rate of this channel. A measurement of how often
+     * people engage with the creator's content. The value, between 0 and 1, is
+     * calculated as total engagement divided by total views.
      * 
* * double engagement_rate = 8; @@ -1331,9 +1331,9 @@ public double getEngagementRate() { } /** *
-     * The lifetime engagement rate of this channel. The value is computed as the
-     * total number of likes, shares, and comments across all videos divided by
-     * the total number of video views.
+     * The lifetime engagement rate of this channel. A measurement of how often
+     * people engage with the creator's content. The value, between 0 and 1, is
+     * calculated as total engagement divided by total views.
      * 
* * double engagement_rate = 8; @@ -1349,9 +1349,9 @@ public Builder setEngagementRate(double value) { } /** *
-     * The lifetime engagement rate of this channel. The value is computed as the
-     * total number of likes, shares, and comments across all videos divided by
-     * the total number of video views.
+     * The lifetime engagement rate of this channel. A measurement of how often
+     * people engage with the creator's content. The value, between 0 and 1, is
+     * calculated as total engagement divided by total views.
      * 
* * double engagement_rate = 8; diff --git a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetricsOrBuilder.java b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetricsOrBuilder.java index e3918ace8..d3e3a9348 100644 --- a/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetricsOrBuilder.java +++ b/google-ads-stubs-v24/src/main/java/com/google/ads/googleads/v24/services/YouTubeMetricsOrBuilder.java @@ -72,9 +72,9 @@ public interface YouTubeMetricsOrBuilder extends /** *
-   * The lifetime engagement rate of this channel. The value is computed as the
-   * total number of likes, shares, and comments across all videos divided by
-   * the total number of video views.
+   * The lifetime engagement rate of this channel. A measurement of how often
+   * people engage with the creator's content. The value, between 0 and 1, is
+   * calculated as total engagement divided by total views.
    * 
* * double engagement_rate = 8;