aboutsummaryrefslogtreecommitdiff
path: root/google/ads/googleads/v1/common
diff options
context:
space:
mode:
Diffstat (limited to 'google/ads/googleads/v1/common')
-rw-r--r--google/ads/googleads/v1/common/ad_asset.proto63
-rw-r--r--google/ads/googleads/v1/common/ad_type_infos.proto527
-rw-r--r--google/ads/googleads/v1/common/asset_types.proto76
-rw-r--r--google/ads/googleads/v1/common/bidding.proto232
-rw-r--r--google/ads/googleads/v1/common/click_location.proto50
-rw-r--r--google/ads/googleads/v1/common/criteria.proto571
-rw-r--r--google/ads/googleads/v1/common/criterion_category_availability.proto84
-rw-r--r--google/ads/googleads/v1/common/custom_parameter.proto42
-rw-r--r--google/ads/googleads/v1/common/dates.proto41
-rw-r--r--google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto40
-rw-r--r--google/ads/googleads/v1/common/extensions.proto286
-rw-r--r--google/ads/googleads/v1/common/feed_common.proto41
-rw-r--r--google/ads/googleads/v1/common/frequency_cap.proto63
-rw-r--r--google/ads/googleads/v1/common/keyword_plan_common.proto42
-rw-r--r--google/ads/googleads/v1/common/matching_function.proto128
-rw-r--r--google/ads/googleads/v1/common/metrics.proto435
-rw-r--r--google/ads/googleads/v1/common/policy.proto217
-rw-r--r--google/ads/googleads/v1/common/real_time_bidding_setting.proto39
-rw-r--r--google/ads/googleads/v1/common/segments.proto274
-rw-r--r--google/ads/googleads/v1/common/tag_snippet.proto52
-rw-r--r--google/ads/googleads/v1/common/targeting_setting.proto57
-rw-r--r--google/ads/googleads/v1/common/text_label.proto42
-rw-r--r--google/ads/googleads/v1/common/url_collection.proto47
-rw-r--r--google/ads/googleads/v1/common/user_lists.proto293
-rw-r--r--google/ads/googleads/v1/common/value.proto52
25 files changed, 3794 insertions, 0 deletions
diff --git a/google/ads/googleads/v1/common/ad_asset.proto b/google/ads/googleads/v1/common/ad_asset.proto
new file mode 100644
index 000000000..7e43ff9c4
--- /dev/null
+++ b/google/ads/googleads/v1/common/ad_asset.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/served_asset_field_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "AdAssetProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing assets used inside an ad.
+
+// A text asset used inside an ad.
+message AdTextAsset {
+ // Asset text.
+ google.protobuf.StringValue text = 1;
+
+ // The pinned field of the asset. This restricts the asset to only serve
+ // within this field. Multiple assets can be pinned to the same field. An
+ // asset that is unpinned or pinned to a different field will not serve in a
+ // field where some other asset has been pinned.
+ google.ads.googleads.v1.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 2;
+}
+
+// An image asset used inside an ad.
+message AdImageAsset {
+ // The Asset resource name of this image.
+ google.protobuf.StringValue asset = 1;
+}
+
+// A video asset used inside an ad.
+message AdVideoAsset {
+ // The Asset resource name of this video.
+ google.protobuf.StringValue asset = 1;
+}
+
+// A media bundle asset used inside an ad.
+message AdMediaBundleAsset {
+ // The Asset resource name of this media bundle.
+ google.protobuf.StringValue asset = 1;
+}
diff --git a/google/ads/googleads/v1/common/ad_type_infos.proto b/google/ads/googleads/v1/common/ad_type_infos.proto
new file mode 100644
index 000000000..7a944e8d4
--- /dev/null
+++ b/google/ads/googleads/v1/common/ad_type_infos.proto
@@ -0,0 +1,527 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/common/ad_asset.proto";
+import "google/ads/googleads/v1/enums/call_conversion_reporting_state.proto";
+import "google/ads/googleads/v1/enums/display_ad_format_setting.proto";
+import "google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto";
+import "google/ads/googleads/v1/enums/mime_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "AdTypeInfosProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file containing info messages for specific ad types.
+
+// A text ad.
+message TextAdInfo {
+ // The headline of the ad.
+ google.protobuf.StringValue headline = 1;
+
+ // The first line of the ad's description.
+ google.protobuf.StringValue description1 = 2;
+
+ // The second line of the ad's description.
+ google.protobuf.StringValue description2 = 3;
+}
+
+// An expanded text ad.
+message ExpandedTextAdInfo {
+ // The first part of the ad's headline.
+ google.protobuf.StringValue headline_part1 = 1;
+
+ // The second part of the ad's headline.
+ google.protobuf.StringValue headline_part2 = 2;
+
+ // The third part of the ad's headline.
+ google.protobuf.StringValue headline_part3 = 6;
+
+ // The description of the ad.
+ google.protobuf.StringValue description = 3;
+
+ // The second description of the ad.
+ google.protobuf.StringValue description2 = 7;
+
+ // The text that can appear alongside the ad's displayed URL.
+ google.protobuf.StringValue path1 = 4;
+
+ // Additional text that can appear alongside the ad's displayed URL.
+ google.protobuf.StringValue path2 = 5;
+}
+
+// A call-only ad.
+message CallOnlyAdInfo {
+ // The country code in the ad.
+ google.protobuf.StringValue country_code = 1;
+
+ // The phone number in the ad.
+ google.protobuf.StringValue phone_number = 2;
+
+ // The business name in the ad.
+ google.protobuf.StringValue business_name = 3;
+
+ // First headline in the ad.
+ google.protobuf.StringValue headline1 = 11;
+
+ // Second headline in the ad.
+ google.protobuf.StringValue headline2 = 12;
+
+ // The first line of the ad's description.
+ google.protobuf.StringValue description1 = 4;
+
+ // The second line of the ad's description.
+ google.protobuf.StringValue description2 = 5;
+
+ // Whether to enable call tracking for the creative. Enabling call
+ // tracking also enables call conversions.
+ google.protobuf.BoolValue call_tracked = 6;
+
+ // Whether to disable call conversion for the creative.
+ // If set to `true`, disables call conversions even when `call_tracked` is
+ // `true`.
+ // If `call_tracked` is `false`, this field is ignored.
+ google.protobuf.BoolValue disable_call_conversion = 7;
+
+ // The URL to be used for phone number verification.
+ google.protobuf.StringValue phone_number_verification_url = 8;
+
+ // The conversion action to attribute a call conversion to. If not set a
+ // default conversion action is used. This field only has effect if
+ // call_tracked is set to true. Otherwise this field is ignored.
+ google.protobuf.StringValue conversion_action = 9;
+
+ // The call conversion behavior of this call only ad. It can use its own call
+ // conversion setting, inherit the account level setting, or be disabled.
+ google.ads.googleads.v1.enums.CallConversionReportingStateEnum.CallConversionReportingState conversion_reporting_state = 10;
+}
+
+// An expanded dynamic search ad.
+message ExpandedDynamicSearchAdInfo {
+ // The description of the ad.
+ google.protobuf.StringValue description = 1;
+}
+
+// A hotel ad.
+message HotelAdInfo {
+
+}
+
+// A Smart Shopping ad.
+message ShoppingSmartAdInfo {
+
+}
+
+// A standard Shopping ad.
+message ShoppingProductAdInfo {
+
+}
+
+// A Gmail ad.
+message GmailAdInfo {
+ // The Gmail teaser.
+ GmailTeaser teaser = 1;
+
+ // The MediaFile resource name of the header image. Valid image types are GIF,
+ // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must
+ // be between 3:1 and 5:1 (+-1%).
+ google.protobuf.StringValue header_image = 2;
+
+ // The MediaFile resource name of the marketing image. Valid image types are
+ // GIF, JPEG and PNG. The image must either be landscape with a minimum size
+ // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a
+ // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%)
+ google.protobuf.StringValue marketing_image = 3;
+
+ // Headline of the marketing image.
+ google.protobuf.StringValue marketing_image_headline = 4;
+
+ // Description of the marketing image.
+ google.protobuf.StringValue marketing_image_description = 5;
+
+ // Display-call-to-action of the marketing image.
+ DisplayCallToAction marketing_image_display_call_to_action = 6;
+
+ // Product images. Up to 15 images are supported.
+ repeated ProductImage product_images = 7;
+
+ // Product videos. Up to 7 videos are supported. At least one product video
+ // or a marketing image must be specified.
+ repeated ProductVideo product_videos = 8;
+}
+
+// Gmail teaser data. The teaser is a small header that acts as an invitation
+// to view the rest of the ad (the body).
+message GmailTeaser {
+ // Headline of the teaser.
+ google.protobuf.StringValue headline = 1;
+
+ // Description of the teaser.
+ google.protobuf.StringValue description = 2;
+
+ // Business name of the advertiser.
+ google.protobuf.StringValue business_name = 3;
+
+ // The MediaFile resource name of the logo image. Valid image types are GIF,
+ // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must
+ // be 1:1 (+-1%).
+ google.protobuf.StringValue logo_image = 4;
+}
+
+// Data for display call to action. The call to action is a piece of the ad
+// that prompts the user to do something. Like clicking a link or making a phone
+// call.
+message DisplayCallToAction {
+ // Text for the display-call-to-action.
+ google.protobuf.StringValue text = 1;
+
+ // Text color for the display-call-to-action in hexadecimal, e.g. #ffffff for
+ // white.
+ google.protobuf.StringValue text_color = 2;
+
+ // Identifies the url collection in the ad.url_collections field. If not set
+ // the url defaults to final_url.
+ google.protobuf.StringValue url_collection_id = 3;
+}
+
+// Product image specific data.
+message ProductImage {
+ // The MediaFile resource name of the product image. Valid image types are
+ // GIF, JPEG and PNG. The minimum size is 300x300 pixels and the aspect ratio
+ // must be 1:1 (+-1%).
+ google.protobuf.StringValue product_image = 1;
+
+ // Description of the product.
+ google.protobuf.StringValue description = 2;
+
+ // Display-call-to-action of the product image.
+ DisplayCallToAction display_call_to_action = 3;
+}
+
+// Product video specific data.
+message ProductVideo {
+ // The MediaFile resource name of a video which must be hosted on YouTube.
+ google.protobuf.StringValue product_video = 1;
+}
+
+// An image ad.
+message ImageAdInfo {
+ // Width in pixels of the full size image.
+ google.protobuf.Int64Value pixel_width = 4;
+
+ // Height in pixels of the full size image.
+ google.protobuf.Int64Value pixel_height = 5;
+
+ // URL of the full size image.
+ google.protobuf.StringValue image_url = 6;
+
+ // Width in pixels of the preview size image.
+ google.protobuf.Int64Value preview_pixel_width = 7;
+
+ // Height in pixels of the preview size image.
+ google.protobuf.Int64Value preview_pixel_height = 8;
+
+ // URL of the preview size image.
+ google.protobuf.StringValue preview_image_url = 9;
+
+ // The mime type of the image.
+ google.ads.googleads.v1.enums.MimeTypeEnum.MimeType mime_type = 10;
+
+ // The name of the image. If the image was created from a MediaFile, this is
+ // the MediaFile's name. If the image was created from bytes, this is empty.
+ google.protobuf.StringValue name = 11;
+
+ // The image to create the ImageAd from. This can be specified in one of
+ // two ways.
+ // 1. An existing MediaFile resource.
+ // 2. The raw image data as bytes.
+ oneof image {
+ // The MediaFile resource to use for the image.
+ google.protobuf.StringValue media_file = 1;
+
+ // Raw image data as bytes.
+ google.protobuf.BytesValue data = 2;
+
+ // An ad ID to copy the image from.
+ google.protobuf.Int64Value ad_id_to_copy_image_from = 3;
+ }
+}
+
+// Representation of video bumper in-stream ad format (very short in-stream
+// non-skippable video ad).
+message VideoBumperInStreamAdInfo {
+
+}
+
+// Representation of video non-skippable in-stream ad format (15 second
+// in-stream non-skippable video ad).
+message VideoNonSkippableInStreamAdInfo {
+
+}
+
+// Representation of video TrueView in-stream ad format (ad shown during video
+// playback, often at beginning, which displays a skip button a few seconds into
+// the video).
+message VideoTrueViewInStreamAdInfo {
+ // Label on the CTA (call-to-action) button taking the user to the video ad's
+ // final URL.
+ // Required for TrueView for action campaigns, optional otherwise.
+ google.protobuf.StringValue action_button_label = 1;
+
+ // Additional text displayed with the CTA (call-to-action) button to give
+ // context and encourage clicking on the button.
+ google.protobuf.StringValue action_headline = 2;
+}
+
+// Representation of video out-stream ad format (ad shown alongside a feed
+// with automatic playback, without sound).
+message VideoOutstreamAdInfo {
+ // The headline of the ad.
+ google.protobuf.StringValue headline = 1;
+
+ // The description line.
+ google.protobuf.StringValue description = 2;
+}
+
+// A video ad.
+message VideoAdInfo {
+ // The MediaFile resource to use for the video.
+ google.protobuf.StringValue media_file = 1;
+
+ // Format-specific schema for the different video formats.
+ oneof format {
+ // Video TrueView in-stream ad format.
+ VideoTrueViewInStreamAdInfo in_stream = 2;
+
+ // Video bumper in-stream ad format.
+ VideoBumperInStreamAdInfo bumper = 3;
+
+ // Video out-stream ad format.
+ VideoOutstreamAdInfo out_stream = 4;
+
+ // Video non-skippable in-stream ad format.
+ VideoNonSkippableInStreamAdInfo non_skippable = 5;
+ }
+}
+
+// A responsive search ad.
+//
+// Responsive search ads let you create an ad that adapts to show more text, and
+// more relevant messages, to your customers. Enter multiple headlines and
+// descriptions when creating a responsive search ad, and over time, Google Ads
+// will automatically test different combinations and learn which combinations
+// perform best. By adapting your ad's content to more closely match potential
+// customers' search terms, responsive search ads may improve your campaign's
+// performance.
+//
+// More information at https://support.google.com/google-ads/answer/7684791
+message ResponsiveSearchAdInfo {
+ // List of text assets for headlines. When the ad serves the headlines will
+ // be selected from this list.
+ repeated AdTextAsset headlines = 1;
+
+ // List of text assets for descriptions. When the ad serves the descriptions
+ // will be selected from this list.
+ repeated AdTextAsset descriptions = 2;
+
+ // First part of text that may appear appended to the url displayed in the ad.
+ google.protobuf.StringValue path1 = 3;
+
+ // Second part of text that may appear appended to the url displayed in the
+ // ad. This field can only be set when path1 is also set.
+ google.protobuf.StringValue path2 = 4;
+}
+
+// A legacy responsive display ad. Ads of this type are labeled 'Responsive ads'
+// in the Google Ads UI.
+message LegacyResponsiveDisplayAdInfo {
+ // The short version of the ad's headline.
+ google.protobuf.StringValue short_headline = 1;
+
+ // The long version of the ad's headline.
+ google.protobuf.StringValue long_headline = 2;
+
+ // The description of the ad.
+ google.protobuf.StringValue description = 3;
+
+ // The business name in the ad.
+ google.protobuf.StringValue business_name = 4;
+
+ // Advertiser's consent to allow flexible color. When true, the ad may be
+ // served with different color if necessary. When false, the ad will be served
+ // with the specified colors or a neutral color.
+ // The default value is true.
+ // Must be true if main_color and accent_color are not set.
+ google.protobuf.BoolValue allow_flexible_color = 5;
+
+ // The accent color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue accent_color = 6;
+
+ // The main color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue main_color = 7;
+
+ // The call-to-action text for the ad.
+ google.protobuf.StringValue call_to_action_text = 8;
+
+ // The MediaFile resource name of the logo image used in the ad.
+ google.protobuf.StringValue logo_image = 9;
+
+ // The MediaFile resource name of the square logo image used in the ad.
+ google.protobuf.StringValue square_logo_image = 10;
+
+ // The MediaFile resource name of the marketing image used in the ad.
+ google.protobuf.StringValue marketing_image = 11;
+
+ // The MediaFile resource name of the square marketing image used in the ad.
+ google.protobuf.StringValue square_marketing_image = 12;
+
+ // Specifies which format the ad will be served in. Default is ALL_FORMATS.
+ google.ads.googleads.v1.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 13;
+
+ // Prefix before price. E.g. 'as low as'.
+ google.protobuf.StringValue price_prefix = 14;
+
+ // Promotion text used for dyanmic formats of responsive ads. For example
+ // 'Free two-day shipping'.
+ google.protobuf.StringValue promo_text = 15;
+}
+
+// An app ad.
+message AppAdInfo {
+ // An optional text asset that, if specified, must always be displayed when
+ // the ad is served.
+ AdTextAsset mandatory_ad_text = 1;
+
+ // List of text assets for headlines. When the ad serves the headlines will
+ // be selected from this list.
+ repeated AdTextAsset headlines = 2;
+
+ // List of text assets for descriptions. When the ad serves the descriptions
+ // will be selected from this list.
+ repeated AdTextAsset descriptions = 3;
+
+ // List of image assets that may be displayed with the ad.
+ repeated AdImageAsset images = 4;
+
+ // List of YouTube video assets that may be displayed with the ad.
+ repeated AdVideoAsset youtube_videos = 5;
+
+ // List of media bundle assets that may be used with the ad.
+ repeated AdMediaBundleAsset html5_media_bundles = 6;
+}
+
+// A legacy app install ad that only can be used by a few select customers.
+message LegacyAppInstallAdInfo {
+ // The id of the mobile app.
+ google.protobuf.StringValue app_id = 1;
+
+ // The app store the mobile app is available in.
+ google.ads.googleads.v1.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore app_store = 2;
+
+ // The headline of the ad.
+ google.protobuf.StringValue headline = 3;
+
+ // The first description line of the ad.
+ google.protobuf.StringValue description1 = 4;
+
+ // The second description line of the ad.
+ google.protobuf.StringValue description2 = 5;
+}
+
+// A responsive display ad.
+message ResponsiveDisplayAdInfo {
+ // Marketing images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must
+ // be 1.91:1 (+-1%). At least one marketing_image is required. Combined with
+ // square_marketing_images the maximum is 15.
+ repeated AdImageAsset marketing_images = 1;
+
+ // Square marketing images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must
+ // be 1:1 (+-1%). At least one square marketing_image is required. Combined
+ // with marketing_images the maximum is 15.
+ repeated AdImageAsset square_marketing_images = 2;
+
+ // Logo images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must
+ // be 4:1 (+-1%). Combined with square_logo_images the maximum is 5.
+ repeated AdImageAsset logo_images = 3;
+
+ // Square logo images to be used in the ad. Valid image types are GIF,
+ // JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must
+ // be 1:1 (+-1%). Combined with square_logo_images the maximum is 5.
+ repeated AdImageAsset square_logo_images = 4;
+
+ // Short format headlines for the ad. The maximum length is 30 characters.
+ // At least 1 and max 5 headlines can be specified.
+ repeated AdTextAsset headlines = 5;
+
+ // A required long format headline. The maximum length is 90 characters.
+ AdTextAsset long_headline = 6;
+
+ // Descriptive texts for the ad. The maximum length is 90 characters. At
+ // least 1 and max 5 headlines can be specified.
+ repeated AdTextAsset descriptions = 7;
+
+ // Optional YouTube vidoes for the ad. A maximum of 5 videos can be specified.
+ repeated AdVideoAsset youtube_videos = 8;
+
+ // The advertiser/brand name. Maximum display width is 25.
+ google.protobuf.StringValue business_name = 9;
+
+ // The main color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue main_color = 10;
+
+ // The accent color of the ad in hexadecimal, e.g. #ffffff for white.
+ // If one of main_color and accent_color is set, the other is required as
+ // well.
+ google.protobuf.StringValue accent_color = 11;
+
+ // Advertiser's consent to allow flexible color. When true, the ad may be
+ // served with different color if necessary. When false, the ad will be served
+ // with the specified colors or a neutral color.
+ // The default value is true.
+ // Must be true if main_color and accent_color are not set.
+ google.protobuf.BoolValue allow_flexible_color = 12;
+
+ // The call-to-action text for the ad. Maximum display width is 30.
+ google.protobuf.StringValue call_to_action_text = 13;
+
+ // Prefix before price. E.g. 'as low as'.
+ google.protobuf.StringValue price_prefix = 14;
+
+ // Promotion text used for dyanmic formats of responsive ads. For example
+ // 'Free two-day shipping'.
+ google.protobuf.StringValue promo_text = 15;
+
+ // Specifies which format the ad will be served in. Default is ALL_FORMATS.
+ google.ads.googleads.v1.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting format_setting = 16;
+}
diff --git a/google/ads/googleads/v1/common/asset_types.proto b/google/ads/googleads/v1/common/asset_types.proto
new file mode 100644
index 000000000..ab13a3587
--- /dev/null
+++ b/google/ads/googleads/v1/common/asset_types.proto
@@ -0,0 +1,76 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/mime_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "AssetTypesProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file containing info messages for specific asset types.
+
+// A YouTube asset.
+message YoutubeVideoAsset {
+ // YouTube video id. This is the 11 character string value used in the
+ // YouTube video URL.
+ google.protobuf.StringValue youtube_video_id = 1;
+}
+
+// A MediaBundle asset.
+message MediaBundleAsset {
+ // Media bundle (ZIP file) asset data. The format of the uploaded ZIP file
+ // depends on the ad field where it will be used. For more information on the
+ // format, see the documentation of the ad field where you plan on using the
+ // MediaBundleAsset. This field is mutate only.
+ google.protobuf.BytesValue data = 1;
+}
+
+// An Image asset.
+message ImageAsset {
+ // The raw bytes data of an image. This field is mutate only.
+ google.protobuf.BytesValue data = 1;
+
+ // File size of the image asset in bytes.
+ google.protobuf.Int64Value file_size = 2;
+
+ // MIME type of the image asset.
+ google.ads.googleads.v1.enums.MimeTypeEnum.MimeType mime_type = 3;
+
+ // Metadata for this image at its original size.
+ ImageDimension full_size = 4;
+}
+
+// Metadata for an image at a certain size, either original or resized.
+message ImageDimension {
+ // Height of the image.
+ google.protobuf.Int64Value height_pixels = 1;
+
+ // Width of the image.
+ google.protobuf.Int64Value width_pixels = 2;
+
+ // A URL that returns the image with this height and width.
+ google.protobuf.StringValue url = 3;
+}
diff --git a/google/ads/googleads/v1/common/bidding.proto b/google/ads/googleads/v1/common/bidding.proto
new file mode 100644
index 000000000..a971119f2
--- /dev/null
+++ b/google/ads/googleads/v1/common/bidding.proto
@@ -0,0 +1,232 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto";
+import "google/ads/googleads/v1/enums/target_impression_share_location.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "BiddingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing bidding schemes.
+
+// Commission is an automatic bidding strategy in which the advertiser pays a
+// certain portion of the conversion value.
+message Commission {
+ // Commission rate defines the portion of the conversion value that the
+ // advertiser will be billed. A commission rate of x should be passed into
+ // this field as (x * 1,000,000). For example, 106,000 represents a commission
+ // rate of 0.106 (10.6%).
+ google.protobuf.Int64Value commission_rate_micros = 1;
+}
+
+// An automated bidding strategy that raises bids for clicks
+// that seem more likely to lead to a conversion and lowers
+// them for clicks where they seem less likely.
+message EnhancedCpc {
+
+}
+
+// Manual click-based bidding where user pays per click.
+message ManualCpc {
+ // Whether bids are to be enhanced based on conversion optimizer data.
+ google.protobuf.BoolValue enhanced_cpc_enabled = 1;
+}
+
+// Manual impression-based bidding where user pays per thousand impressions.
+message ManualCpm {
+
+}
+
+// View based bidding where user pays per video view.
+message ManualCpv {
+
+}
+
+// An automated bidding strategy that sets bids to help get the most conversions
+// for your campaign while spending your budget.
+message MaximizeConversions {
+
+}
+
+// An automated bidding strategy which tries to maximize conversion value
+// given a daily budget.
+message MaximizeConversionValue {
+ // The target return on ad spend (ROAS) option. If set, the bid strategy will
+ // maximize revenue while averaging the target return on ad spend. If the
+ // target ROAS is high, the bid strategy may not be able to spend the full
+ // budget. If the target ROAS is not set, the bid strategy will aim to
+ // achieve the highest possible ROAS for the budget.
+ google.protobuf.DoubleValue target_roas = 1;
+}
+
+// An automated bidding strategy which sets CPC bids to target impressions on
+// page one, or page one promoted slots on google.com.
+message PageOnePromoted {
+ // The strategy goal of where impressions are desired to be shown on
+ // search result pages.
+ google.ads.googleads.v1.enums.PageOnePromotedStrategyGoalEnum.PageOnePromotedStrategyGoal strategy_goal = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+
+ // Bid multiplier to be applied to the relevant bid estimate (depending on
+ // the `strategy_goal`) in determining a keyword's new CPC bid.
+ google.protobuf.DoubleValue bid_modifier = 3;
+
+ // Whether the strategy should always follow bid estimate changes, or only
+ // increase.
+ // If false, always sets a keyword's new bid to the current bid estimate.
+ // If true, only updates a keyword's bid if the current bid estimate is
+ // greater than the current bid.
+ google.protobuf.BoolValue only_raise_cpc_bids = 4;
+
+ // Whether the strategy is allowed to raise bids when the throttling
+ // rate of the budget it is serving out of rises above a threshold.
+ google.protobuf.BoolValue raise_cpc_bid_when_budget_constrained = 5;
+
+ // Whether the strategy is allowed to raise bids on keywords with
+ // lower-range quality scores.
+ google.protobuf.BoolValue raise_cpc_bid_when_quality_score_is_low = 6;
+}
+
+// An automated bid strategy that sets bids to help get as many conversions as
+// possible at the target cost-per-acquisition (CPA) you set.
+message TargetCpa {
+ // Average CPA target.
+ // This target should be greater than or equal to minimum billable unit based
+ // on the currency for the account.
+ google.protobuf.Int64Value target_cpa_micros = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+
+ // Minimum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_floor_micros = 3;
+}
+
+// Target CPM (cost per thousand impressions) is an automated bidding strategy
+// that sets bids to optimize performance given the target CPM you set.
+message TargetCpm {
+
+}
+
+// An automated bidding strategy that sets bids so that a certain percentage of
+// search ads are shown at the top of the first page (or other targeted
+// location).
+// Next Id = 4
+message TargetImpressionShare {
+ // The targeted location on the search results page.
+ google.ads.googleads.v1.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1;
+
+ // The desired fraction of ads to be shown in the targeted location in micros.
+ // E.g. 1% equals 10,000.
+ google.protobuf.Int64Value location_fraction_micros = 2;
+
+ // The highest CPC bid the automated bidding system is permitted to specify.
+ // This is a required field entered by the advertiser that sets the ceiling
+ // and specified in local micros.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 3;
+}
+
+// An automated bidding strategy that sets bids based on the target fraction of
+// auctions where the advertiser should outrank a specific competitor.
+message TargetOutrankShare {
+ // The target fraction of auctions where the advertiser should outrank the
+ // competitor.
+ // The advertiser outranks the competitor in an auction if either the
+ // advertiser appears above the competitor in the search results, or appears
+ // in the search results when the competitor does not.
+ // Value must be between 1 and 1000000, inclusive.
+ google.protobuf.Int32Value target_outrank_share_micros = 1;
+
+ // Competitor's visible domain URL.
+ google.protobuf.StringValue competitor_domain = 2;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 3;
+
+ // Whether the strategy should always follow bid estimate changes,
+ // or only increase.
+ // If false, always set a keyword's new bid to the current bid estimate.
+ // If true, only updates a keyword's bid if the current bid estimate is
+ // greater than the current bid.
+ google.protobuf.BoolValue only_raise_cpc_bids = 4;
+
+ // Whether the strategy is allowed to raise bids on keywords with
+ // lower-range quality scores.
+ google.protobuf.BoolValue raise_cpc_bid_when_quality_score_is_low = 5;
+}
+
+// An automated bidding strategy that helps you maximize revenue while
+// averaging a specific target return on ad spend (ROAS).
+message TargetRoas {
+ // Required. The desired revenue (based on conversion data) per unit of spend.
+ // Value must be between 0.01 and 1000.0, inclusive.
+ google.protobuf.DoubleValue target_roas = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+
+ // Minimum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_floor_micros = 3;
+}
+
+// An automated bid strategy that sets your bids to help get as many clicks
+// as possible within your budget.
+message TargetSpend {
+ // The spend target under which to maximize clicks.
+ // A TargetSpend bidder will attempt to spend the smaller of this value
+ // or the natural throttling spend amount.
+ // If not specified, the budget is used as the spend target.
+ google.protobuf.Int64Value target_spend_micros = 1;
+
+ // Maximum bid limit that can be set by the bid strategy.
+ // The limit applies to all keywords managed by the strategy.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
+}
+
+// A bidding strategy where bids are a fraction of the advertised price for
+// some good or service.
+message PercentCpc {
+ // Maximum bid limit that can be set by the bid strategy. This is
+ // an optional field entered by the advertiser and specified in local micros.
+ // Note: A zero value is interpreted in the same way as having bid_ceiling
+ // undefined.
+ google.protobuf.Int64Value cpc_bid_ceiling_micros = 1;
+
+ // Adjusts the bid for each auction upward or downward, depending on the
+ // likelihood of a conversion. Individual bids may exceed
+ // cpc_bid_ceiling_micros, but the average bid amount for a campaign should
+ // not.
+ google.protobuf.BoolValue enhanced_cpc_enabled = 2;
+}
diff --git a/google/ads/googleads/v1/common/click_location.proto b/google/ads/googleads/v1/common/click_location.proto
new file mode 100644
index 000000000..94eb32729
--- /dev/null
+++ b/google/ads/googleads/v1/common/click_location.proto
@@ -0,0 +1,50 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ClickLocationProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing a ClickLocation.
+
+// Location criteria associated with a click.
+message ClickLocation {
+ // The city location criterion associated with the impression.
+ google.protobuf.StringValue city = 1;
+
+ // The country location criterion associated with the impression.
+ google.protobuf.StringValue country = 2;
+
+ // The metro location criterion associated with the impression.
+ google.protobuf.StringValue metro = 3;
+
+ // The most specific location criterion associated with the impression.
+ google.protobuf.StringValue most_specific = 4;
+
+ // The region location criterion associated with the impression.
+ google.protobuf.StringValue region = 5;
+}
diff --git a/google/ads/googleads/v1/common/criteria.proto b/google/ads/googleads/v1/common/criteria.proto
new file mode 100644
index 000000000..5406c09ce
--- /dev/null
+++ b/google/ads/googleads/v1/common/criteria.proto
@@ -0,0 +1,571 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/age_range_type.proto";
+import "google/ads/googleads/v1/enums/app_payment_model_type.proto";
+import "google/ads/googleads/v1/enums/content_label_type.proto";
+import "google/ads/googleads/v1/enums/day_of_week.proto";
+import "google/ads/googleads/v1/enums/device.proto";
+import "google/ads/googleads/v1/enums/gender_type.proto";
+import "google/ads/googleads/v1/enums/hotel_date_selection_type.proto";
+import "google/ads/googleads/v1/enums/income_range_type.proto";
+import "google/ads/googleads/v1/enums/interaction_type.proto";
+import "google/ads/googleads/v1/enums/keyword_match_type.proto";
+import "google/ads/googleads/v1/enums/listing_custom_attribute_index.proto";
+import "google/ads/googleads/v1/enums/listing_group_type.proto";
+import "google/ads/googleads/v1/enums/minute_of_hour.proto";
+import "google/ads/googleads/v1/enums/parental_status_type.proto";
+import "google/ads/googleads/v1/enums/preferred_content_type.proto";
+import "google/ads/googleads/v1/enums/product_bidding_category_level.proto";
+import "google/ads/googleads/v1/enums/product_channel.proto";
+import "google/ads/googleads/v1/enums/product_channel_exclusivity.proto";
+import "google/ads/googleads/v1/enums/product_condition.proto";
+import "google/ads/googleads/v1/enums/product_type_level.proto";
+import "google/ads/googleads/v1/enums/proximity_radius_units.proto";
+import "google/ads/googleads/v1/enums/webpage_condition_operand.proto";
+import "google/ads/googleads/v1/enums/webpage_condition_operator.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "CriteriaProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing criteria types.
+
+// A keyword criterion.
+message KeywordInfo {
+ // The text of the keyword (at most 80 characters and 10 words).
+ google.protobuf.StringValue text = 1;
+
+ // The match type of the keyword.
+ google.ads.googleads.v1.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2;
+}
+
+// A placement criterion. This can be used to modify bids for sites when
+// targeting the content network.
+message PlacementInfo {
+ // URL of the placement.
+ //
+ // For example, "http://www.domain.com".
+ google.protobuf.StringValue url = 1;
+}
+
+// A mobile app category criterion.
+message MobileAppCategoryInfo {
+ // The mobile app category constant resource name.
+ google.protobuf.StringValue mobile_app_category_constant = 1;
+}
+
+// A mobile application criterion.
+message MobileApplicationInfo {
+ // A string that uniquely identifies a mobile application to Google Ads API.
+ // The format of this string is "{platform}-{platform_native_id}", where
+ // platform is "1" for iOS apps and "2" for Android apps, and where
+ // platform_native_id is the mobile application identifier native to the
+ // corresponding platform.
+ // For iOS, this native identifier is the 9 digit string that appears at the
+ // end of an App Store URL (e.g., "476943146" for "Flood-It! 2" whose App
+ // Store link is http://itunes.apple.com/us/app/flood-it!-2/id476943146).
+ // For Android, this native identifier is the application's package name
+ // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link
+ // https://play.google.com/store/apps/details?id=com.labpixies.colordrips).
+ // A well formed app id for Google Ads API would thus be "1-476943146" for iOS
+ // and "2-com.labpixies.colordrips" for Android.
+ // This field is required and must be set in CREATE operations.
+ google.protobuf.StringValue app_id = 2;
+}
+
+// A location criterion.
+message LocationInfo {
+ // The geo target constant resource name.
+ google.protobuf.StringValue geo_target_constant = 1;
+}
+
+// A device criterion.
+message DeviceInfo {
+ // Type of the device.
+ google.ads.googleads.v1.enums.DeviceEnum.Device type = 1;
+}
+
+// A preferred content criterion.
+message PreferredContentInfo {
+ // Type of the preferred content.
+ google.ads.googleads.v1.enums.PreferredContentTypeEnum.PreferredContentType type = 2;
+}
+
+// A listing group criterion.
+message ListingGroupInfo {
+ // Type of the listing group.
+ google.ads.googleads.v1.enums.ListingGroupTypeEnum.ListingGroupType type = 1;
+
+ // Dimension value with which this listing group is refining its parent.
+ // Undefined for the root group.
+ ListingDimensionInfo case_value = 2;
+
+ // Resource name of ad group criterion which is the parent listing group
+ // subdivision. Null for the root group.
+ google.protobuf.StringValue parent_ad_group_criterion = 3;
+}
+
+// A listing scope criterion.
+message ListingScopeInfo {
+ // Scope of the campaign criterion.
+ repeated ListingDimensionInfo dimensions = 2;
+}
+
+// Listing dimensions for listing group criterion.
+message ListingDimensionInfo {
+ // Dimension of one of the types below is always present.
+ oneof dimension {
+ // Brand of the listing.
+ ListingBrandInfo listing_brand = 1;
+
+ // Advertiser-specific hotel ID.
+ HotelIdInfo hotel_id = 2;
+
+ // Class of the hotel as a number of stars 1 to 5.
+ HotelClassInfo hotel_class = 3;
+
+ // Country or Region the hotel is located in.
+ HotelCountryRegionInfo hotel_country_region = 4;
+
+ // State the hotel is located in.
+ HotelStateInfo hotel_state = 5;
+
+ // City the hotel is located in.
+ HotelCityInfo hotel_city = 6;
+
+ // Listing custom attribute.
+ ListingCustomAttributeInfo listing_custom_attribute = 7;
+
+ // Bidding category of a product offer.
+ ProductBiddingCategoryInfo product_bidding_category = 13;
+
+ // Locality of a product offer.
+ ProductChannelInfo product_channel = 8;
+
+ // Availability of a product offer.
+ ProductChannelExclusivityInfo product_channel_exclusivity = 9;
+
+ // Condition of a product offer.
+ ProductConditionInfo product_condition = 10;
+
+ // Item id of a product offer.
+ ProductItemIdInfo product_item_id = 11;
+
+ // Type of a product offer.
+ ProductTypeInfo product_type = 12;
+
+ // Unknown dimension. Set when no other listing dimension is set.
+ UnknownListingDimensionInfo unknown_listing_dimension = 14;
+ }
+}
+
+// Brand of the listing.
+message ListingBrandInfo {
+ // String value of the listing brand.
+ google.protobuf.StringValue value = 1;
+}
+
+// Advertiser-specific hotel ID.
+message HotelIdInfo {
+ // String value of the hotel ID.
+ google.protobuf.StringValue value = 1;
+}
+
+// Class of the hotel as a number of stars 1 to 5.
+message HotelClassInfo {
+ // Long value of the hotel class.
+ google.protobuf.Int64Value value = 1;
+}
+
+// Country or Region the hotel is located in.
+message HotelCountryRegionInfo {
+ // The Geo Target Constant resource name.
+ google.protobuf.StringValue country_region_criterion = 1;
+}
+
+// State the hotel is located in.
+message HotelStateInfo {
+ // The Geo Target Constant resource name.
+ google.protobuf.StringValue state_criterion = 1;
+}
+
+// City the hotel is located in.
+message HotelCityInfo {
+ // The Geo Target Constant resource name.
+ google.protobuf.StringValue city_criterion = 1;
+}
+
+// Listing custom attribute.
+message ListingCustomAttributeInfo {
+ // String value of the listing custom attribute.
+ google.protobuf.StringValue value = 1;
+
+ // Indicates the index of the custom attribute.
+ google.ads.googleads.v1.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex index = 2;
+}
+
+// Bidding category of a product offer.
+message ProductBiddingCategoryInfo {
+ // ID of the product bidding category.
+ //
+ // This ID is equivalent to the google_product_category ID as described in
+ // this article: https://support.google.com/merchants/answer/6324436.
+ google.protobuf.Int64Value id = 1;
+
+ // Two-letter upper-case country code of the product bidding category. It must
+ // match the campaign.shopping_setting.sales_country field.
+ google.protobuf.StringValue country_code = 2;
+
+ // Level of the product bidding category.
+ google.ads.googleads.v1.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel level = 3;
+}
+
+// Locality of a product offer.
+message ProductChannelInfo {
+ // Value of the locality.
+ google.ads.googleads.v1.enums.ProductChannelEnum.ProductChannel channel = 1;
+}
+
+// Availability of a product offer.
+message ProductChannelExclusivityInfo {
+ // Value of the availability.
+ google.ads.googleads.v1.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity channel_exclusivity = 1;
+}
+
+// Condition of a product offer.
+message ProductConditionInfo {
+ // Value of the condition.
+ google.ads.googleads.v1.enums.ProductConditionEnum.ProductCondition condition = 1;
+}
+
+// Item id of a product offer.
+message ProductItemIdInfo {
+ // Value of the id.
+ google.protobuf.StringValue value = 1;
+}
+
+// Type of a product offer.
+message ProductTypeInfo {
+ // Value of the type.
+ google.protobuf.StringValue value = 1;
+
+ // Level of the type.
+ google.ads.googleads.v1.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2;
+}
+
+// Unknown listing dimension.
+message UnknownListingDimensionInfo {
+
+}
+
+// Criterion for hotel date selection (default dates vs. user selected).
+message HotelDateSelectionTypeInfo {
+ // Type of the hotel date selection
+ google.ads.googleads.v1.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType type = 1;
+}
+
+// Criterion for number of days prior to the stay the booking is being made.
+message HotelAdvanceBookingWindowInfo {
+ // Low end of the number of days prior to the stay.
+ google.protobuf.Int64Value min_days = 1;
+
+ // High end of the number of days prior to the stay.
+ google.protobuf.Int64Value max_days = 2;
+}
+
+// Criterion for length of hotel stay in nights.
+message HotelLengthOfStayInfo {
+ // Low end of the number of nights in the stay.
+ google.protobuf.Int64Value min_nights = 1;
+
+ // High end of the number of nights in the stay.
+ google.protobuf.Int64Value max_nights = 2;
+}
+
+// Criterion for day of the week the booking is for.
+message HotelCheckInDayInfo {
+ // The day of the week.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1;
+}
+
+// Criterion for Interaction Type.
+message InteractionTypeInfo {
+ // The interaction type.
+ google.ads.googleads.v1.enums.InteractionTypeEnum.InteractionType type = 1;
+}
+
+// Represents an AdSchedule criterion.
+//
+// AdSchedule is specified as the day of the week and a time interval
+// within which ads will be shown.
+//
+// No more than six AdSchedules can be added for the same day.
+message AdScheduleInfo {
+ // Minutes after the start hour at which this schedule starts.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.ads.googleads.v1.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 1;
+
+ // Minutes after the end hour at which this schedule ends. The schedule is
+ // exclusive of the end minute.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.ads.googleads.v1.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2;
+
+ // Starting hour in 24 hour time.
+ // This field must be between 0 and 23, inclusive.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.protobuf.Int32Value start_hour = 3;
+
+ // Ending hour in 24 hour time; 24 signifies end of the day.
+ // This field must be between 0 and 24, inclusive.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.protobuf.Int32Value end_hour = 4;
+
+ // Day of the week the schedule applies to.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5;
+}
+
+// An age range criterion.
+message AgeRangeInfo {
+ // Type of the age range.
+ google.ads.googleads.v1.enums.AgeRangeTypeEnum.AgeRangeType type = 1;
+}
+
+// A gender criterion.
+message GenderInfo {
+ // Type of the gender.
+ google.ads.googleads.v1.enums.GenderTypeEnum.GenderType type = 1;
+}
+
+// An income range criterion.
+message IncomeRangeInfo {
+ // Type of the income range.
+ google.ads.googleads.v1.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1;
+}
+
+// A parental status criterion.
+message ParentalStatusInfo {
+ // Type of the parental status.
+ google.ads.googleads.v1.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1;
+}
+
+// A YouTube Video criterion.
+message YouTubeVideoInfo {
+ // YouTube video id as it appears on the YouTube watch page.
+ google.protobuf.StringValue video_id = 1;
+}
+
+// A YouTube Channel criterion.
+message YouTubeChannelInfo {
+ // The YouTube uploader channel id or the channel code of a YouTube channel.
+ google.protobuf.StringValue channel_id = 1;
+}
+
+// A User List criterion. Represents a user list that is defined by the
+// advertiser to be targeted.
+message UserListInfo {
+ // The User List resource name.
+ google.protobuf.StringValue user_list = 1;
+}
+
+// A Proximity criterion. The geo point and radius determine what geographical
+// area is included. The address is a description of the geo point that does
+// not affect ad serving.
+//
+// There are two ways to create a proximity. First, by setting an address
+// and radius. The geo point will be automatically computed. Second, by
+// setting a geo point and radius. The address is an optional label that won't
+// be validated.
+message ProximityInfo {
+ // Latitude and longitude.
+ GeoPointInfo geo_point = 1;
+
+ // The radius of the proximity.
+ google.protobuf.DoubleValue radius = 2;
+
+ // The unit of measurement of the radius. Default is KILOMETERS.
+ google.ads.googleads.v1.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3;
+
+ // Full address.
+ AddressInfo address = 4;
+}
+
+// Geo point for proximity criterion.
+message GeoPointInfo {
+ // Micro degrees for the longitude.
+ google.protobuf.Int32Value longitude_in_micro_degrees = 1;
+
+ // Micro degrees for the latitude.
+ google.protobuf.Int32Value latitude_in_micro_degrees = 2;
+}
+
+// Address for proximity criterion.
+message AddressInfo {
+ // Postal code.
+ google.protobuf.StringValue postal_code = 1;
+
+ // Province or state code.
+ google.protobuf.StringValue province_code = 2;
+
+ // Country code.
+ google.protobuf.StringValue country_code = 3;
+
+ // Province or state name.
+ google.protobuf.StringValue province_name = 4;
+
+ // Street address line 1.
+ google.protobuf.StringValue street_address = 5;
+
+ // Street address line 2. This field is write-only. It is only used for
+ // calculating the longitude and latitude of an address when geo_point is
+ // empty.
+ google.protobuf.StringValue street_address2 = 6;
+
+ // Name of the city.
+ google.protobuf.StringValue city_name = 7;
+}
+
+// A topic criterion. Use topics to target or exclude placements in the
+// Google Display Network based on the category into which the placement falls
+// (for example, "Pets & Animals/Pets/Dogs").
+message TopicInfo {
+ // The Topic Constant resource name.
+ google.protobuf.StringValue topic_constant = 1;
+
+ // The category to target or exclude. Each subsequent element in the array
+ // describes a more specific sub-category. For example,
+ // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs"
+ // category.
+ repeated google.protobuf.StringValue path = 2;
+}
+
+// A language criterion.
+message LanguageInfo {
+ // The language constant resource name.
+ google.protobuf.StringValue language_constant = 1;
+}
+
+// An IpBlock criterion used for IP exclusions. We allow:
+// - IPv4 and IPv6 addresses
+// - individual addresses (192.168.0.1)
+// - masks for individual addresses (192.168.0.1/32)
+// - masks for Class C networks (192.168.0.1/24)
+message IpBlockInfo {
+ // The IP address of this IP block.
+ google.protobuf.StringValue ip_address = 1;
+}
+
+// Content Label for category exclusion.
+message ContentLabelInfo {
+ // Content label type, required for CREATE operations.
+ google.ads.googleads.v1.enums.ContentLabelTypeEnum.ContentLabelType type = 1;
+}
+
+// Represents a Carrier Criterion.
+message CarrierInfo {
+ // The Carrier constant resource name.
+ google.protobuf.StringValue carrier_constant = 1;
+}
+
+// Represents a particular interest-based topic to be targeted.
+message UserInterestInfo {
+ // The UserInterest resource name.
+ google.protobuf.StringValue user_interest_category = 1;
+}
+
+// Represents a criterion for targeting webpages of an advertiser's website.
+message WebpageInfo {
+ // The name of the criterion that is defined by this parameter. The name value
+ // will be used for identifying, sorting and filtering criteria with this type
+ // of parameters.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ google.protobuf.StringValue criterion_name = 1;
+
+ // Conditions, or logical expressions, for webpage targeting. The list of
+ // webpage targeting conditions are and-ed together when evaluated
+ // for targeting.
+ //
+ // This field is required for CREATE operations and is prohibited on UPDATE
+ // operations.
+ repeated WebpageConditionInfo conditions = 2;
+}
+
+// Logical expression for targeting webpages of an advertiser's website.
+message WebpageConditionInfo {
+ // Operand of webpage targeting condition.
+ google.ads.googleads.v1.enums.WebpageConditionOperandEnum.WebpageConditionOperand operand = 1;
+
+ // Operator of webpage targeting condition.
+ google.ads.googleads.v1.enums.WebpageConditionOperatorEnum.WebpageConditionOperator operator = 2;
+
+ // Argument of webpage targeting condition.
+ google.protobuf.StringValue argument = 3;
+}
+
+// Represents an operating system version to be targeted.
+message OperatingSystemVersionInfo {
+ // The operating system version constant resource name.
+ google.protobuf.StringValue operating_system_version_constant = 1;
+}
+
+// An app payment model criterion.
+message AppPaymentModelInfo {
+ // Type of the app payment model.
+ google.ads.googleads.v1.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1;
+}
+
+// A mobile device criterion.
+message MobileDeviceInfo {
+ // The mobile device constant resource name.
+ google.protobuf.StringValue mobile_device_constant = 1;
+}
+
+// A custom affinity criterion.
+// A criterion of this type is only targetable.
+message CustomAffinityInfo {
+ // The CustomInterest resource name.
+ google.protobuf.StringValue custom_affinity = 1;
+}
+
+// A custom intent criterion.
+// A criterion of this type is only targetable.
+message CustomIntentInfo {
+ // The CustomInterest resource name.
+ google.protobuf.StringValue custom_intent = 1;
+}
diff --git a/google/ads/googleads/v1/common/criterion_category_availability.proto b/google/ads/googleads/v1/common/criterion_category_availability.proto
new file mode 100644
index 000000000..01d353dac
--- /dev/null
+++ b/google/ads/googleads/v1/common/criterion_category_availability.proto
@@ -0,0 +1,84 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/advertising_channel_sub_type.proto";
+import "google/ads/googleads/v1/enums/advertising_channel_type.proto";
+import "google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto";
+import "google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "CriterionCategoryAvailabilityProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing criterion category availability information.
+
+// Information of category availability, per advertising channel.
+message CriterionCategoryAvailability {
+ // Channel types and subtypes that are available to the category.
+ CriterionCategoryChannelAvailability channel = 1;
+
+ // Locales that are available to the category for the channel.
+ repeated CriterionCategoryLocaleAvailability locale = 2;
+}
+
+// Information of advertising channel type and subtypes a category is available
+// in.
+message CriterionCategoryChannelAvailability {
+ // Format of the channel availability. Can be ALL_CHANNELS (the rest of the
+ // fields will not be set), CHANNEL_TYPE (only advertising_channel_type type
+ // will be set, the category is available to all sub types under it) or
+ // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type,
+ // advertising_channel_sub_type, and include_default_channel_sub_type will all
+ // be set).
+ google.ads.googleads.v1.enums.CriterionCategoryChannelAvailabilityModeEnum.CriterionCategoryChannelAvailabilityMode availability_mode = 1;
+
+ // Channel type the category is available to.
+ google.ads.googleads.v1.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 2;
+
+ // Channel subtypes under the channel type the category is available to.
+ repeated google.ads.googleads.v1.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 3;
+
+ // Whether default channel sub type is included. For example,
+ // advertising_channel_type being DISPLAY and include_default_channel_sub_type
+ // being false means that the default display campaign where channel sub type
+ // is not set is not included in this availability configuration.
+ google.protobuf.BoolValue include_default_channel_sub_type = 4;
+}
+
+// Information about which locales a category is available in.
+message CriterionCategoryLocaleAvailability {
+ // Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and
+ // language will be empty), COUNTRY (only country will be set), LANGUAGE (only
+ // language wil be set), COUNTRY_AND_LANGUAGE (both country and language will
+ // be set).
+ google.ads.googleads.v1.enums.CriterionCategoryLocaleAvailabilityModeEnum.CriterionCategoryLocaleAvailabilityMode availability_mode = 1;
+
+ // Code of the country.
+ google.protobuf.StringValue country_code = 2;
+
+ // Code of the language.
+ google.protobuf.StringValue language_code = 3;
+}
diff --git a/google/ads/googleads/v1/common/custom_parameter.proto b/google/ads/googleads/v1/common/custom_parameter.proto
new file mode 100644
index 000000000..a8b932615
--- /dev/null
+++ b/google/ads/googleads/v1/common/custom_parameter.proto
@@ -0,0 +1,42 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "CustomParameterProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing CustomParameter and operation
+
+// A mapping that can be used by custom parameter tags in a
+// `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
+message CustomParameter {
+ // The key matching the parameter tag name.
+ google.protobuf.StringValue key = 1;
+
+ // The value to be substituted.
+ google.protobuf.StringValue value = 2;
+}
diff --git a/google/ads/googleads/v1/common/dates.proto b/google/ads/googleads/v1/common/dates.proto
new file mode 100644
index 000000000..3cccdfc5f
--- /dev/null
+++ b/google/ads/googleads/v1/common/dates.proto
@@ -0,0 +1,41 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "DatesProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing date range message.
+
+// A date range.
+message DateRange {
+ // The start date, in yyyy-mm-dd format.
+ google.protobuf.StringValue start_date = 1;
+
+ // The end date, in yyyy-mm-dd format.
+ google.protobuf.StringValue end_date = 2;
+}
diff --git a/google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto b/google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto
new file mode 100644
index 000000000..9b935ed14
--- /dev/null
+++ b/google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto
@@ -0,0 +1,40 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ExplorerAutoOptimizerSettingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing ExplorerAutoOptimizerSetting
+
+// Settings for the
+// <a href="https://support.google.com/google-ads/answer/190596">
+// Display Campaign Optimizer</a>, initially termed "Explorer".
+message ExplorerAutoOptimizerSetting {
+ // Indicates whether the optimizer is turned on.
+ google.protobuf.BoolValue opt_in = 1;
+}
diff --git a/google/ads/googleads/v1/common/extensions.proto b/google/ads/googleads/v1/common/extensions.proto
new file mode 100644
index 000000000..4c593599c
--- /dev/null
+++ b/google/ads/googleads/v1/common/extensions.proto
@@ -0,0 +1,286 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/common/custom_parameter.proto";
+import "google/ads/googleads/v1/common/feed_common.proto";
+import "google/ads/googleads/v1/enums/app_store.proto";
+import "google/ads/googleads/v1/enums/call_conversion_reporting_state.proto";
+import "google/ads/googleads/v1/enums/price_extension_price_qualifier.proto";
+import "google/ads/googleads/v1/enums/price_extension_price_unit.proto";
+import "google/ads/googleads/v1/enums/price_extension_type.proto";
+import "google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto";
+import "google/ads/googleads/v1/enums/promotion_extension_occasion.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ExtensionsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing extension types.
+
+// Represents an App extension.
+message AppFeedItem {
+ // The visible text displayed when the link is rendered in an ad.
+ // The length of this string should be between 1 and 25, inclusive.
+ google.protobuf.StringValue link_text = 1;
+
+ // The store-specific ID for the target application.
+ // This string must not be empty.
+ google.protobuf.StringValue app_id = 2;
+
+ // The application store that the target application belongs to.
+ google.ads.googleads.v1.enums.AppStoreEnum.AppStore app_store = 3;
+
+ // A list of possible final URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_urls = 4;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 5;
+
+ // URL template for constructing a tracking URL. Default value is "{lpurl}".
+ google.protobuf.StringValue tracking_url_template = 6;
+
+ // A list of mappings to be used for substituting URL custom parameter tags in
+ // the tracking_url_template, final_urls, and/or final_mobile_urls.
+ repeated CustomParameter url_custom_parameters = 7;
+
+ // URL template for appending params to landing page URLs served with parallel
+ // tracking.
+ google.protobuf.StringValue final_url_suffix = 8;
+}
+
+// Represents a Call extension.
+message CallFeedItem {
+ // The advertiser's phone number to append to the ad.
+ // This string must not be empty.
+ google.protobuf.StringValue phone_number = 1;
+
+ // Uppercase two-letter country code of the advertiser's phone number.
+ // This string must not be empty.
+ google.protobuf.StringValue country_code = 2;
+
+ // Indicates whether call tracking is enabled. By default, call tracking is
+ // not enabled.
+ google.protobuf.BoolValue call_tracking_enabled = 3;
+
+ // The conversion action to attribute a call conversion to. If not set a
+ // default conversion action is used. This field only has effect if
+ // call_tracking_enabled is set to true. Otherwise this field is ignored.
+ google.protobuf.StringValue call_conversion_action = 4;
+
+ // If true, disable call conversion tracking. call_conversion_action should
+ // not be set if this is true. Optional.
+ google.protobuf.BoolValue call_conversion_tracking_disabled = 5;
+
+ // Enum value that indicates whether this call extension uses its own call
+ // conversion setting (or just have call conversion disabled), or following
+ // the account level setting.
+ google.ads.googleads.v1.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 6;
+}
+
+// Represents a callout extension.
+message CalloutFeedItem {
+ // The callout text.
+ // The length of this string should be between 1 and 25, inclusive.
+ google.protobuf.StringValue callout_text = 1;
+}
+
+// An extension that users can click on to send a text message to the
+// advertiser.
+message TextMessageFeedItem {
+ // The business name to prepend to the message text.
+ // This field is required.
+ google.protobuf.StringValue business_name = 1;
+
+ // Uppercase two-letter country code of the advertiser's phone number.
+ // This field is required.
+ google.protobuf.StringValue country_code = 2;
+
+ // The advertiser's phone number the message will be sent to. Required.
+ google.protobuf.StringValue phone_number = 3;
+
+ // The text to show in the ad.
+ // This field is required.
+ google.protobuf.StringValue text = 4;
+
+ // The message text populated in the messaging app.
+ google.protobuf.StringValue extension_text = 5;
+}
+
+// Represents a Price extension.
+message PriceFeedItem {
+ // Price extension type of this extension.
+ google.ads.googleads.v1.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1;
+
+ // Price qualifier for all offers of this price extension.
+ google.ads.googleads.v1.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2;
+
+ // Tracking URL template for all offers of this price extension.
+ google.protobuf.StringValue tracking_url_template = 3;
+
+ // The code of the language used for this price extension.
+ google.protobuf.StringValue language_code = 4;
+
+ // The price offerings in this price extension.
+ repeated PriceOffer price_offerings = 5;
+
+ // URL template for appending params to landing page URLs served with parallel
+ // tracking.
+ google.protobuf.StringValue final_url_suffix = 6;
+}
+
+// Represents one price offer in a price extension.
+message PriceOffer {
+ // Header text of this offer.
+ google.protobuf.StringValue header = 1;
+
+ // Description text of this offer.
+ google.protobuf.StringValue description = 2;
+
+ // Price value of this offer.
+ Money price = 3;
+
+ // Price unit for this offer.
+ google.ads.googleads.v1.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4;
+
+ // A list of possible final URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_urls = 5;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 6;
+}
+
+// Represents a Promotion extension.
+message PromotionFeedItem {
+ // A freeform description of what the promotion is targeting.
+ // This field is required.
+ google.protobuf.StringValue promotion_target = 1;
+
+ // Enum that modifies the qualification of the discount.
+ google.ads.googleads.v1.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2;
+
+ // Start date of when the promotion is eligible to be redeemed.
+ // This field is currently mutate only.
+ google.protobuf.StringValue promotion_start_date = 7;
+
+ // End date of when the promotion is eligible to be redeemed.
+ // This field is currently mutate only.
+ google.protobuf.StringValue promotion_end_date = 8;
+
+ // The occasion the promotion was intended for.
+ // If an occasion is set, the redemption window will need to fall within
+ // the date range associated with the occasion.
+ google.ads.googleads.v1.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9;
+
+ // A list of possible final URLs after all cross domain redirects.
+ // This field is required.
+ repeated google.protobuf.StringValue final_urls = 10;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 11;
+
+ // URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 12;
+
+ // A list of mappings to be used for substituting URL custom parameter tags in
+ // the tracking_url_template, final_urls, and/or final_mobile_urls.
+ repeated CustomParameter url_custom_parameters = 13;
+
+ // URL template for appending params to landing page URLs served with parallel
+ // tracking.
+ google.protobuf.StringValue final_url_suffix = 14;
+
+ // The language of the promotion.
+ // Represented as BCP 47 language tag.
+ google.protobuf.StringValue language_code = 15;
+
+ // Discount type, can be percentage off or amount off.
+ oneof discount_type {
+ // Percentage off discount in the promotion in micros.
+ // One million is equivalent to one percent.
+ // Either this or money_off_amount is required.
+ google.protobuf.Int64Value percent_off = 3;
+
+ // Money amount off for discount in the promotion.
+ // Either this or percent_off is required.
+ Money money_amount_off = 4;
+ }
+
+ // Promotion trigger. Can be by promotion code or promo by eligible order
+ // amount.
+ oneof promotion_trigger {
+ // A code the user should use in order to be eligible for the promotion.
+ google.protobuf.StringValue promotion_code = 5;
+
+ // The amount the total order needs to be for the user to be eligible for
+ // the promotion.
+ Money orders_over_amount = 6;
+ }
+}
+
+// Represents a structured snippet extension.
+message StructuredSnippetFeedItem {
+ // The header of the snippet.
+ // This string must not be empty.
+ google.protobuf.StringValue header = 1;
+
+ // The values in the snippet.
+ // The maximum size of this collection is 10.
+ repeated google.protobuf.StringValue values = 2;
+}
+
+// Represents a sitelink extension.
+message SitelinkFeedItem {
+ // URL display text for the sitelink.
+ // The length of this string should be between 1 and 25, inclusive.
+ google.protobuf.StringValue link_text = 1;
+
+ // First line of the description for the sitelink.
+ // If this value is set, line2 must also be set.
+ // The length of this string should be between 0 and 35, inclusive.
+ google.protobuf.StringValue line1 = 2;
+
+ // Second line of the description for the sitelink.
+ // If this value is set, line1 must also be set.
+ // The length of this string should be between 0 and 35, inclusive.
+ google.protobuf.StringValue line2 = 3;
+
+ // A list of possible final URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_urls = 4;
+
+ // A list of possible final mobile URLs after all cross domain redirects.
+ repeated google.protobuf.StringValue final_mobile_urls = 5;
+
+ // URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 6;
+
+ // A list of mappings to be used for substituting URL custom parameter tags in
+ // the tracking_url_template, final_urls, and/or final_mobile_urls.
+ repeated CustomParameter url_custom_parameters = 7;
+
+ // Final URL suffix to be appended to landing page URLs served with
+ // parallel tracking.
+ google.protobuf.StringValue final_url_suffix = 8;
+}
diff --git a/google/ads/googleads/v1/common/feed_common.proto b/google/ads/googleads/v1/common/feed_common.proto
new file mode 100644
index 000000000..e889a6061
--- /dev/null
+++ b/google/ads/googleads/v1/common/feed_common.proto
@@ -0,0 +1,41 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "FeedCommonProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing common feed proto messages.
+
+// Represents a price in a particular currency.
+message Money {
+ // Three-character ISO 4217 currency code.
+ google.protobuf.StringValue currency_code = 1;
+
+ // Amount in micros. One million is equivalent to one unit.
+ google.protobuf.Int64Value amount_micros = 2;
+}
diff --git a/google/ads/googleads/v1/common/frequency_cap.proto b/google/ads/googleads/v1/common/frequency_cap.proto
new file mode 100644
index 000000000..66b762c54
--- /dev/null
+++ b/google/ads/googleads/v1/common/frequency_cap.proto
@@ -0,0 +1,63 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/frequency_cap_event_type.proto";
+import "google/ads/googleads/v1/enums/frequency_cap_level.proto";
+import "google/ads/googleads/v1/enums/frequency_cap_time_unit.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "FrequencyCapProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing frequency caps.
+
+// A rule specifying the maximum number of times an ad (or some set of ads) can
+// be shown to a user over a particular time period.
+message FrequencyCapEntry {
+ // The key of a particular frequency cap. There can be no more
+ // than one frequency cap with the same key.
+ FrequencyCapKey key = 1;
+
+ // Maximum number of events allowed during the time range by this cap.
+ google.protobuf.Int32Value cap = 2;
+}
+
+// A group of fields used as keys for a frequency cap.
+// There can be no more than one frequency cap with the same key.
+message FrequencyCapKey {
+ // The level on which the cap is to be applied (e.g. ad group ad, ad group).
+ // The cap is applied to all the entities of this level.
+ google.ads.googleads.v1.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1;
+
+ // The type of event that the cap applies to (e.g. impression).
+ google.ads.googleads.v1.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3;
+
+ // Unit of time the cap is defined at (e.g. day, week).
+ google.ads.googleads.v1.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2;
+
+ // Number of time units the cap lasts.
+ google.protobuf.Int32Value time_length = 4;
+}
diff --git a/google/ads/googleads/v1/common/keyword_plan_common.proto b/google/ads/googleads/v1/common/keyword_plan_common.proto
new file mode 100644
index 000000000..6c0f6bff4
--- /dev/null
+++ b/google/ads/googleads/v1/common/keyword_plan_common.proto
@@ -0,0 +1,42 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/keyword_plan_competition_level.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "KeywordPlanCommonProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing Keyword Planner messages.
+
+// Historical metrics.
+message KeywordPlanHistoricalMetrics {
+ // Average monthly searches for the past 12 months.
+ google.protobuf.Int64Value avg_monthly_searches = 1;
+
+ // The competition level for the query.
+ google.ads.googleads.v1.enums.KeywordPlanCompetitionLevelEnum.KeywordPlanCompetitionLevel competition = 2;
+}
diff --git a/google/ads/googleads/v1/common/matching_function.proto b/google/ads/googleads/v1/common/matching_function.proto
new file mode 100644
index 000000000..f72898752
--- /dev/null
+++ b/google/ads/googleads/v1/common/matching_function.proto
@@ -0,0 +1,128 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/matching_function_context_type.proto";
+import "google/ads/googleads/v1/enums/matching_function_operator.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "MatchingFunctionProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing a matching function.
+
+// Matching function associated with a
+// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used
+// to filter the set of feed items selected.
+message MatchingFunction {
+ // String representation of the Function.
+ //
+ // Examples:
+ // 1) IDENTITY(true) or IDENTITY(false). All or none feed items serve.
+ // 2) EQUALS(CONTEXT.DEVICE,"Mobile")
+ // 3) IN(FEED_ITEM_ID,{1000001,1000002,1000003})
+ // 4) CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"})
+ // 5) AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile"))
+ // See
+ //
+ // https:
+ // //developers.google.com/adwords/api/docs/guides/feed-matching-functions
+ //
+ // Note that because multiple strings may represent the same underlying
+ // function (whitespace and single versus double quotation marks, for
+ // example), the value returned may not be identical to the string sent in a
+ // mutate request.
+ google.protobuf.StringValue function_string = 1;
+
+ // Operator for a function.
+ google.ads.googleads.v1.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator operator = 4;
+
+ // The operands on the left hand side of the equation. This is also the
+ // operand to be used for single operand expressions such as NOT.
+ repeated Operand left_operands = 2;
+
+ // The operands on the right hand side of the equation.
+ repeated Operand right_operands = 3;
+}
+
+// An operand in a matching function.
+message Operand {
+ // A constant operand in a matching function.
+ message ConstantOperand {
+ // Constant operand values. Required.
+ oneof constant_operand_value {
+ // String value of the operand if it is a string type.
+ google.protobuf.StringValue string_value = 1;
+
+ // Int64 value of the operand if it is a int64 type.
+ google.protobuf.Int64Value long_value = 2;
+
+ // Boolean value of the operand if it is a boolean type.
+ google.protobuf.BoolValue boolean_value = 3;
+
+ // Double value of the operand if it is a double type.
+ google.protobuf.DoubleValue double_value = 4;
+ }
+ }
+
+ // A feed attribute operand in a matching function.
+ // Used to represent a feed attribute in feed.
+ message FeedAttributeOperand {
+ // The associated feed. Required.
+ google.protobuf.Int64Value feed_id = 1;
+
+ // Id of the referenced feed attribute. Required.
+ google.protobuf.Int64Value feed_attribute_id = 2;
+ }
+
+ // A function operand in a matching function.
+ // Used to represent nested functions.
+ message FunctionOperand {
+ // The matching function held in this operand.
+ MatchingFunction matching_function = 1;
+ }
+
+ // An operand in a function referring to a value in the request context.
+ message RequestContextOperand {
+ // Type of value to be referred in the request context.
+ google.ads.googleads.v1.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType context_type = 1;
+ }
+
+ // Different operands that can be used in a matching function. Required.
+ oneof function_argument_operand {
+ // A constant operand in a matching function.
+ ConstantOperand constant_operand = 1;
+
+ // This operand specifies a feed attribute in feed.
+ FeedAttributeOperand feed_attribute_operand = 2;
+
+ // A function operand in a matching function.
+ // Used to represent nested functions.
+ FunctionOperand function_operand = 3;
+
+ // An operand in a function referring to a value in the request context.
+ RequestContextOperand request_context_operand = 4;
+ }
+}
diff --git a/google/ads/googleads/v1/common/metrics.proto b/google/ads/googleads/v1/common/metrics.proto
new file mode 100644
index 000000000..f2ad47ed2
--- /dev/null
+++ b/google/ads/googleads/v1/common/metrics.proto
@@ -0,0 +1,435 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/interaction_event_type.proto";
+import "google/ads/googleads/v1/enums/quality_score_bucket.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "MetricsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing metrics.
+
+// Metrics data.
+message Metrics {
+ // The percent of your ad impressions that are shown as the very first ad
+ // above the organic search results.
+ google.protobuf.DoubleValue absolute_top_impression_percentage = 95;
+
+ // Average cost of viewable impressions (`active_view_impressions`).
+ google.protobuf.DoubleValue active_view_cpm = 1;
+
+ // Active view measurable clicks divided by active view viewable impressions.
+ // This metric is reported only for display network.
+ google.protobuf.DoubleValue active_view_ctr = 79;
+
+ // A measurement of how often your ad has become viewable on a Display
+ // Network site.
+ google.protobuf.Int64Value active_view_impressions = 2;
+
+ // The ratio of impressions that could be measured by Active View over the
+ // number of served impressions.
+ google.protobuf.DoubleValue active_view_measurability = 96;
+
+ // The cost of the impressions you received that were measurable by Active
+ // View.
+ google.protobuf.Int64Value active_view_measurable_cost_micros = 3;
+
+ // The number of times your ads are appearing on placements in positions
+ // where they can be seen.
+ google.protobuf.Int64Value active_view_measurable_impressions = 4;
+
+ // The percentage of time when your ad appeared on an Active View enabled site
+ // (measurable impressions) and was viewable (viewable impressions).
+ google.protobuf.DoubleValue active_view_viewability = 97;
+
+ // All conversions from interactions (as oppose to view through conversions)
+ // divided by the number of ad interactions.
+ google.protobuf.DoubleValue all_conversions_from_interactions_rate = 65;
+
+ // The total value of all conversions.
+ google.protobuf.DoubleValue all_conversions_value = 66;
+
+ // The total number of conversions. This only includes conversion actions
+ // which include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue all_conversions = 7;
+
+ // The value of all conversions divided by the total cost of ad interactions
+ // (such as clicks for text ads or views for video ads).
+ google.protobuf.DoubleValue all_conversions_value_per_cost = 62;
+
+ // The value of all conversions from interactions divided by the total number
+ // of interactions.
+ google.protobuf.DoubleValue all_conversions_from_interactions_value_per_interaction = 67;
+
+ // The average amount you pay per interaction. This amount is the total cost
+ // of your ads divided by the total number of interactions.
+ google.protobuf.DoubleValue average_cost = 8;
+
+ // The total cost of all clicks divided by the total number of clicks
+ // received.
+ google.protobuf.DoubleValue average_cpc = 9;
+
+ // 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.
+ google.protobuf.DoubleValue average_cpe = 98;
+
+ // Average cost-per-thousand impressions (CPM).
+ google.protobuf.DoubleValue average_cpm = 10;
+
+ // The average amount you pay each time someone views your ad.
+ // The average CPV is defined by the total cost of all ad views divided by
+ // the number of views.
+ google.protobuf.DoubleValue average_cpv = 11;
+
+ // Average number of times a unique cookie was exposed to your ad
+ // over a given time period. Imported from Google Analytics.
+ google.protobuf.DoubleValue average_frequency = 12;
+
+ // Average number of pages viewed per session.
+ google.protobuf.DoubleValue average_page_views = 99;
+
+ // Your ad's position relative to those of other advertisers.
+ google.protobuf.DoubleValue average_position = 13;
+
+ // Total duration of all sessions (in seconds) / number of sessions. Imported
+ // from Google Analytics.
+ google.protobuf.DoubleValue average_time_on_site = 84;
+
+ // An indication of how other advertisers are bidding on similar products.
+ google.protobuf.DoubleValue benchmark_average_max_cpc = 14;
+
+ // 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.
+ google.protobuf.DoubleValue benchmark_ctr = 77;
+
+ // Percentage of clicks where the user only visited a single page on your
+ // site. Imported from Google Analytics.
+ google.protobuf.DoubleValue bounce_rate = 15;
+
+ // The number of clicks.
+ google.protobuf.Int64Value clicks = 19;
+
+ // 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.
+ google.protobuf.DoubleValue content_budget_lost_impression_share = 20;
+
+ // 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.
+ google.protobuf.DoubleValue content_impression_share = 21;
+
+ // 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 (e.g. 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.
+ google.protobuf.StringValue conversion_last_received_request_date_time = 73;
+
+ // The date of the most recent conversion for this conversion action. The date
+ // is in the customer's time zone.
+ google.protobuf.StringValue conversion_last_conversion_date = 74;
+
+ // 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.
+ google.protobuf.DoubleValue content_rank_lost_impression_share = 22;
+
+ // 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.
+ google.protobuf.DoubleValue conversions_from_interactions_rate = 69;
+
+ // The total value of conversions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue conversions_value = 70;
+
+ // 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.
+ google.protobuf.DoubleValue conversions_value_per_cost = 71;
+
+ // 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.
+ google.protobuf.DoubleValue conversions_from_interactions_value_per_interaction = 72;
+
+ // The number of conversions. This only includes conversion actions which
+ // include_in_conversions_metric attribute is set to true.
+ google.protobuf.DoubleValue conversions = 25;
+
+ // The sum of your cost-per-click (CPC) and cost-per-thousand impressions
+ // (CPM) costs during this period.
+ google.protobuf.Int64Value cost_micros = 26;
+
+ // The cost of ad interactions divided by all conversions.
+ google.protobuf.DoubleValue cost_per_all_conversions = 68;
+
+ // The cost of ad interactions divided by conversions. This only includes
+ // conversion actions which include_in_conversions_metric attribute is set to
+ // true.
+ google.protobuf.DoubleValue cost_per_conversion = 28;
+
+ // 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.
+ google.protobuf.DoubleValue cost_per_current_model_attributed_conversion = 106;
+
+ // 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.
+ google.protobuf.DoubleValue cross_device_conversions = 29;
+
+ // The number of clicks your ad receives (Clicks) divided by the number
+ // of times your ad is shown (Impressions).
+ google.protobuf.DoubleValue ctr = 30;
+
+ // 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.
+ google.protobuf.DoubleValue current_model_attributed_conversions = 101;
+
+ // 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.
+ google.protobuf.DoubleValue current_model_attributed_conversions_from_interactions_rate = 102;
+
+ // 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.
+ google.protobuf.DoubleValue current_model_attributed_conversions_from_interactions_value_per_interaction = 103;
+
+ // The total value of current model attributed conversions. This only includes
+ // conversion actions which include_in_conversions_metric attribute is set to
+ // true.
+ google.protobuf.DoubleValue current_model_attributed_conversions_value = 104;
+
+ // 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.
+ google.protobuf.DoubleValue current_model_attributed_conversions_value_per_cost = 105;
+
+ // 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.
+ google.protobuf.DoubleValue engagement_rate = 31;
+
+ // 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.
+ google.protobuf.Int64Value engagements = 32;
+
+ // Average lead value of hotel.
+ google.protobuf.DoubleValue hotel_average_lead_value_micros = 75;
+
+ // The creative historical quality score.
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80;
+
+ // The quality of historical landing page experience.
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81;
+
+ // The historical quality score.
+ google.protobuf.Int64Value historical_quality_score = 82;
+
+ // The historical search predicted click through rate (CTR).
+ google.ads.googleads.v1.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83;
+
+ // The number of times the ad was forwarded to someone else as a message.
+ google.protobuf.Int64Value gmail_forwards = 85;
+
+ // The number of times someone has saved your Gmail ad to their inbox as a
+ // message.
+ google.protobuf.Int64Value gmail_saves = 86;
+
+ // The number of clicks to the landing page on the expanded state of Gmail
+ // ads.
+ google.protobuf.Int64Value gmail_secondary_clicks = 87;
+
+ // Number of unique cookies that were exposed to your ad over a given time
+ // period.
+ google.protobuf.Int64Value impression_reach = 36;
+
+ // Count of how often your ad has appeared on a search results page or
+ // website on the Google Network.
+ google.protobuf.Int64Value impressions = 37;
+
+ // 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.
+ google.protobuf.DoubleValue interaction_rate = 38;
+
+ // 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.
+ google.protobuf.Int64Value interactions = 39;
+
+ // The types of payable and free interactions.
+ repeated google.ads.googleads.v1.enums.InteractionEventTypeEnum.InteractionEventType interaction_event_types = 100;
+
+ // The percentage of clicks filtered out of your total number of clicks
+ // (filtered + non-filtered clicks) during the reporting period.
+ google.protobuf.DoubleValue invalid_click_rate = 40;
+
+ // Number of clicks Google considers illegitimate and doesn't charge you for.
+ google.protobuf.Int64Value invalid_clicks = 41;
+
+ // Percentage of first-time sessions (from people who had never visited your
+ // site before). Imported from Google Analytics.
+ google.protobuf.DoubleValue percent_new_visitors = 42;
+
+ // Number of offline phone calls.
+ google.protobuf.Int64Value phone_calls = 43;
+
+ // Number of offline phone impressions.
+ google.protobuf.Int64Value phone_impressions = 44;
+
+ // Number of phone calls received (phone_calls) divided by the number of
+ // times your phone number is shown (phone_impressions).
+ google.protobuf.DoubleValue phone_through_rate = 45;
+
+ // 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.
+ google.protobuf.DoubleValue relative_ctr = 46;
+
+ // The percentage of the customer's Shopping or Search ad impressions that are
+ // shown in the most prominent Shopping position. See
+ // <a href="https://support.google.com/adwords/answer/7501826">this Merchant
+ // Center article</a> for details. Any value below 0.1 is reported as 0.0999.
+ google.protobuf.DoubleValue search_absolute_top_impression_share = 78;
+
+ // The number estimating how often your ad wasn't the very first ad above the
+ // organic search results due to a low budget. Note: Search
+ // budget lost absolute top impression share is reported in the range of 0 to
+ // 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_budget_lost_absolute_top_impression_share = 88;
+
+ // 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.
+ google.protobuf.DoubleValue search_budget_lost_impression_share = 47;
+
+ // The number estimating how often your ad didn't show anywhere above the
+ // organic search results due to a low budget. Note: Search
+ // budget lost top impression share is reported in the range of 0 to 0.9. Any
+ // value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_budget_lost_top_impression_share = 89;
+
+ // 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.
+ google.protobuf.DoubleValue search_click_share = 48;
+
+ // 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.
+ google.protobuf.DoubleValue search_exact_match_impression_share = 49;
+
+ // 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.
+ google.protobuf.DoubleValue search_impression_share = 50;
+
+ // The number estimating how often your ad wasn't the very first ad above the
+ // organic search results due to poor Ad Rank.
+ // Note: Search rank lost absolute top impression share is reported in the
+ // range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_rank_lost_absolute_top_impression_share = 90;
+
+ // 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.
+ google.protobuf.DoubleValue search_rank_lost_impression_share = 51;
+
+ // The number estimating how often your ad didn't show anywhere above the
+ // organic search results due to poor Ad Rank.
+ // Note: Search rank lost top impression share is reported in the range of 0
+ // to 0.9. Any value above 0.9 is reported as 0.9001.
+ google.protobuf.DoubleValue search_rank_lost_top_impression_share = 91;
+
+ // The impressions you've received in the top location (anywhere above the
+ // organic search results) compared to the estimated number of impressions you
+ // were eligible to receive in the top location.
+ // Note: Search top impression share is reported in the range of 0.1 to 1. Any
+ // value below 0.1 is reported as 0.0999.
+ google.protobuf.DoubleValue search_top_impression_share = 92;
+
+ // The percent of your ad impressions that are shown anywhere above the
+ // organic search results.
+ google.protobuf.DoubleValue top_impression_percentage = 93;
+
+ // The value of all conversions divided by the number of all conversions.
+ google.protobuf.DoubleValue value_per_all_conversions = 52;
+
+ // 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.
+ google.protobuf.DoubleValue value_per_conversion = 53;
+
+ // 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.
+ google.protobuf.DoubleValue value_per_current_model_attributed_conversion = 94;
+
+ // Percentage of impressions where the viewer watched all of your video.
+ google.protobuf.DoubleValue video_quartile_100_rate = 54;
+
+ // Percentage of impressions where the viewer watched 25% of your video.
+ google.protobuf.DoubleValue video_quartile_25_rate = 55;
+
+ // Percentage of impressions where the viewer watched 50% of your video.
+ google.protobuf.DoubleValue video_quartile_50_rate = 56;
+
+ // Percentage of impressions where the viewer watched 75% of your video.
+ google.protobuf.DoubleValue video_quartile_75_rate = 57;
+
+ // The number of views your TrueView video ad receives divided by its number
+ // of impressions, including thumbnail impressions for TrueView in-display
+ // ads.
+ google.protobuf.DoubleValue video_view_rate = 58;
+
+ // The number of times your video ads were viewed.
+ google.protobuf.Int64Value video_views = 59;
+
+ // 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 (e.g.,
+ // clicking on) another ad.
+ google.protobuf.Int64Value view_through_conversions = 60;
+}
diff --git a/google/ads/googleads/v1/common/policy.proto b/google/ads/googleads/v1/common/policy.proto
new file mode 100644
index 000000000..25efc9c42
--- /dev/null
+++ b/google/ads/googleads/v1/common/policy.proto
@@ -0,0 +1,217 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/policy_topic_entry_type.proto";
+import "google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing policy information.
+
+// Key of the violation. The key is used for referring to a violation
+// when filing an exemption request.
+message PolicyViolationKey {
+ // Unique ID of the violated policy.
+ google.protobuf.StringValue policy_name = 1;
+
+ // The text that violates the policy if specified.
+ // Otherwise, refers to the policy in general
+ // (e.g., when requesting to be exempt from the whole policy).
+ // If not specified for criterion exemptions, the whole policy is implied.
+ // Must be specified for ad exemptions.
+ google.protobuf.StringValue violating_text = 2;
+}
+
+// Parameter for controlling how policy exemption is done. Ignorable policy
+// topics are only usable with expanded text ads and responsive search ads. All
+// other ad types must use policy violation keys.
+message PolicyValidationParameter {
+ // The list of policy topics that should not cause a PolicyFindingError to
+ // be reported. This field is currently only compatible with Enhanced Text Ad.
+ // It corresponds to the PolicyTopicEntry.topic field.
+ //
+ // Resources violating these policies will be saved, but will not be eligible
+ // to serve. They may begin serving at a later time due to a change in
+ // policies, re-review of the resource, or a change in advertiser
+ // certificates.
+ repeated google.protobuf.StringValue ignorable_policy_topics = 1;
+
+ // The list of policy violation keys that should not cause a
+ // PolicyViolationError to be reported. Not all policy violations are
+ // exemptable, please refer to the is_exemptible field in the returned
+ // PolicyViolationError.
+ //
+ // Resources violating these polices will be saved, but will not be eligible
+ // to serve. They may begin serving at a later time due to a change in
+ // policies, re-review of the resource, or a change in advertiser
+ // certificates.
+ repeated PolicyViolationKey exempt_policy_violation_keys = 2;
+}
+
+// Policy finding attached to a resource (e.g. alcohol policy associated with
+// a site that sells alcohol).
+//
+// Each PolicyTopicEntry has a topic that indicates the specific ads policy
+// the entry is about and a type to indicate the effect that the entry will have
+// on serving. It may optionally have one or more evidences that indicate the
+// reason for the finding. It may also optionally have one or more constraints
+// that provide details about how serving may be restricted.
+//
+// Next tag: 5
+message PolicyTopicEntry {
+ // Policy topic this finding refers to. For example, "ALCOHOL",
+ // "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible
+ // policy topics is not fixed for a particular API version and may change
+ // at any time.
+ google.protobuf.StringValue topic = 1;
+
+ // Describes the negative or positive effect this policy will have on serving.
+ google.ads.googleads.v1.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2;
+
+ // Additional information that explains policy finding
+ // (e.g. the brand name for a trademark finding).
+ repeated PolicyTopicEvidence evidences = 3;
+
+ // Indicates how serving of this resource may be affected (e.g. not serving
+ // in a country).
+ repeated PolicyTopicConstraint constraints = 4;
+}
+
+// Additional information that explains a policy finding.
+//
+// Next Id: 8
+message PolicyTopicEvidence {
+ // A list of fragments of text that violated a policy.
+ //
+ // Next Id: 2
+ message TextList {
+ // The fragments of text from the resource that caused the policy finding.
+ repeated google.protobuf.StringValue texts = 1;
+ }
+
+ // A list of websites that caused a policy finding. Used for
+ // ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more
+ // than five websites, only the top five (those that appear in resources the
+ // most) will be listed here.
+ //
+ // Next Id: 2
+ message WebsiteList {
+ // Websites that caused the policy finding.
+ repeated google.protobuf.StringValue websites = 1;
+ }
+
+ // A list of strings found in a destination page that caused a policy
+ // finding.
+ //
+ // Next Id: 2
+ message DestinationTextList {
+ // List of text found in the resource's destination page.
+ repeated google.protobuf.StringValue destination_texts = 1;
+ }
+
+ // Evidence of mismatches between the URLs of a resource.
+ //
+ // Next Id: 2
+ message DestinationMismatch {
+ // The set of URLs that did not match each other.
+ repeated google.ads.googleads.v1.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1;
+ }
+
+ // Specific evidence information depending on the evidence type.
+ oneof value {
+ // HTTP code returned when the final URL was crawled.
+ google.protobuf.Int32Value http_code = 2;
+
+ // List of websites linked with this resource.
+ WebsiteList website_list = 3;
+
+ // List of evidence found in the text of a resource.
+ TextList text_list = 4;
+
+ // The language the resource was detected to be written in.
+ // This is an IETF language tag such as "en-US".
+ google.protobuf.StringValue language_code = 5;
+
+ // The text in the destination of the resource that is causing a policy
+ // finding.
+ DestinationTextList destination_text_list = 6;
+
+ // Mismatch between the destinations of a resource's URLs.
+ DestinationMismatch destination_mismatch = 7;
+ }
+}
+
+// Describes the effect on serving that a policy topic entry will have.
+//
+// Next Id: 5
+message PolicyTopicConstraint {
+ // A list of countries where a resource's serving is constrained.
+ //
+ // Next Id: 3
+ message CountryConstraintList {
+ // Total number of countries targeted by the resource.
+ google.protobuf.Int32Value total_targeted_countries = 1;
+
+ // Countries in which serving is restricted.
+ repeated CountryConstraint countries = 2;
+ }
+
+ // Indicates that a policy topic was constrained due to disapproval of the
+ // website for reseller purposes.
+ //
+ // Next Id: 1
+ message ResellerConstraint {
+
+ }
+
+ // Indicates that a resource's ability to serve in a particular country is
+ // constrained.
+ //
+ // Next Id: 2
+ message CountryConstraint {
+ // Geo target constant resource name of the country in which serving is
+ // constrained.
+ google.protobuf.StringValue country_criterion = 1;
+ }
+
+ // Specific information about the constraint.
+ oneof value {
+ // Countries where the resource cannot serve.
+ CountryConstraintList country_constraint_list = 1;
+
+ // Reseller constraint.
+ ResellerConstraint reseller_constraint = 2;
+
+ // Countries where a certificate is required for serving.
+ CountryConstraintList certificate_missing_in_country_list = 3;
+
+ // Countries where the resource's domain is not covered by the
+ // certificates associated with it.
+ CountryConstraintList certificate_domain_mismatch_in_country_list = 4;
+ }
+}
diff --git a/google/ads/googleads/v1/common/real_time_bidding_setting.proto b/google/ads/googleads/v1/common/real_time_bidding_setting.proto
new file mode 100644
index 000000000..9174d3ca0
--- /dev/null
+++ b/google/ads/googleads/v1/common/real_time_bidding_setting.proto
@@ -0,0 +1,39 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "RealTimeBiddingSettingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing RealTimeBiddingSetting
+
+// Settings for Real-Time Bidding, a feature only available for campaigns
+// targeting the Ad Exchange network.
+message RealTimeBiddingSetting {
+ // Whether the campaign is opted in to real-time bidding.
+ google.protobuf.BoolValue opt_in = 1;
+}
diff --git a/google/ads/googleads/v1/common/segments.proto b/google/ads/googleads/v1/common/segments.proto
new file mode 100644
index 000000000..efce89e8a
--- /dev/null
+++ b/google/ads/googleads/v1/common/segments.proto
@@ -0,0 +1,274 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/common/criteria.proto";
+import "google/ads/googleads/v1/enums/ad_network_type.proto";
+import "google/ads/googleads/v1/enums/click_type.proto";
+import "google/ads/googleads/v1/enums/conversion_action_category.proto";
+import "google/ads/googleads/v1/enums/conversion_attribution_event_type.proto";
+import "google/ads/googleads/v1/enums/conversion_lag_bucket.proto";
+import "google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto";
+import "google/ads/googleads/v1/enums/day_of_week.proto";
+import "google/ads/googleads/v1/enums/device.proto";
+import "google/ads/googleads/v1/enums/external_conversion_source.proto";
+import "google/ads/googleads/v1/enums/hotel_date_selection_type.proto";
+import "google/ads/googleads/v1/enums/month_of_year.proto";
+import "google/ads/googleads/v1/enums/placeholder_type.proto";
+import "google/ads/googleads/v1/enums/product_channel.proto";
+import "google/ads/googleads/v1/enums/product_channel_exclusivity.proto";
+import "google/ads/googleads/v1/enums/product_condition.proto";
+import "google/ads/googleads/v1/enums/search_term_match_type.proto";
+import "google/ads/googleads/v1/enums/slot.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "SegmentsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing segment only fields.
+
+// Segment only fields.
+message Segments {
+ // Ad network type.
+ google.ads.googleads.v1.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3;
+
+ // Click type.
+ google.ads.googleads.v1.enums.ClickTypeEnum.ClickType click_type = 26;
+
+ // Resource name of the conversion action.
+ google.protobuf.StringValue conversion_action = 52;
+
+ // Conversion action category.
+ google.ads.googleads.v1.enums.ConversionActionCategoryEnum.ConversionActionCategory conversion_action_category = 53;
+
+ // Conversion action name.
+ google.protobuf.StringValue conversion_action_name = 54;
+
+ // This segments your conversion columns by the original conversion and
+ // conversion value vs. the delta if conversions were adjusted. False row has
+ // the data as originally stated; While true row has the delta between data
+ // now and the data as originally stated. Summing the two together results
+ // post-adjustment data.
+ google.protobuf.BoolValue conversion_adjustment = 27;
+
+ // Conversion attribution event type.
+ google.ads.googleads.v1.enums.ConversionAttributionEventTypeEnum.ConversionAttributionEventType conversion_attribution_event_type = 2;
+
+ // An enum value representing the number of days between the impression and
+ // the conversion.
+ google.ads.googleads.v1.enums.ConversionLagBucketEnum.ConversionLagBucket conversion_lag_bucket = 50;
+
+ // An enum value representing the number of days between the impression and
+ // the conversion or between the impression and adjustments to the conversion.
+ google.ads.googleads.v1.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51;
+
+ // Date to which metrics apply.
+ // yyyy-MM-dd format, e.g., 2018-04-17.
+ google.protobuf.StringValue date = 4;
+
+ // Day of the week, e.g., MONDAY.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5;
+
+ // Device to which metrics apply.
+ google.ads.googleads.v1.enums.DeviceEnum.Device device = 1;
+
+ // External conversion source.
+ google.ads.googleads.v1.enums.ExternalConversionSourceEnum.ExternalConversionSource external_conversion_source = 55;
+
+ // Resource name of the geo target constant that represents an airport.
+ google.protobuf.StringValue geo_target_airport = 65;
+
+ // Resource name of the geo target constant that represents a city.
+ google.protobuf.StringValue geo_target_city = 62;
+
+ // Resource name of the geo target constant that represents a metro.
+ google.protobuf.StringValue geo_target_metro = 63;
+
+ // Resource name of the geo target constant that represents a region.
+ google.protobuf.StringValue geo_target_region = 64;
+
+ // Hotel booking window in days.
+ google.protobuf.Int64Value hotel_booking_window_days = 6;
+
+ // Hotel center ID.
+ google.protobuf.Int64Value hotel_center_id = 7;
+
+ // Hotel check-in date. Formatted as yyyy-MM-dd.
+ google.protobuf.StringValue hotel_check_in_date = 8;
+
+ // Hotel check-in day of week.
+ google.ads.googleads.v1.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9;
+
+ // Hotel city.
+ google.protobuf.StringValue hotel_city = 10;
+
+ // Hotel class.
+ google.protobuf.Int32Value hotel_class = 11;
+
+ // Hotel country.
+ google.protobuf.StringValue hotel_country = 12;
+
+ // Hotel date selection type.
+ google.ads.googleads.v1.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType hotel_date_selection_type = 13;
+
+ // Hotel length of stay.
+ google.protobuf.Int32Value hotel_length_of_stay = 14;
+
+ // Hotel state.
+ google.protobuf.StringValue hotel_state = 15;
+
+ // Hour of day as a number between 0 and 23, inclusive.
+ google.protobuf.Int32Value hour = 16;
+
+ // Only used with feed item metrics.
+ // Indicates whether the interaction metrics occurred on the feed item itself
+ // or a different extension or ad unit.
+ google.protobuf.BoolValue interaction_on_this_extension = 49;
+
+ // Keyword criterion.
+ Keyword keyword = 61;
+
+ // Month as represented by the date of the first day of a month. Formatted as
+ // yyyy-MM-dd.
+ google.protobuf.StringValue month = 17;
+
+ // Month of the year, e.g., January.
+ google.ads.googleads.v1.enums.MonthOfYearEnum.MonthOfYear month_of_year = 18;
+
+ // Partner hotel ID.
+ google.protobuf.StringValue partner_hotel_id = 19;
+
+ // Placeholder type. This is only used with feed item metrics.
+ google.ads.googleads.v1.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 20;
+
+ // Aggregator ID of the product.
+ google.protobuf.UInt64Value product_aggregator_id = 28;
+
+ // Bidding category (level 1) of the product.
+ google.protobuf.StringValue product_bidding_category_level1 = 56;
+
+ // Bidding category (level 2) of the product.
+ google.protobuf.StringValue product_bidding_category_level2 = 57;
+
+ // Bidding category (level 3) of the product.
+ google.protobuf.StringValue product_bidding_category_level3 = 58;
+
+ // Bidding category (level 4) of the product.
+ google.protobuf.StringValue product_bidding_category_level4 = 59;
+
+ // Bidding category (level 5) of the product.
+ google.protobuf.StringValue product_bidding_category_level5 = 60;
+
+ // Brand of the product.
+ google.protobuf.StringValue product_brand = 29;
+
+ // Channel of the product.
+ google.ads.googleads.v1.enums.ProductChannelEnum.ProductChannel product_channel = 30;
+
+ // Channel exclusivity of the product.
+ google.ads.googleads.v1.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity product_channel_exclusivity = 31;
+
+ // Condition of the product.
+ google.ads.googleads.v1.enums.ProductConditionEnum.ProductCondition product_condition = 32;
+
+ // Resource name of the geo target constant for the country of sale of the
+ // product.
+ google.protobuf.StringValue product_country = 33;
+
+ // Custom attribute 0 of the product.
+ google.protobuf.StringValue product_custom_attribute0 = 34;
+
+ // Custom attribute 1 of the product.
+ google.protobuf.StringValue product_custom_attribute1 = 35;
+
+ // Custom attribute 2 of the product.
+ google.protobuf.StringValue product_custom_attribute2 = 36;
+
+ // Custom attribute 3 of the product.
+ google.protobuf.StringValue product_custom_attribute3 = 37;
+
+ // Custom attribute 4 of the product.
+ google.protobuf.StringValue product_custom_attribute4 = 38;
+
+ // Item ID of the product.
+ google.protobuf.StringValue product_item_id = 39;
+
+ // Resource name of the language constant for the language of the product.
+ google.protobuf.StringValue product_language = 40;
+
+ // Merchant ID of the product.
+ google.protobuf.UInt64Value product_merchant_id = 41;
+
+ // Store ID of the product.
+ google.protobuf.StringValue product_store_id = 42;
+
+ // Title of the product.
+ google.protobuf.StringValue product_title = 43;
+
+ // Type (level 1) of the product.
+ google.protobuf.StringValue product_type_l1 = 44;
+
+ // Type (level 2) of the product.
+ google.protobuf.StringValue product_type_l2 = 45;
+
+ // Type (level 3) of the product.
+ google.protobuf.StringValue product_type_l3 = 46;
+
+ // Type (level 4) of the product.
+ google.protobuf.StringValue product_type_l4 = 47;
+
+ // Type (level 5) of the product.
+ google.protobuf.StringValue product_type_l5 = 48;
+
+ // Quarter as represented by the date of the first day of a quarter.
+ // Uses the calendar year for quarters, e.g., the second quarter of 2018
+ // starts on 2018-04-01. Formatted as yyyy-MM-dd.
+ google.protobuf.StringValue quarter = 21;
+
+ // Match type of the keyword that triggered the ad, including variants.
+ google.ads.googleads.v1.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22;
+
+ // Position of the ad.
+ google.ads.googleads.v1.enums.SlotEnum.Slot slot = 23;
+
+ // Resource name of the ad group criterion that represents webpage criterion.
+ google.protobuf.StringValue webpage = 66;
+
+ // Week as defined as Monday through Sunday, and represented by the date of
+ // Monday. Formatted as yyyy-MM-dd.
+ google.protobuf.StringValue week = 24;
+
+ // Year, formatted as yyyy.
+ google.protobuf.Int32Value year = 25;
+}
+
+// A Keyword criterion segment.
+message Keyword {
+ // The AdGroupCriterion resource name.
+ google.protobuf.StringValue ad_group_criterion = 1;
+
+ // Keyword info.
+ KeywordInfo info = 2;
+}
diff --git a/google/ads/googleads/v1/common/tag_snippet.proto b/google/ads/googleads/v1/common/tag_snippet.proto
new file mode 100644
index 000000000..329157870
--- /dev/null
+++ b/google/ads/googleads/v1/common/tag_snippet.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/tracking_code_page_format.proto";
+import "google/ads/googleads/v1/enums/tracking_code_type.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "TagSnippetProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing TagSnippet
+
+// The site tag and event snippet pair for a TrackingCodeType.
+message TagSnippet {
+ // The type of the generated tag snippets for tracking conversions.
+ google.ads.googleads.v1.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1;
+
+ // The format of the web page where the tracking tag and snippet will be
+ // installed, e.g. HTML.
+ google.ads.googleads.v1.enums.TrackingCodePageFormatEnum.TrackingCodePageFormat page_format = 2;
+
+ // The site tag that adds visitors to your basic remarketing lists and sets
+ // new cookies on your domain.
+ google.protobuf.StringValue global_site_tag = 3;
+
+ // The event snippet that works with the site tag to track actions that
+ // should be counted as conversions.
+ google.protobuf.StringValue event_snippet = 4;
+}
diff --git a/google/ads/googleads/v1/common/targeting_setting.proto b/google/ads/googleads/v1/common/targeting_setting.proto
new file mode 100644
index 000000000..6ecf914bd
--- /dev/null
+++ b/google/ads/googleads/v1/common/targeting_setting.proto
@@ -0,0 +1,57 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/targeting_dimension.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "TargetingSettingProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing TargetingSetting
+
+// Settings for the
+// <a href="https://support.google.com/google-ads/answer/7365594">
+// targeting related features</a>, at Campaign and AdGroup level.
+message TargetingSetting {
+ // The per-targeting-dimension setting to restrict the reach of your campaign
+ // or ad group.
+ repeated TargetRestriction target_restrictions = 1;
+}
+
+// The list of per-targeting-dimension targeting settings.
+message TargetRestriction {
+ // The targeting dimension that these settings apply to.
+ google.ads.googleads.v1.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1;
+
+ // Indicates whether to restrict your ads to show only for the criteria you
+ // have selected for this targeting_dimension, or to target all values for
+ // this targeting_dimension and show ads based on your targeting in other
+ // TargetingDimensions. A value of 'true' means that these criteria will only
+ // apply bid modifiers, and not affect targeting. A value of 'false' means
+ // that these criteria will restrict targeting as well as applying bid
+ // modifiers.
+ google.protobuf.BoolValue bid_only = 2;
+}
diff --git a/google/ads/googleads/v1/common/text_label.proto b/google/ads/googleads/v1/common/text_label.proto
new file mode 100644
index 000000000..6eb3e64f0
--- /dev/null
+++ b/google/ads/googleads/v1/common/text_label.proto
@@ -0,0 +1,42 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "TextLabelProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// A type of label displaying text on a colored background.
+message TextLabel {
+ // Background color of the label in RGB format. This string must match the
+ // regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'.
+ // Note: The background color may not be visible for manager accounts.
+ google.protobuf.StringValue background_color = 1;
+
+ // A short description of the label. The length must be no more than 200
+ // characters.
+ google.protobuf.StringValue description = 2;
+}
diff --git a/google/ads/googleads/v1/common/url_collection.proto b/google/ads/googleads/v1/common/url_collection.proto
new file mode 100644
index 000000000..77904bbaf
--- /dev/null
+++ b/google/ads/googleads/v1/common/url_collection.proto
@@ -0,0 +1,47 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "UrlCollectionProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file UrlCollection type.
+
+// Collection of urls that is tagged with a unique identifier.
+message UrlCollection {
+ // Unique identifier for this UrlCollection instance.
+ google.protobuf.StringValue url_collection_id = 1;
+
+ // A list of possible final URLs.
+ repeated google.protobuf.StringValue final_urls = 2;
+
+ // A list of possible final mobile URLs.
+ repeated google.protobuf.StringValue final_mobile_urls = 3;
+
+ // URL template for constructing a tracking URL.
+ google.protobuf.StringValue tracking_url_template = 4;
+}
diff --git a/google/ads/googleads/v1/common/user_lists.proto b/google/ads/googleads/v1/common/user_lists.proto
new file mode 100644
index 000000000..f3dc0fa05
--- /dev/null
+++ b/google/ads/googleads/v1/common/user_lists.proto
@@ -0,0 +1,293 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/ads/googleads/v1/enums/customer_match_upload_key_type.proto";
+import "google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto";
+import "google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto";
+import "google/ads/googleads/v1/enums/user_list_prepopulation_status.proto";
+import "google/ads/googleads/v1/enums/user_list_rule_type.proto";
+import "google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto";
+import "google/protobuf/wrappers.proto";
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "UserListsProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing user list types.
+
+// SimilarUserList is a list of users which are similar to users from another
+// UserList. These lists are read-only and automatically created by Google.
+message SimilarUserListInfo {
+ // Seed UserList from which this list is derived.
+ google.protobuf.StringValue seed_user_list = 1;
+}
+
+// UserList of CRM users provided by the advertiser.
+message CrmBasedUserListInfo {
+ // A string that uniquely identifies a mobile application from which the data
+ // was collected to the Google Ads API.
+ // For iOS, the ID string is the 9 digit string that appears at the end of an
+ // App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is
+ // http://itunes.apple.com/us/app/flood-it!-2/id476943146).
+ // For Android, the ID string is the application's package name
+ // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link
+ // https://play.google.com/store/apps/details?id=com.labpixies.colordrips).
+ // Required when creating CrmBasedUserList for uploading mobile advertising
+ // IDs.
+ google.protobuf.StringValue app_id = 1;
+
+ // Matching key type of the list.
+ // Mixed data types are not allowed on the same list.
+ // This field is required for an ADD operation.
+ google.ads.googleads.v1.enums.CustomerMatchUploadKeyTypeEnum.CustomerMatchUploadKeyType upload_key_type = 2;
+
+ // Data source of the list. Default value is FIRST_PARTY.
+ // Only whitelisted customers can create third-party sourced CRM lists.
+ google.ads.googleads.v1.enums.UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType data_source_type = 3;
+}
+
+// A client defined rule based on custom parameters sent by web sites or
+// uploaded by the advertiser.
+message UserListRuleInfo {
+ // Rule type is used to determine how to group rule items.
+ //
+ // The default is OR of ANDs (disjunctive normal form).
+ // That is, rule items will be ANDed together within rule item groups and the
+ // groups themselves will be ORed together.
+ //
+ // Currently AND of ORs (conjunctive normal form) is only supported for
+ // ExpressionRuleUserList.
+ google.ads.googleads.v1.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1;
+
+ // List of rule item groups that defines this rule.
+ // Rule item groups are grouped together based on rule_type.
+ repeated UserListRuleItemGroupInfo rule_item_groups = 2;
+}
+
+// A group of rule items.
+message UserListRuleItemGroupInfo {
+ // Rule items that will be grouped together based on rule_type.
+ repeated UserListRuleItemInfo rule_items = 1;
+}
+
+// An atomic rule fragment.
+message UserListRuleItemInfo {
+ // Rule variable name. It should match the corresponding key name fired
+ // by the pixel.
+ // A name must begin with US-ascii letters or underscore or UTF8 code that is
+ // greater than 127 and consist of US-ascii letters or digits or underscore or
+ // UTF8 code that is greater than 127.
+ // For websites, there are two built-in variable URL (name = 'url__') and
+ // referrer URL (name = 'ref_url__').
+ // This field must be populated when creating a new rule item.
+ google.protobuf.StringValue name = 1;
+
+ // An atomic rule fragment.
+ oneof rule_item {
+ // An atomic rule fragment composed of a number operation.
+ UserListNumberRuleItemInfo number_rule_item = 2;
+
+ // An atomic rule fragment composed of a string operation.
+ UserListStringRuleItemInfo string_rule_item = 3;
+
+ // An atomic rule fragment composed of a date operation.
+ UserListDateRuleItemInfo date_rule_item = 4;
+ }
+}
+
+// A rule item composed of date operation.
+message UserListDateRuleItemInfo {
+ // Date comparison operator.
+ // This field is required and must be populated when creating new date
+ // rule item.
+ google.ads.googleads.v1.enums.UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator operator = 1;
+
+ // String representing date value to be compared with the rule variable.
+ // Supported date format is YYYY-MM-DD.
+ // Times are reported in the customer's time zone.
+ google.protobuf.StringValue value = 2;
+
+ // The relative date value of the right hand side denoted by number of days
+ // offset from now. The value field will override this field when both are
+ // present.
+ google.protobuf.Int64Value offset_in_days = 3;
+}
+
+// A rule item composed of number operation.
+message UserListNumberRuleItemInfo {
+ // Number comparison operator.
+ // This field is required and must be populated when creating a new number
+ // rule item.
+ google.ads.googleads.v1.enums.UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator operator = 1;
+
+ // Number value to be compared with the variable.
+ // This field is required and must be populated when creating a new number
+ // rule item.
+ google.protobuf.DoubleValue value = 2;
+}
+
+// A rule item fragment composed of date operation.
+message UserListStringRuleItemInfo {
+ // String comparison operator.
+ // This field is required and must be populated when creating a new string
+ // rule item.
+ google.ads.googleads.v1.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator operator = 1;
+
+ // The right hand side of the string rule item. For URLs or referrer URLs,
+ // the value can not contain illegal URL chars such as newlines, quotes,
+ // tabs, or parentheses. This field is required and must be populated when
+ // creating a new string rule item.
+ google.protobuf.StringValue value = 2;
+}
+
+// User lists defined by combining two rules, left operand and right operand.
+// There are two operators: AND where left operand and right operand have to be
+// true; AND_NOT where left operand is true but right operand is false.
+message CombinedRuleUserListInfo {
+ // Left operand of the combined rule.
+ // This field is required and must be populated when creating new combined
+ // rule based user list.
+ UserListRuleInfo left_operand = 1;
+
+ // Right operand of the combined rule.
+ // This field is required and must be populated when creating new combined
+ // rule based user list.
+ UserListRuleInfo right_operand = 2;
+
+ // Operator to connect the two operands.
+ //
+ // Required for creating a combined rule user list.
+ google.ads.googleads.v1.enums.UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator rule_operator = 3;
+}
+
+// Visitors of a page during specific dates.
+message DateSpecificRuleUserListInfo {
+ // Boolean rule that defines visitor of a page.
+ //
+ // Required for creating a date specific rule user list.
+ UserListRuleInfo rule = 1;
+
+ // Start date of users visit. If set to 2000-01-01, then the list includes all
+ // users before end_date. The date's format should be YYYY-MM-DD.
+ //
+ // Required for creating a data specific rule user list.
+ google.protobuf.StringValue start_date = 2;
+
+ // End date of users visit. If set to 2037-12-30, then the list includes all
+ // users after start_date. The date's format should be YYYY-MM-DD.
+ //
+ // Required for creating a data specific rule user list.
+ google.protobuf.StringValue end_date = 3;
+}
+
+// Visitors of a page. The page visit is defined by one boolean rule expression.
+message ExpressionRuleUserListInfo {
+ // Boolean rule that defines this user list. The rule consists of a list of
+ // rule item groups and each rule item group consists of a list of rule items.
+ // All the rule item groups are ORed or ANDed together for evaluation based on
+ // rule.rule_type.
+ //
+ // Required for creating an expression rule user list.
+ UserListRuleInfo rule = 1;
+}
+
+// Representation of a userlist that is generated by a rule.
+message RuleBasedUserListInfo {
+ // The status of pre-population. The field is default to NONE if not set which
+ // means the previous users will not be considered. If set to REQUESTED, past
+ // site visitors or app users who match the list definition will be included
+ // in the list (works on the Display Network only). This will only
+ // add past users from within the last 30 days, depending on the
+ // list's membership duration and the date when the remarketing tag is added.
+ // The status will be updated to FINISHED once request is processed, or FAILED
+ // if the request fails.
+ google.ads.googleads.v1.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus prepopulation_status = 1;
+
+ // Subtypes of rule based user lists.
+ oneof rule_based_user_list {
+ // User lists defined by combining two rules.
+ // There are two operators: AND, where the left and right operands have to
+ // be true; AND_NOT where left operand is true but right operand is false.
+ CombinedRuleUserListInfo combined_rule_user_list = 2;
+
+ // Visitors of a page during specific dates. The visiting periods are
+ // defined as follows:
+ // Between start_date (inclusive) and end_date (inclusive);
+ // Before end_date (exclusive) with start_date = 2000-01-01;
+ // After start_date (exclusive) with end_date = 2037-12-30.
+ DateSpecificRuleUserListInfo date_specific_rule_user_list = 3;
+
+ // Visitors of a page. The page visit is defined by one boolean rule
+ // expression.
+ ExpressionRuleUserListInfo expression_rule_user_list = 4;
+ }
+}
+
+// Represents a user list that is a custom combination of user lists.
+message LogicalUserListInfo {
+ // Logical list rules that define this user list. The rules are defined as a
+ // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are
+ // ANDed when they are evaluated.
+ //
+ // Required for creating a logical user list.
+ repeated UserListLogicalRuleInfo rules = 1;
+}
+
+// A user list logical rule. A rule has a logical operator (and/or/not) and a
+// list of user lists as operands.
+message UserListLogicalRuleInfo {
+ // The logical operator of the rule.
+ google.ads.googleads.v1.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator operator = 1;
+
+ // The list of operands of the rule.
+ repeated LogicalUserListOperandInfo rule_operands = 2;
+}
+
+// Operand of logical user list that consists of a user list.
+message LogicalUserListOperandInfo {
+ // Resource name of a user list as an operand.
+ google.protobuf.StringValue user_list = 1;
+}
+
+// User list targeting as a collection of conversions or remarketing actions.
+message BasicUserListInfo {
+ // Actions associated with this user list.
+ repeated UserListActionInfo actions = 1;
+}
+
+// Represents an action type used for building remarketing user lists.
+message UserListActionInfo {
+ // Subtypes of user list action.
+ oneof user_list_action {
+ // A conversion action that's not generated from remarketing.
+ google.protobuf.StringValue conversion_action = 1;
+
+ // A remarketing action.
+ google.protobuf.StringValue remarketing_action = 2;
+ }
+}
diff --git a/google/ads/googleads/v1/common/value.proto b/google/ads/googleads/v1/common/value.proto
new file mode 100644
index 000000000..b37dfb15c
--- /dev/null
+++ b/google/ads/googleads/v1/common/value.proto
@@ -0,0 +1,52 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.ads.googleads.v1.common;
+
+import "google/api/annotations.proto";
+
+option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
+option java_multiple_files = true;
+option java_outer_classname = "ValueProto";
+option java_package = "com.google.ads.googleads.v1.common";
+option objc_class_prefix = "GAA";
+option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V1::Common";
+
+// Proto file describing value types
+
+// A generic data container.
+message Value {
+ // A value.
+ oneof value {
+ // A boolean.
+ bool boolean_value = 1;
+
+ // An int64.
+ int64 int64_value = 2;
+
+ // A float.
+ float float_value = 3;
+
+ // A double.
+ double double_value = 4;
+
+ // A string.
+ string string_value = 5;
+ }
+}