1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.ads.googleads.v14.common; 18 19import "google/ads/googleads/v14/common/criteria.proto"; 20import "google/ads/googleads/v14/common/feed_common.proto"; 21import "google/ads/googleads/v14/enums/call_conversion_reporting_state.proto"; 22import "google/ads/googleads/v14/enums/call_to_action_type.proto"; 23import "google/ads/googleads/v14/enums/lead_form_call_to_action_type.proto"; 24import "google/ads/googleads/v14/enums/lead_form_desired_intent.proto"; 25import "google/ads/googleads/v14/enums/lead_form_field_user_input_type.proto"; 26import "google/ads/googleads/v14/enums/lead_form_post_submit_call_to_action_type.proto"; 27import "google/ads/googleads/v14/enums/location_ownership_type.proto"; 28import "google/ads/googleads/v14/enums/mime_type.proto"; 29import "google/ads/googleads/v14/enums/mobile_app_vendor.proto"; 30import "google/ads/googleads/v14/enums/price_extension_price_qualifier.proto"; 31import "google/ads/googleads/v14/enums/price_extension_price_unit.proto"; 32import "google/ads/googleads/v14/enums/price_extension_type.proto"; 33import "google/ads/googleads/v14/enums/promotion_extension_discount_modifier.proto"; 34import "google/ads/googleads/v14/enums/promotion_extension_occasion.proto"; 35import "google/api/field_behavior.proto"; 36import "google/api/resource.proto"; 37 38option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; 39option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; 40option java_multiple_files = true; 41option java_outer_classname = "AssetTypesProto"; 42option java_package = "com.google.ads.googleads.v14.common"; 43option objc_class_prefix = "GAA"; 44option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; 45option ruby_package = "Google::Ads::GoogleAds::V14::Common"; 46 47// Proto file containing info messages for specific asset types. 48 49// A YouTube asset. 50message YoutubeVideoAsset { 51 // YouTube video id. This is the 11 character string value used in the 52 // YouTube video URL. 53 optional string youtube_video_id = 2; 54 55 // YouTube video title. 56 string youtube_video_title = 3; 57} 58 59// A MediaBundle asset. 60message MediaBundleAsset { 61 // Media bundle (ZIP file) asset data. The format of the uploaded ZIP file 62 // depends on the ad field where it will be used. For more information on the 63 // format, see the documentation of the ad field where you plan on using the 64 // MediaBundleAsset. This field is mutate only. 65 optional bytes data = 2; 66} 67 68// An Image asset. 69message ImageAsset { 70 // The raw bytes data of an image. This field is mutate only. 71 optional bytes data = 5; 72 73 // File size of the image asset in bytes. 74 optional int64 file_size = 6; 75 76 // MIME type of the image asset. 77 google.ads.googleads.v14.enums.MimeTypeEnum.MimeType mime_type = 3; 78 79 // Metadata for this image at its original size. 80 ImageDimension full_size = 4; 81} 82 83// Metadata for an image at a certain size, either original or resized. 84message ImageDimension { 85 // Height of the image. 86 optional int64 height_pixels = 4; 87 88 // Width of the image. 89 optional int64 width_pixels = 5; 90 91 // A URL that returns the image with this height and width. 92 optional string url = 6; 93} 94 95// A Text asset. 96message TextAsset { 97 // Text content of the text asset. 98 optional string text = 2; 99} 100 101// A Lead Form asset. 102message LeadFormAsset { 103 // Required. The name of the business being advertised. 104 string business_name = 10 [(google.api.field_behavior) = REQUIRED]; 105 106 // Required. Pre-defined display text that encourages user to expand the form. 107 google.ads.googleads.v14.enums.LeadFormCallToActionTypeEnum 108 .LeadFormCallToActionType call_to_action_type = 17 109 [(google.api.field_behavior) = REQUIRED]; 110 111 // Required. Text giving a clear value proposition of what users expect once 112 // they expand the form. 113 string call_to_action_description = 18 114 [(google.api.field_behavior) = REQUIRED]; 115 116 // Required. Headline of the expanded form to describe what the form is asking 117 // for or facilitating. 118 string headline = 12 [(google.api.field_behavior) = REQUIRED]; 119 120 // Required. Detailed description of the expanded form to describe what the 121 // form is asking for or facilitating. 122 string description = 13 [(google.api.field_behavior) = REQUIRED]; 123 124 // Required. Link to a page describing the policy on how the collected data is 125 // handled by the advertiser/business. 126 string privacy_policy_url = 14 [(google.api.field_behavior) = REQUIRED]; 127 128 // Headline of text shown after form submission that describes how the 129 // advertiser will follow up with the user. 130 optional string post_submit_headline = 15; 131 132 // Detailed description shown after form submission that describes how the 133 // advertiser will follow up with the user. 134 optional string post_submit_description = 16; 135 136 // Ordered list of input fields. This field can be updated by reordering 137 // questions, but not by adding or removing questions. 138 repeated LeadFormField fields = 8; 139 140 // Ordered list of custom question fields. This field is subject to a limit of 141 // 5 qualifying questions per form. 142 repeated LeadFormCustomQuestionField custom_question_fields = 23; 143 144 // Configured methods for collected lead data to be delivered to advertiser. 145 // Only one method typed as WebhookDelivery can be configured. 146 repeated LeadFormDeliveryMethod delivery_methods = 9; 147 148 // Pre-defined display text that encourages user action after the form is 149 // submitted. 150 google.ads.googleads.v14.enums.LeadFormPostSubmitCallToActionTypeEnum 151 .LeadFormPostSubmitCallToActionType post_submit_call_to_action_type = 19; 152 153 // Asset resource name of the background image. The minimum size is 600x314 154 // and the aspect ratio must be 1.91:1 (+-1%). 155 optional string background_image_asset = 20; 156 157 // Chosen intent for the lead form, for example, more volume or more 158 // qualified. 159 google.ads.googleads.v14.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent 160 desired_intent = 21; 161 162 // Custom disclosure shown along with Google disclaimer on the lead form. 163 // Accessible to allowed customers only. 164 optional string custom_disclosure = 22; 165} 166 167// One input field instance within a form. 168message LeadFormField { 169 // Describes the input type, which may be a predefined type such as "full 170 // name" or a pre-vetted question like "What kind of vehicle do you have?". 171 google.ads.googleads.v14.enums.LeadFormFieldUserInputTypeEnum 172 .LeadFormFieldUserInputType input_type = 1; 173 174 // Defines answer configuration that this form field accepts. If oneof is not 175 // set, this is a free-text answer. 176 oneof answers { 177 // Answer configuration for a single choice question. Can be set only for 178 // pre-vetted question fields. Minimum of 2 answers required and maximum of 179 // 12 allowed. 180 LeadFormSingleChoiceAnswers single_choice_answers = 2; 181 182 // Answer configuration for location question. If true, campaign/account 183 // level location data (state, city, business name etc) will be rendered on 184 // the Lead Form. 185 // Starting V13.1, has_location_answer can only be set for "What is your 186 // preferred dealership?" question, for advertisers with Location Assets 187 // setup at campaign/account level. 188 bool has_location_answer = 3; 189 } 190} 191 192// One custom question input field instance within a form. 193message LeadFormCustomQuestionField { 194 // The exact custom question field text (for example, "What kind of vehicle 195 // do you have?"). 196 string custom_question_text = 1; 197 198 // Defines answer configuration that this form field accepts. If 199 // oneof is not set, this is a free-text answer. 200 oneof answers { 201 // Answer configuration for a single choice question. 202 // Minimum of 2 answers and maximum of 12 allowed. 203 LeadFormSingleChoiceAnswers single_choice_answers = 2; 204 205 // Answer configuration for location question. If true, campaign/account 206 // level location data (state, city, business name etc) will be rendered on 207 // the Lead Form. 208 // Starting V13.1, has_location_answer can only be set for "What is your 209 // preferred dealership?" question, for advertisers with Location Assets 210 // setup at campaign/account level. 211 bool has_location_answer = 3; 212 } 213} 214 215// Defines possible answers for a single choice question, usually presented as 216// a single-choice drop-down list. 217message LeadFormSingleChoiceAnswers { 218 // List of choices for a single question field. The order of entries defines 219 // UI order. Minimum of 2 answers required and maximum of 12 allowed. 220 repeated string answers = 1; 221} 222 223// A configuration of how leads are delivered to the advertiser. 224message LeadFormDeliveryMethod { 225 // Various subtypes of delivery. 226 oneof delivery_details { 227 // Webhook method of delivery. 228 WebhookDelivery webhook = 1; 229 } 230} 231 232// Google notifies the advertiser of leads by making HTTP calls to an 233// endpoint they specify. The requests contain JSON matching a schema that 234// Google publishes as part of form ads documentation. 235message WebhookDelivery { 236 // Webhook url specified by advertiser to send the lead. 237 optional string advertiser_webhook_url = 4; 238 239 // Anti-spoofing secret set by the advertiser as part of the webhook payload. 240 optional string google_secret = 5; 241 242 // The schema version that this delivery instance will use. 243 optional int64 payload_schema_version = 6; 244} 245 246// A Book on Google asset. Used to redirect user to book through Google. 247// Book on Google will change the redirect url to book directly through 248// Google. 249message BookOnGoogleAsset {} 250 251// A Promotion asset. 252message PromotionAsset { 253 // Required. A freeform description of what the promotion is targeting. 254 string promotion_target = 1 [(google.api.field_behavior) = REQUIRED]; 255 256 // A modifier for qualification of the discount. 257 google.ads.googleads.v14.enums.PromotionExtensionDiscountModifierEnum 258 .PromotionExtensionDiscountModifier discount_modifier = 2; 259 260 // Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd 261 // format. 262 string redemption_start_date = 7; 263 264 // Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd 265 // format. 266 string redemption_end_date = 8; 267 268 // The occasion the promotion was intended for. 269 // If an occasion is set, the redemption window will need to fall within the 270 // date range associated with the occasion. 271 google.ads.googleads.v14.enums.PromotionExtensionOccasionEnum 272 .PromotionExtensionOccasion occasion = 9; 273 274 // The language of the promotion. 275 // Represented as BCP 47 language tag. 276 string language_code = 10; 277 278 // Start date of when this asset is effective and can begin serving, in 279 // yyyy-MM-dd format. 280 string start_date = 11; 281 282 // Last date of when this asset is effective and still serving, in yyyy-MM-dd 283 // format. 284 string end_date = 12; 285 286 // List of non-overlapping schedules specifying all time intervals for which 287 // the asset may serve. There can be a maximum of 6 schedules per day, 42 in 288 // total. 289 repeated AdScheduleInfo ad_schedule_targets = 13; 290 291 // Discount type, can be percentage off or amount off. 292 oneof discount_type { 293 // Percentage off discount in the promotion. 1,000,000 = 100%. 294 // Either this or money_amount_off is required. 295 int64 percent_off = 3; 296 297 // Money amount off for discount in the promotion. 298 // Either this or percent_off is required. 299 Money money_amount_off = 4; 300 } 301 302 // Promotion trigger. Can be by promotion code or promo by eligible order 303 // amount. 304 oneof promotion_trigger { 305 // A code the user should use in order to be eligible for the promotion. 306 string promotion_code = 5; 307 308 // The amount the total order needs to be for the user to be eligible for 309 // the promotion. 310 Money orders_over_amount = 6; 311 } 312} 313 314// A Callout asset. 315message CalloutAsset { 316 // Required. The callout text. 317 // The length of this string should be between 1 and 25, inclusive. 318 string callout_text = 1 [(google.api.field_behavior) = REQUIRED]; 319 320 // Start date of when this asset is effective and can begin serving, in 321 // yyyy-MM-dd format. 322 string start_date = 2; 323 324 // Last date of when this asset is effective and still serving, in yyyy-MM-dd 325 // format. 326 string end_date = 3; 327 328 // List of non-overlapping schedules specifying all time intervals for which 329 // the asset may serve. There can be a maximum of 6 schedules per day, 42 in 330 // total. 331 repeated AdScheduleInfo ad_schedule_targets = 4; 332} 333 334// A Structured Snippet asset. 335message StructuredSnippetAsset { 336 // Required. The header of the snippet. 337 // This string should be one of the predefined values at 338 // https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers 339 string header = 1 [(google.api.field_behavior) = REQUIRED]; 340 341 // Required. The values in the snippet. 342 // The size of this collection should be between 3 and 10, inclusive. 343 // The length of each value should be between 1 and 25 characters, inclusive. 344 repeated string values = 2 [(google.api.field_behavior) = REQUIRED]; 345} 346 347// A Sitelink asset. 348message SitelinkAsset { 349 // Required. URL display text for the sitelink. 350 // The length of this string should be between 1 and 25, inclusive. 351 string link_text = 1 [(google.api.field_behavior) = REQUIRED]; 352 353 // First line of the description for the sitelink. 354 // If set, the length should be between 1 and 35, inclusive, and description2 355 // must also be set. 356 string description1 = 2; 357 358 // Second line of the description for the sitelink. 359 // If set, the length should be between 1 and 35, inclusive, and description1 360 // must also be set. 361 string description2 = 3; 362 363 // Start date of when this asset is effective and can begin serving, in 364 // yyyy-MM-dd format. 365 string start_date = 4; 366 367 // Last date of when this asset is effective and still serving, in yyyy-MM-dd 368 // format. 369 string end_date = 5; 370 371 // List of non-overlapping schedules specifying all time intervals for which 372 // the asset may serve. There can be a maximum of 6 schedules per day, 42 in 373 // total. 374 repeated AdScheduleInfo ad_schedule_targets = 6; 375} 376 377// A Page Feed asset. 378message PageFeedAsset { 379 // Required. The webpage that advertisers want to target. 380 string page_url = 1 [(google.api.field_behavior) = REQUIRED]; 381 382 // Labels used to group the page urls. 383 repeated string labels = 2; 384} 385 386// A Dynamic Education asset. 387message DynamicEducationAsset { 388 // Required. Program ID which can be any sequence of letters and digits, and 389 // must be unique and match the values of remarketing tag. Required. 390 string program_id = 1 [(google.api.field_behavior) = REQUIRED]; 391 392 // Location ID which can be any sequence of letters and digits and must be 393 // unique. 394 string location_id = 2; 395 396 // Required. Program name, for example, Nursing. Required. 397 string program_name = 3 [(google.api.field_behavior) = REQUIRED]; 398 399 // Subject of study, for example, Health. 400 string subject = 4; 401 402 // Program description, for example, Nursing Certification. 403 string program_description = 5; 404 405 // School name, for example, Mountain View School of Nursing. 406 string school_name = 6; 407 408 // School address which can be specified in one of the following formats. 409 // (1) City, state, code, country, for example, Mountain View, CA, USA. 410 // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. 411 // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 412 string address = 7; 413 414 // Contextual keywords, for example, Nursing certification, Health, Mountain 415 // View. 416 repeated string contextual_keywords = 8; 417 418 // Android deep link, for example, 419 // android-app://com.example.android/http/example.com/gizmos?1234. 420 string android_app_link = 9; 421 422 // Similar program IDs. 423 repeated string similar_program_ids = 10; 424 425 // iOS deep link, for example, exampleApp://content/page. 426 string ios_app_link = 11; 427 428 // iOS app store ID. This is used to check if the user has the app installed 429 // on their device before deep linking. If this field is set, then the 430 // ios_app_link field must also be present. 431 int64 ios_app_store_id = 12; 432 433 // Thumbnail image url, for example, http://www.example.com/thumbnail.png. The 434 // thumbnail image will not be uploaded as image asset. 435 string thumbnail_image_url = 13; 436 437 // Image url, for example, http://www.example.com/image.png. The image will 438 // not be uploaded as image asset. 439 string image_url = 14; 440} 441 442// An asset representing a mobile app. 443message MobileAppAsset { 444 // Required. A string that uniquely identifies a mobile application. It should 445 // just contain the platform native id, like "com.android.ebay" for Android or 446 // "12345689" for iOS. 447 string app_id = 1 [(google.api.field_behavior) = REQUIRED]; 448 449 // Required. The application store that distributes this specific app. 450 google.ads.googleads.v14.enums.MobileAppVendorEnum.MobileAppVendor app_store = 451 2 [(google.api.field_behavior) = REQUIRED]; 452 453 // Required. The visible text displayed when the link is rendered in an ad. 454 // The length of this string should be between 1 and 25, inclusive. 455 string link_text = 3 [(google.api.field_behavior) = REQUIRED]; 456 457 // Start date of when this asset is effective and can begin serving, in 458 // yyyy-MM-dd format. 459 string start_date = 4; 460 461 // Last date of when this asset is effective and still serving, in yyyy-MM-dd 462 // format. 463 string end_date = 5; 464} 465 466// An asset representing a hotel callout. 467message HotelCalloutAsset { 468 // Required. The text of the hotel callout asset. 469 // The length of this string should be between 1 and 25, inclusive. 470 string text = 1 [(google.api.field_behavior) = REQUIRED]; 471 472 // Required. The language of the hotel callout. 473 // Represented as BCP 47 language tag. 474 string language_code = 2 [(google.api.field_behavior) = REQUIRED]; 475} 476 477// A Call asset. 478message CallAsset { 479 // Required. Two-letter country code of the phone number. Examples: 'US', 480 // 'us'. 481 string country_code = 1 [(google.api.field_behavior) = REQUIRED]; 482 483 // Required. The advertiser's raw phone number. Examples: '1234567890', 484 // '(123)456-7890' 485 string phone_number = 2 [(google.api.field_behavior) = REQUIRED]; 486 487 // Indicates whether this CallAsset should use its own call conversion 488 // setting, follow the account level setting, or disable call conversion. 489 google.ads.googleads.v14.enums.CallConversionReportingStateEnum 490 .CallConversionReportingState call_conversion_reporting_state = 3; 491 492 // The conversion action to attribute a call conversion to. If not set, the 493 // default conversion action is used. This field only has effect if 494 // call_conversion_reporting_state is set to 495 // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. 496 string call_conversion_action = 4 [(google.api.resource_reference) = { 497 type: "googleads.googleapis.com/ConversionAction" 498 }]; 499 500 // List of non-overlapping schedules specifying all time intervals for which 501 // the asset may serve. There can be a maximum of 6 schedules per day, 42 in 502 // total. 503 repeated AdScheduleInfo ad_schedule_targets = 5; 504} 505 506// An asset representing a list of price offers. 507message PriceAsset { 508 // Required. The type of the price asset. 509 google.ads.googleads.v14.enums.PriceExtensionTypeEnum.PriceExtensionType 510 type = 1 [(google.api.field_behavior) = REQUIRED]; 511 512 // The price qualifier of the price asset. 513 google.ads.googleads.v14.enums.PriceExtensionPriceQualifierEnum 514 .PriceExtensionPriceQualifier price_qualifier = 2; 515 516 // Required. The language of the price asset. 517 // Represented as BCP 47 language tag. 518 string language_code = 3 [(google.api.field_behavior) = REQUIRED]; 519 520 // The price offerings of the price asset. 521 // The size of this collection should be between 3 and 8, inclusive. 522 repeated PriceOffering price_offerings = 4; 523} 524 525// A single price offering within a PriceAsset. 526message PriceOffering { 527 // Required. The header of the price offering. 528 // The length of this string should be between 1 and 25, inclusive. 529 string header = 1 [(google.api.field_behavior) = REQUIRED]; 530 531 // Required. The description of the price offering. 532 // The length of this string should be between 1 and 25, inclusive. 533 string description = 2 [(google.api.field_behavior) = REQUIRED]; 534 535 // Required. The price value of the price offering. 536 Money price = 3 [(google.api.field_behavior) = REQUIRED]; 537 538 // The price unit of the price offering. 539 google.ads.googleads.v14.enums.PriceExtensionPriceUnitEnum 540 .PriceExtensionPriceUnit unit = 4; 541 542 // Required. The final URL after all cross domain redirects. 543 string final_url = 5 [(google.api.field_behavior) = REQUIRED]; 544 545 // The final mobile URL after all cross domain redirects. 546 string final_mobile_url = 6; 547} 548 549// A call to action asset. 550message CallToActionAsset { 551 // Call to action. 552 google.ads.googleads.v14.enums.CallToActionTypeEnum.CallToActionType 553 call_to_action = 1; 554} 555 556// A dynamic real estate asset. 557message DynamicRealEstateAsset { 558 // Required. Listing ID which can be any sequence of letters and digits, and 559 // must be unique and match the values of remarketing tag. Required. 560 string listing_id = 1 [(google.api.field_behavior) = REQUIRED]; 561 562 // Required. Listing name, for example, Boulevard Bungalow. Required. 563 string listing_name = 2 [(google.api.field_behavior) = REQUIRED]; 564 565 // City name, for example, Mountain View, California. 566 string city_name = 3; 567 568 // Description, for example, 3 beds, 2 baths, 1568 sq. ft. 569 string description = 4; 570 571 // Address which can be specified in one of the following formats. 572 // (1) City, state, code, country, for example, Mountain View, CA, USA. 573 // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. 574 // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 575 string address = 5; 576 577 // Price which can be number followed by the alphabetic currency code, 578 // ISO 4217 standard. Use '.' as the decimal mark, for example, 200,000.00 579 // USD. 580 string price = 6; 581 582 // Image URL, for example, http://www.example.com/image.png. The image will 583 // not be uploaded as image asset. 584 string image_url = 7; 585 586 // Property type, for example, House. 587 string property_type = 8; 588 589 // Listing type, for example, For sale. 590 string listing_type = 9; 591 592 // Contextual keywords, for example, For sale; Houses for sale. 593 repeated string contextual_keywords = 10; 594 595 // Formatted price which can be any characters. If set, this attribute will be 596 // used instead of 'price', for example, Starting at $200,000.00. 597 string formatted_price = 11; 598 599 // Android deep link, for example, 600 // android-app://com.example.android/http/example.com/gizmos?1234. 601 string android_app_link = 12; 602 603 // iOS deep link, for example, exampleApp://content/page. 604 string ios_app_link = 13; 605 606 // iOS app store ID. This is used to check if the user has the app installed 607 // on their device before deep linking. If this field is set, then the 608 // ios_app_link field must also be present. 609 int64 ios_app_store_id = 14; 610 611 // Similar listing IDs. 612 repeated string similar_listing_ids = 15; 613} 614 615// A dynamic custom asset. 616message DynamicCustomAsset { 617 // Required. ID which can be any sequence of letters and digits, and must be 618 // unique and match the values of remarketing tag, for example, sedan. 619 // Required. 620 string id = 1 [(google.api.field_behavior) = REQUIRED]; 621 622 // ID2 which can be any sequence of letters and digits, for example, red. ID 623 // sequence (ID + ID2) must be unique. 624 string id2 = 2; 625 626 // Required. Item title, for example, Mid-size sedan. Required. 627 string item_title = 3 [(google.api.field_behavior) = REQUIRED]; 628 629 // Item subtitle, for example, At your Mountain View dealership. 630 string item_subtitle = 4; 631 632 // Item description, for example, Best selling mid-size car. 633 string item_description = 5; 634 635 // Item address which can be specified in one of the following formats. 636 // (1) City, state, code, country, for example, Mountain View, CA, USA. 637 // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. 638 // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 639 string item_address = 6; 640 641 // Item category, for example, Sedans. 642 string item_category = 7; 643 644 // Price which can be number followed by the alphabetic currency code, 645 // ISO 4217 standard. Use '.' as the decimal mark, for example, 20,000.00 USD. 646 string price = 8; 647 648 // Sale price which can be number followed by the alphabetic currency code, 649 // ISO 4217 standard. Use '.' as the decimal mark, for example, 15,000.00 USD. 650 // Must be less than the 'price' field. 651 string sale_price = 9; 652 653 // Formatted price which can be any characters. If set, this attribute will be 654 // used instead of 'price', for example, Starting at $20,000.00. 655 string formatted_price = 10; 656 657 // Formatted sale price which can be any characters. If set, this attribute 658 // will be used instead of 'sale price', for example, On sale for $15,000.00. 659 string formatted_sale_price = 11; 660 661 // Image URL, for example, http://www.example.com/image.png. The image will 662 // not be uploaded as image asset. 663 string image_url = 12; 664 665 // Contextual keywords, for example, Sedans, 4 door sedans. 666 repeated string contextual_keywords = 13; 667 668 // Android deep link, for example, 669 // android-app://com.example.android/http/example.com/gizmos?1234. 670 string android_app_link = 14; 671 672 // iOS deep link, for example, exampleApp://content/page. 673 string ios_app_link = 16; 674 675 // iOS app store ID. This is used to check if the user has the app installed 676 // on their device before deep linking. If this field is set, then the 677 // ios_app_link field must also be present. 678 int64 ios_app_store_id = 17; 679 680 // Similar IDs. 681 repeated string similar_ids = 15; 682} 683 684// A dynamic hotels and rentals asset. 685message DynamicHotelsAndRentalsAsset { 686 // Required. Property ID which can be any sequence of letters and digits, and 687 // must be unique and match the values of remarketing tag. Required. 688 string property_id = 1 [(google.api.field_behavior) = REQUIRED]; 689 690 // Required. Property name, for example, Mountain View Hotel. Required. 691 string property_name = 2 [(google.api.field_behavior) = REQUIRED]; 692 693 // Image URL, for example, http://www.example.com/image.png. The image will 694 // not be uploaded as image asset. 695 string image_url = 3; 696 697 // Destination name, for example, Downtown Mountain View. 698 string destination_name = 4; 699 700 // Description, for example, Close to SJC Airport. 701 string description = 5; 702 703 // Price which can be number followed by the alphabetic currency code, 704 // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. 705 string price = 6; 706 707 // ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. 708 // Must be less than the 'price' field. 709 string sale_price = 7; 710 711 // Star rating. Must be a number between 1 to 5, inclusive. 712 int64 star_rating = 8; 713 714 // Category, for example, Hotel suite. 715 string category = 9; 716 717 // Contextual keywords, for example, Mountain View "Hotels", South Bay hotels. 718 repeated string contextual_keywords = 10; 719 720 // Address which can be specified in one of the following formats. 721 // (1) City, state, code, country, for example, Mountain View, CA, USA. 722 // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. 723 // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403 724 string address = 11; 725 726 // Android deep link, for example, 727 // android-app://com.example.android/http/example.com/gizmos?1234. 728 string android_app_link = 12; 729 730 // iOS deep link, for example, exampleApp://content/page. 731 string ios_app_link = 13; 732 733 // iOS app store ID. This is used to check if the user has the app installed 734 // on their device before deep linking. If this field is set, then the 735 // ios_app_link field must also be present. 736 int64 ios_app_store_id = 14; 737 738 // Formatted price which can be any characters. If set, this attribute will be 739 // used instead of 'price', for example, Starting at $100.00. 740 string formatted_price = 15; 741 742 // Formatted sale price which can be any characters. If set, this attribute 743 // will be used instead of 'sale price', for example, On sale for $80.00. 744 string formatted_sale_price = 16; 745 746 // Similar property IDs. 747 repeated string similar_property_ids = 17; 748} 749 750// A dynamic flights asset. 751message DynamicFlightsAsset { 752 // Required. Destination ID which can be any sequence of letters and digits, 753 // and must be unique and match the values of remarketing tag. Required. 754 string destination_id = 1 [(google.api.field_behavior) = REQUIRED]; 755 756 // Origin ID which can be any sequence of letters and digits. The ID sequence 757 // (destination ID + origin ID) must be unique. 758 string origin_id = 2; 759 760 // Required. Flight description, for example, Book your ticket. Required. 761 string flight_description = 3 [(google.api.field_behavior) = REQUIRED]; 762 763 // Image URL, for example, http://www.example.com/image.png. The image will 764 // not be uploaded as image asset. 765 string image_url = 4; 766 767 // Destination name, for example, Paris. 768 string destination_name = 5; 769 770 // Origin name, for example, London. 771 string origin_name = 6; 772 773 // Flight price which can be number followed by the alphabetic currency code, 774 // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. 775 string flight_price = 7; 776 777 // Flight sale price which can be number followed by the alphabetic currency 778 // code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 779 // USD. Must be less than the 'flight_price' field. 780 string flight_sale_price = 8; 781 782 // Formatted price which can be any characters. If set, this attribute will be 783 // used instead of 'price', for example, Starting at $100.00. 784 string formatted_price = 9; 785 786 // Formatted sale price which can be any characters. If set, this attribute 787 // will be used instead of 'sale price', for example, On sale for $80.00. 788 string formatted_sale_price = 10; 789 790 // Android deep link, for example, 791 // android-app://com.example.android/http/example.com/gizmos?1234. 792 string android_app_link = 11; 793 794 // iOS deep link, for example, exampleApp://content/page. 795 string ios_app_link = 12; 796 797 // iOS app store ID. This is used to check if the user has the app installed 798 // on their device before deep linking. If this field is set, then the 799 // ios_app_link field must also be present. 800 int64 ios_app_store_id = 13; 801 802 // Similar destination IDs, for example, PAR,LON. 803 repeated string similar_destination_ids = 14; 804 805 // A custom field which can be multiple key to values mapping separated by 806 // delimiters (",", "|" and ":"), in the forms of 807 // "<KEY_1>: <VALUE_1>, <VALUE_2>, ... ,<VALUE_N> | <KEY_2>: <VALUE_1>, ... 808 // ,<VALUE_N> | ... | <KEY_N>: <VALUE_1>, ... ,<VALUE_N>" for example, wifi: 809 // most | aircraft: 320, 77W | flights: 42 | legroom: 32". 810 string custom_mapping = 15; 811} 812 813// A Discovery Carousel Card asset. 814message DiscoveryCarouselCardAsset { 815 // Asset resource name of the associated 1.91:1 marketing image. This and/or 816 // square marketing image asset is required. 817 string marketing_image_asset = 1; 818 819 // Asset resource name of the associated square marketing image. This 820 // and/or a marketing image asset is required. 821 string square_marketing_image_asset = 2; 822 823 // Asset resource name of the associated 4:5 portrait marketing image. 824 string portrait_marketing_image_asset = 3; 825 826 // Required. Headline of the carousel card. 827 string headline = 4 [(google.api.field_behavior) = REQUIRED]; 828 829 // Call to action text. 830 string call_to_action_text = 5; 831} 832 833// A dynamic travel asset. 834message DynamicTravelAsset { 835 // Required. Destination ID which can be any sequence of letters and digits, 836 // and must be unique and match the values of remarketing tag. Required. 837 string destination_id = 1 [(google.api.field_behavior) = REQUIRED]; 838 839 // Origin ID which can be any sequence of letters and digits. The ID sequence 840 // (destination ID + origin ID) must be unique. 841 string origin_id = 2; 842 843 // Required. Title, for example, Book your train ticket. Required. 844 string title = 3 [(google.api.field_behavior) = REQUIRED]; 845 846 // Destination name, for example, Paris. 847 string destination_name = 4; 848 849 // Destination address which can be specified in one of the following formats. 850 // (1) City, state, code, country, for example, Mountain View, CA, USA. 851 // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. 852 // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403. 853 string destination_address = 5; 854 855 // Origin name, for example, London. 856 string origin_name = 6; 857 858 // Price which can be a number followed by the alphabetic currency code, 859 // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. 860 string price = 7; 861 862 // Sale price which can be a number followed by the alphabetic currency 863 // code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 864 // USD. Must be less than the 'price' field. 865 string sale_price = 8; 866 867 // Formatted price which can be any characters. If set, this attribute will be 868 // used instead of 'price', for example, Starting at $100.00. 869 string formatted_price = 9; 870 871 // Formatted sale price which can be any characters. If set, this attribute 872 // will be used instead of 'sale price', for example, On sale for $80.00. 873 string formatted_sale_price = 10; 874 875 // Category, for example, Express. 876 string category = 11; 877 878 // Contextual keywords, for example, Paris trains. 879 repeated string contextual_keywords = 12; 880 881 // Similar destination IDs, for example, NYC. 882 repeated string similar_destination_ids = 13; 883 884 // Image URL, for example, http://www.example.com/image.png. The image will 885 // not be uploaded as image asset. 886 string image_url = 14; 887 888 // Android deep link, for example, 889 // android-app://com.example.android/http/example.com/gizmos?1234. 890 string android_app_link = 15; 891 892 // iOS deep link, for example, exampleApp://content/page. 893 string ios_app_link = 16; 894 895 // iOS app store ID. This is used to check if the user has the app installed 896 // on their device before deep linking. If this field is set, then the 897 // ios_app_link field must also be present. 898 int64 ios_app_store_id = 17; 899} 900 901// A dynamic local asset. 902message DynamicLocalAsset { 903 // Required. Deal ID which can be any sequence of letters and digits, and must 904 // be unique and match the values of remarketing tag. Required. 905 string deal_id = 1 [(google.api.field_behavior) = REQUIRED]; 906 907 // Required. Deal name, for example, 50% off at Mountain View Grocers. 908 // Required. 909 string deal_name = 2 [(google.api.field_behavior) = REQUIRED]; 910 911 // Subtitle, for example, Groceries. 912 string subtitle = 3; 913 914 // Description, for example, Save on your weekly bill. 915 string description = 4; 916 917 // Price which can be a number followed by the alphabetic currency code, 918 // ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD. 919 string price = 5; 920 921 // Sale price which can be number followed by the alphabetic currency code, 922 // ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. 923 // Must be less than the 'price' field. 924 string sale_price = 6; 925 926 // Image URL, for example, http://www.example.com/image.png. The image will 927 // not be uploaded as image asset. 928 string image_url = 7; 929 930 // Address which can be specified in one of the following formats. 931 // (1) City, state, code, country, for example, Mountain View, CA, USA. 932 // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. 933 // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403. 934 string address = 8; 935 936 // Category, for example, Food. 937 string category = 9; 938 939 // Contextual keywords, for example, Save groceries coupons. 940 repeated string contextual_keywords = 10; 941 942 // Formatted price which can be any characters. If set, this attribute will be 943 // used instead of 'price', for example, Starting at $100.00. 944 string formatted_price = 11; 945 946 // Formatted sale price which can be any characters. If set, this attribute 947 // will be used instead of 'sale price', for example, On sale for $80.00. 948 string formatted_sale_price = 12; 949 950 // Android deep link, for example, 951 // android-app://com.example.android/http/example.com/gizmos?1234. 952 string android_app_link = 13; 953 954 // Similar deal IDs, for example, 1275. 955 repeated string similar_deal_ids = 14; 956 957 // iOS deep link, for example, exampleApp://content/page. 958 string ios_app_link = 15; 959 960 // iOS app store ID. This is used to check if the user has the app installed 961 // on their device before deep linking. If this field is set, then the 962 // ios_app_link field must also be present. 963 int64 ios_app_store_id = 16; 964} 965 966// A dynamic jobs asset. 967message DynamicJobsAsset { 968 // Required. Job ID which can be any sequence of letters and digits, and must 969 // be unique and match the values of remarketing tag. Required. 970 string job_id = 1 [(google.api.field_behavior) = REQUIRED]; 971 972 // Location ID which can be any sequence of letters and digits. The ID 973 // sequence (job ID + location ID) must be unique. 974 string location_id = 2; 975 976 // Required. Job title, for example, Software engineer. Required. 977 string job_title = 3 [(google.api.field_behavior) = REQUIRED]; 978 979 // Job subtitle, for example, Level II. 980 string job_subtitle = 4; 981 982 // Description, for example, Apply your technical skills. 983 string description = 5; 984 985 // Image URL, for example, http://www.example.com/image.png. The image will 986 // not be uploaded as image asset. 987 string image_url = 6; 988 989 // Job category, for example, Technical. 990 string job_category = 7; 991 992 // Contextual keywords, for example, Software engineering job. 993 repeated string contextual_keywords = 8; 994 995 // Address which can be specified in one of the following formats. 996 // (1) City, state, code, country, for example, Mountain View, CA, USA. 997 // (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. 998 // (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403. 999 string address = 9; 1000 1001 // Salary, for example, $100,000. 1002 string salary = 10; 1003 1004 // Android deep link, for example, 1005 // android-app://com.example.android/http/example.com/gizmos?1234. 1006 string android_app_link = 11; 1007 1008 // Similar job IDs, for example, 1275. 1009 repeated string similar_job_ids = 12; 1010 1011 // iOS deep link, for example, exampleApp://content/page. 1012 string ios_app_link = 13; 1013 1014 // iOS app store ID. This is used to check if the user has the app installed 1015 // on their device before deep linking. If this field is set, then the 1016 // ios_app_link field must also be present. 1017 int64 ios_app_store_id = 14; 1018} 1019 1020// A location asset. 1021message LocationAsset { 1022 // Place IDs uniquely identify a place in the Google Places database and on 1023 // Google Maps. 1024 // This field is unique for a given customer ID and asset type. See 1025 // https://developers.google.com/places/web-service/place-id to learn more 1026 // about Place ID. 1027 string place_id = 1; 1028 1029 // The list of business locations for the customer. 1030 // This will only be returned if the Location Asset is syncing from the 1031 // Business Profile account. It is possible to have multiple Business Profile 1032 // listings under the same account that point to the same Place ID. 1033 repeated BusinessProfileLocation business_profile_locations = 2; 1034 1035 // The type of location ownership. 1036 // If the type is BUSINESS_OWNER, it will be served as a location extension. 1037 // If the type is AFFILIATE, it will be served as an affiliate location. 1038 google.ads.googleads.v14.enums.LocationOwnershipTypeEnum.LocationOwnershipType 1039 location_ownership_type = 3; 1040} 1041 1042// Business Profile location data synced from the linked Business Profile 1043// account. 1044message BusinessProfileLocation { 1045 // Advertiser specified label for the location on the Business Profile 1046 // account. This is synced from the Business Profile account. 1047 repeated string labels = 1; 1048 1049 // Business Profile store code of this location. This is synced from the 1050 // Business Profile account. 1051 string store_code = 2; 1052 1053 // Listing ID of this Business Profile location. This is synced from the 1054 // linked Business Profile account. 1055 int64 listing_id = 3; 1056} 1057 1058// A hotel property asset. 1059message HotelPropertyAsset { 1060 // Place IDs uniquely identify a place in the Google Places database and on 1061 // Google Maps. See https://developers.google.com/places/web-service/place-id 1062 // to learn more. 1063 string place_id = 1; 1064 1065 // Address of the hotel. Read-only. 1066 string hotel_address = 2; 1067 1068 // Name of the hotel. Read-only. 1069 string hotel_name = 3; 1070} 1071