• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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