/common/asset_types.proto

--- v9/common/asset_types.proto 2022-06-06 16:14:00.000000000 +0000
+++ v10/common/asset_types.proto    2022-06-06 16:14:07.000000000 +0000
@@ -133,6 +132,9 @@
   // Ordered list of input fields.
   repeated LeadFormField fields = 8;

+  // Ordered list of custom question fields.
+  repeated LeadFormCustomQuestionField custom_question_fields = 23;
+
   // Configured methods for collected lead data to be delivered to advertiser.
   // Only one method typed as WebhookDelivery can be configured.
   repeated LeadFormDeliveryMethod delivery_methods = 9;
@@ -169,6 +171,20 @@
   }
 }

+// One custom question input field instance within a form.
+message LeadFormCustomQuestionField {
+  // The exact custom question field text (e.g. "Do you own a car?").
+  string custom_question_text = 1;
+
+  // Defines answer configuration that this form field accepts. If
+  // oneof is not set, this is a free-text answer.
+  oneof answers {
+    // Answer configuration for a single choice question.
+    // Minimum of 2 answers and maximum of 12 allowed.
+    LeadFormSingleChoiceAnswers single_choice_answers = 2;
+  }
+}
+
 // Defines possible answers for a single choice question, usually presented as
 // a single-choice drop-down list.
 message LeadFormSingleChoiceAnswers {
@@ -498,5 +514,466 @@
 // A call to action asset.
 message CallToActionAsset {
   // Call to action.
-  google.ads.googleads.v9.enums.CallToActionTypeEnum.CallToActionType call_to_action = 1;
+  google.ads.googleads.v10.enums.CallToActionTypeEnum.CallToActionType call_to_action = 1;
+}
+
+// A dynamic real estate asset.
+message DynamicRealEstateAsset {
+  // Required. Listing ID which can be any sequence of letters and digits, and must be
+  // unique and match the values of remarketing tag. Required.
+  string listing_id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Required. Listing name, e.g. Boulevard Bungalow. Required.
+  string listing_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+  // City name, e.g. Mountain View, California.
+  string city_name = 3;
+
+  // Description, e.g. 3 beds, 2 baths, 1568 sq. ft.
+  string description = 4;
+
+  // Address which can be specified in one of the following formats.
+  // (1) City, state, code, country, e.g. Mountain View, CA, USA.
+  // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043.
+  // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403
+  string address = 5;
+
+  // Price which can be number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark. e.g. 200,000.00 USD.
+  string price = 6;
+
+  // Image URL, e.g. http://www.example.com/image.png. The image will not be
+  // uploaded as image asset.
+  string image_url = 7;
+
+  // Property type, e.g. House.
+  string property_type = 8;
+
+  // Listing type, e.g. For sale.
+  string listing_type = 9;
+
+  // Contextual keywords, e.g. For sale; Houses for sale.
+  repeated string contextual_keywords = 10;
+
+  // Formatted price which can be any characters. If set, this attribute will be
+  // used instead of 'price', e.g. Starting at $200,000.00.
+  string formatted_price = 11;
+
+  // Android deep link, e.g.
+  // android-app://com.example.android/http/example.com/gizmos?1234.
+  string android_app_link = 12;
+
+  // iOS deep link, e.g. exampleApp://content/page.
+  string ios_app_link = 13;
+
+  // iOS app store ID. This is used to check if the user has the app installed
+  // on their device before deep linking. If this field is set, then the
+  // ios_app_link field must also be present.
+  int64 ios_app_store_id = 14;
+
+  // Similar listing IDs.
+  repeated string similar_listing_ids = 15;
+}
+
+// A dynamic custom asset.
+message DynamicCustomAsset {
+  // Required. ID which can be any sequence of letters and digits, and must be
+  // unique and match the values of remarketing tag, e.g. sedan. Required.
+  string id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // ID2 which can be any sequence of letters and digits, e.g. red. ID sequence
+  // (ID + ID2) must be unique.
+  string id2 = 2;
+
+  // Required. Item title, e.g. Mid-size sedan. Required.
+  string item_title = 3 [(google.api.field_behavior) = REQUIRED];
+
+  // Item subtitle, e.g. At your Mountain View dealership.
+  string item_subtitle = 4;
+
+  // Item description, e.g. Best selling mid-size car.
+  string item_description = 5;
+
+  // Item address which can be specified in one of the following formats.
+  // (1) City, state, code, country, e.g. Mountain View, CA, USA.
+  // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043.
+  // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403
+  string item_address = 6;
+
+  // Item category, e.g. Sedans.
+  string item_category = 7;
+
+  // Price which can be number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark, e.g. 20,000.00 USD.
+  string price = 8;
+
+  // Sale price which can be number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark, e.g. 15,000.00 USD.
+  // Must be less than the 'price' field.
+  string sale_price = 9;
+
+  // Formatted price which can be any characters. If set, this attribute will be
+  // used instead of 'price', e.g. Starting at $20,000.00.
+  string formatted_price = 10;
+
+  // Formatted sale price which can be any characters. If set, this attribute
+  // will be used instead of 'sale price', e.g. On sale for $15,000.00.
+  string formatted_sale_price = 11;
+
+  // Image URL, e.g. http://www.example.com/image.png. The image will not be
+  // uploaded as image asset.
+  string image_url = 12;
+
+  // Contextual keywords, e.g. Sedans, 4 door sedans.
+  repeated string contextual_keywords = 13;
+
+  // Android deep link, e.g.
+  // android-app://com.example.android/http/example.com/gizmos?1234.
+  string android_app_link = 14;
+
+  // iOS deep link, e.g. exampleApp://content/page.
+  string ios_app_link = 16;
+
+  // iOS app store ID. This is used to check if the user has the app installed
+  // on their device before deep linking. If this field is set, then the
+  // ios_app_link field must also be present.
+  int64 ios_app_store_id = 17;
+
+  // Similar IDs.
+  repeated string similar_ids = 15;
+}
+
+// A dynamic hotels and rentals asset.
+message DynamicHotelsAndRentalsAsset {
+  // Required. Property ID which can be any sequence of letters and digits, and must be
+  // unique and match the values of remarketing tag. Required.
+  string property_id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Required. Property name, e.g. Mountain View Hotel. Required.
+  string property_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+  // Image URL, e.g. http://www.example.com/image.png. The image will not be
+  // uploaded as image asset.
+  string image_url = 3;
+
+  // Destination name, e.g. Downtown Mountain View.
+  string destination_name = 4;
+
+  // Description, e.g. Close to SJC Airport.
+  string description = 5;
+
+  // Price which can be number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark, e.g. 100.00 USD.
+  string price = 6;
+
+  // ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD.
+  // Must be less than the 'price' field.
+  string sale_price = 7;
+
+  // Star rating. Must be a number between 1–5, inclusive.
+  int64 star_rating = 8;
+
+  // Category, e.g. Hotel suite.
+  string category = 9;
+
+  // Contextual keywords, e.g. Mountain View "Hotels", South Bay hotels.
+  repeated string contextual_keywords = 10;
+
+  // Address which can be specified in one of the following formats.
+  // (1) City, state, code, country, e.g. Mountain View, CA, USA.
+  // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043.
+  // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403
+  string address = 11;
+
+  // Android deep link, e.g.
+  // android-app://com.example.android/http/example.com/gizmos?1234.
+  string android_app_link = 12;
+
+  // iOS deep link, e.g. exampleApp://content/page.
+  string ios_app_link = 13;
+
+  // iOS app store ID. This is used to check if the user has the app installed
+  // on their device before deep linking. If this field is set, then the
+  // ios_app_link field must also be present.
+  int64 ios_app_store_id = 14;
+
+  // Formatted price which can be any characters. If set, this attribute will be
+  // used instead of 'price', e.g. Starting at $100.00.
+  string formatted_price = 15;
+
+  // Formatted sale price which can be any characters. If set, this attribute
+  // will be used instead of 'sale price', e.g. On sale for $80.00.
+  string formatted_sale_price = 16;
+
+  // Similar property IDs.
+  repeated string similar_property_ids = 17;
+}
+
+// A dynamic flights asset.
+message DynamicFlightsAsset {
+  // Required. Destination ID which can be any sequence of letters and digits, and must be
+  // unique and match the values of remarketing tag. Required.
+  string destination_id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Origin ID which can be any sequence of letters and digits. The ID sequence
+  // (destination ID + origin ID) must be unique.
+  string origin_id = 2;
+
+  // Required. Flight description, e.g. Book your ticket. Required.
+  string flight_description = 3 [(google.api.field_behavior) = REQUIRED];
+
+  // Image URL, e.g. http://www.example.com/image.png. The image will not be
+  // uploaded as image asset.
+  string image_url = 4;
+
+  // Destination name, e.g. Paris.
+  string destination_name = 5;
+
+  // Origin name, e.g. London.
+  string origin_name = 6;
+
+  // Flight price which can be number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark. e.g. 100.00 USD.
+  string flight_price = 7;
+
+  // Flight sale price which can be number followed by the alphabetic currency
+  // code, ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD.
+  // Must be less than the 'flight_price' field.
+  string flight_sale_price = 8;
+
+  // Formatted price which can be any characters. If set, this attribute will be
+  // used instead of 'price', e.g. Starting at $100.00.
+  string formatted_price = 9;
+
+  // Formatted sale price which can be any characters. If set, this attribute
+  // will be used instead of 'sale price', e.g. On sale for $80.00.
+  string formatted_sale_price = 10;
+
+  // Android deep link, e.g.
+  // android-app://com.example.android/http/example.com/gizmos?1234.
+  string android_app_link = 11;
+
+  // iOS deep link, e.g. exampleApp://content/page.
+  string ios_app_link = 12;
+
+  // iOS app store ID. This is used to check if the user has the app installed
+  // on their device before deep linking. If this field is set, then the
+  // ios_app_link field must also be present.
+  int64 ios_app_store_id = 13;
+
+  // Similar destination IDs, e.g. PAR,LON.
+  repeated string similar_destination_ids = 14;
+
+  // A custom field which can be multiple key to values mapping separated by
+  // delimiters (",", "|" and ":"), in the forms of
+  // ": , , ... , | : , ...
+  // , | ... | : , ... ," e.g. wifi: most |
+  // aircraft: 320, 77W | flights: 42 | legroom: 32".
+  string custom_mapping = 15;
+}
+
+// A Discovery Carousel Card asset.
+message DiscoveryCarouselCardAsset {
+  // Asset resource name of the associated 1.91:1 marketing image. This and/or
+  // square marketing image asset is required.
+  string marketing_image_asset = 1;
+
+  // Asset resource name of the associated square marketing image. This
+  // and/or a marketing image asset is required.
+  string square_marketing_image_asset = 2;
+
+  // Asset resource name of the associated 4:5 portrait marketing image.
+  string portrait_marketing_image_asset = 3;
+
+  // Required. Headline of the carousel card.
+  string headline = 4 [(google.api.field_behavior) = REQUIRED];
+
+  // Call to action text.
+  string call_to_action_text = 5;
+}
+
+// A dynamic travel asset.
+message DynamicTravelAsset {
+  // Required. Destination ID which can be any sequence of letters and digits, and must be
+  // unique and match the values of remarketing tag. Required.
+  string destination_id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Origin ID which can be any sequence of letters and digits. The ID sequence
+  // (destination ID + origin ID) must be unique.
+  string origin_id = 2;
+
+  // Required. Title, e.g. Book your train ticket. Required.
+  string title = 3 [(google.api.field_behavior) = REQUIRED];
+
+  // Destination name, e.g. Paris.
+  string destination_name = 4;
+
+  // Destination address which can be specified in one of the following formats.
+  // (1) City, state, code, country, e.g. Mountain View, CA, USA.
+  // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043.
+  // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403.
+  string destination_address = 5;
+
+  // Origin name, e.g. London.
+  string origin_name = 6;
+
+  // Price which can be a number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark. e.g. 100.00 USD.
+  string price = 7;
+
+  // Sale price which can be a number followed by the alphabetic currency
+  // code, ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD.
+  // Must be less than the 'price' field.
+  string sale_price = 8;
+
+  // Formatted price which can be any characters. If set, this attribute will be
+  // used instead of 'price', e.g. Starting at $100.00.
+  string formatted_price = 9;
+
+  // Formatted sale price which can be any characters. If set, this attribute
+  // will be used instead of 'sale price', e.g. On sale for $80.00.
+  string formatted_sale_price = 10;
+
+  // Category, e.g. Express.
+  string category = 11;
+
+  // Contextual keywords, e.g. Paris trains.
+  repeated string contextual_keywords = 12;
+
+  // Similar destination IDs, e.g. NYC.
+  repeated string similar_destination_ids = 13;
+
+  // Image URL, e.g. http://www.example.com/image.png. The image will not be
+  // uploaded as image asset.
+  string image_url = 14;
+
+  // Android deep link, e.g.
+  // android-app://com.example.android/http/example.com/gizmos?1234.
+  string android_app_link = 15;
+
+  // iOS deep link, e.g. exampleApp://content/page.
+  string ios_app_link = 16;
+
+  // iOS app store ID. This is used to check if the user has the app installed
+  // on their device before deep linking. If this field is set, then the
+  // ios_app_link field must also be present.
+  int64 ios_app_store_id = 17;
+}
+
+// A dynamic local asset.
+message DynamicLocalAsset {
+  // Required. Deal ID which can be any sequence of letters and digits, and must be
+  // unique and match the values of remarketing tag. Required.
+  string deal_id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Required. Deal name, e.g. 50% off at Mountain View Grocers. Required.
+  string deal_name = 2 [(google.api.field_behavior) = REQUIRED];
+
+  // Subtitle, e.g. Groceries.
+  string subtitle = 3;
+
+  // Description, e.g. Save on your weekly bill.
+  string description = 4;
+
+  // Price which can be a number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark, e.g. 100.00 USD.
+  string price = 5;
+
+  // Sale price which can be number followed by the alphabetic currency code,
+  // ISO 4217 standard. Use '.' as the decimal mark, e.g. 80.00 USD.
+  // Must be less than the 'price' field.
+  string sale_price = 6;
+
+  // Image URL, e.g. http://www.example.com/image.png. The image will not be
+  // uploaded as image asset.
+  string image_url = 7;
+
+  // Address which can be specified in one of the following formats.
+  // (1) City, state, code, country, e.g. Mountain View, CA, USA.
+  // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043.
+  // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403.
+  string address = 8;
+
+  // Category, e.g. Food.
+  string category = 9;
+
+  // Contextual keywords, e.g. Save groceries coupons.
+  repeated string contextual_keywords = 10;
+
+  // Formatted price which can be any characters. If set, this attribute will be
+  // used instead of 'price', e.g. Starting at $100.00.
+  string formatted_price = 11;
+
+  // Formatted sale price which can be any characters. If set, this attribute
+  // will be used instead of 'sale price', e.g. On sale for $80.00.
+  string formatted_sale_price = 12;
+
+  // Android deep link, e.g.
+  // android-app://com.example.android/http/example.com/gizmos?1234.
+  string android_app_link = 13;
+
+  // Similar deal IDs, e.g. 1275.
+  repeated string similar_deal_ids = 14;
+
+  // iOS deep link, e.g. exampleApp://content/page.
+  string ios_app_link = 15;
+
+  // iOS app store ID. This is used to check if the user has the app installed
+  // on their device before deep linking. If this field is set, then the
+  // ios_app_link field must also be present.
+  int64 ios_app_store_id = 16;
+}
+
+// A dynamic jobs asset.
+message DynamicJobsAsset {
+  // Required. Job ID which can be any sequence of letters and digits, and must be
+  // unique and match the values of remarketing tag. Required.
+  string job_id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Location ID which can be any sequence of letters and digits. The ID
+  // sequence (job ID + location ID) must be unique.
+  string location_id = 2;
+
+  // Required. Job title, e.g. Software engineer. Required.
+  string job_title = 3 [(google.api.field_behavior) = REQUIRED];
+
+  // Job subtitle, e.g. Level II.
+  string job_subtitle = 4;
+
+  // Description, e.g. Apply your technical skills.
+  string description = 5;
+
+  // Image URL, e.g. http://www.example.com/image.png. The image will not be
+  // uploaded as image asset.
+  string image_url = 6;
+
+  // Job category, e.g. Technical.
+  string job_category = 7;
+
+  // Contextual keywords, e.g. Software engineering job.
+  repeated string contextual_keywords = 8;
+
+  // Address which can be specified in one of the following formats.
+  // (1) City, state, code, country, e.g. Mountain View, CA, USA.
+  // (2) Full address, e.g. 123 Boulevard St, Mountain View, CA 94043.
+  // (3) Latitude-longitude in the DDD format, e.g. 41.40338, 2.17403.
+  string address = 9;
+
+  // Salary, e.g. $100,000.
+  string salary = 10;
+
+  // Android deep link, e.g.
+  // android-app://com.example.android/http/example.com/gizmos?1234.
+  string android_app_link = 11;
+
+  // Similar job IDs, e.g. 1275.
+  repeated string similar_job_ids = 12;
+
+  // iOS deep link, e.g. exampleApp://content/page.
+  string ios_app_link = 13;
+
+  // iOS app store ID. This is used to check if the user has the app installed
+  // on their device before deep linking. If this field is set, then the
+  // ios_app_link field must also be present.
+  int64 ios_app_store_id = 14;
 }