diff options
Diffstat (limited to 'google/ads/googleads/v1/common')
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; + } +} |