extensions.proto 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. // Copyright 2022 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. syntax = "proto3";
  15. package google.ads.googleads.v10.common;
  16. import "google/ads/googleads/v10/common/custom_parameter.proto";
  17. import "google/ads/googleads/v10/common/feed_common.proto";
  18. import "google/ads/googleads/v10/enums/app_store.proto";
  19. import "google/ads/googleads/v10/enums/call_conversion_reporting_state.proto";
  20. import "google/ads/googleads/v10/enums/price_extension_price_qualifier.proto";
  21. import "google/ads/googleads/v10/enums/price_extension_price_unit.proto";
  22. import "google/ads/googleads/v10/enums/price_extension_type.proto";
  23. import "google/ads/googleads/v10/enums/promotion_extension_discount_modifier.proto";
  24. import "google/ads/googleads/v10/enums/promotion_extension_occasion.proto";
  25. import "google/api/field_behavior.proto";
  26. import "google/api/resource.proto";
  27. option csharp_namespace = "Google.Ads.GoogleAds.V10.Common";
  28. option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/common;common";
  29. option java_multiple_files = true;
  30. option java_outer_classname = "ExtensionsProto";
  31. option java_package = "com.google.ads.googleads.v10.common";
  32. option objc_class_prefix = "GAA";
  33. option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Common";
  34. option ruby_package = "Google::Ads::GoogleAds::V10::Common";
  35. // Proto file describing extension types.
  36. // Represents an App extension.
  37. message AppFeedItem {
  38. // The visible text displayed when the link is rendered in an ad.
  39. // This string must not be empty, and the length of this string should
  40. // be between 1 and 25, inclusive.
  41. optional string link_text = 9;
  42. // The store-specific ID for the target application.
  43. // This string must not be empty.
  44. optional string app_id = 10;
  45. // The application store that the target application belongs to.
  46. // This field is required.
  47. google.ads.googleads.v10.enums.AppStoreEnum.AppStore app_store = 3;
  48. // A list of possible final URLs after all cross domain redirects.
  49. // This list must not be empty.
  50. repeated string final_urls = 11;
  51. // A list of possible final mobile URLs after all cross domain redirects.
  52. repeated string final_mobile_urls = 12;
  53. // URL template for constructing a tracking URL. Default value is "{lpurl}".
  54. optional string tracking_url_template = 13;
  55. // A list of mappings to be used for substituting URL custom parameter tags in
  56. // the tracking_url_template, final_urls, and/or final_mobile_urls.
  57. repeated CustomParameter url_custom_parameters = 7;
  58. // URL template for appending params to landing page URLs served with parallel
  59. // tracking.
  60. optional string final_url_suffix = 14;
  61. }
  62. // Represents a Call extension.
  63. message CallFeedItem {
  64. // The advertiser's phone number to append to the ad.
  65. // This string must not be empty.
  66. optional string phone_number = 7;
  67. // Uppercase two-letter country code of the advertiser's phone number.
  68. // This string must not be empty.
  69. optional string country_code = 8;
  70. // Indicates whether call tracking is enabled. By default, call tracking is
  71. // not enabled.
  72. optional bool call_tracking_enabled = 9;
  73. // The conversion action to attribute a call conversion to. If not set a
  74. // default conversion action is used. This field only has effect if
  75. // call_tracking_enabled is set to true. Otherwise this field is ignored.
  76. optional string call_conversion_action = 10;
  77. // If true, disable call conversion tracking. call_conversion_action should
  78. // not be set if this is true. Optional.
  79. optional bool call_conversion_tracking_disabled = 11;
  80. // Enum value that indicates whether this call extension uses its own call
  81. // conversion setting (or just have call conversion disabled), or following
  82. // the account level setting.
  83. google.ads.googleads.v10.enums.CallConversionReportingStateEnum.CallConversionReportingState call_conversion_reporting_state = 6;
  84. }
  85. // Represents a callout extension.
  86. message CalloutFeedItem {
  87. // The callout text.
  88. // The length of this string should be between 1 and 25, inclusive.
  89. optional string callout_text = 2;
  90. }
  91. // Represents a location extension.
  92. message LocationFeedItem {
  93. // The name of the business.
  94. optional string business_name = 9;
  95. // Line 1 of the business address.
  96. optional string address_line_1 = 10;
  97. // Line 2 of the business address.
  98. optional string address_line_2 = 11;
  99. // City of the business address.
  100. optional string city = 12;
  101. // Province of the business address.
  102. optional string province = 13;
  103. // Postal code of the business address.
  104. optional string postal_code = 14;
  105. // Country code of the business address.
  106. optional string country_code = 15;
  107. // Phone number of the business.
  108. optional string phone_number = 16;
  109. }
  110. // Represents an affiliate location extension.
  111. message AffiliateLocationFeedItem {
  112. // The name of the business.
  113. optional string business_name = 11;
  114. // Line 1 of the business address.
  115. optional string address_line_1 = 12;
  116. // Line 2 of the business address.
  117. optional string address_line_2 = 13;
  118. // City of the business address.
  119. optional string city = 14;
  120. // Province of the business address.
  121. optional string province = 15;
  122. // Postal code of the business address.
  123. optional string postal_code = 16;
  124. // Country code of the business address.
  125. optional string country_code = 17;
  126. // Phone number of the business.
  127. optional string phone_number = 18;
  128. // Id of the retail chain that is advertised as a seller of your product.
  129. optional int64 chain_id = 19;
  130. // Name of chain.
  131. optional string chain_name = 20;
  132. }
  133. // An extension that users can click on to send a text message to the
  134. // advertiser.
  135. message TextMessageFeedItem {
  136. // The business name to prepend to the message text.
  137. // This field is required.
  138. optional string business_name = 6;
  139. // Uppercase two-letter country code of the advertiser's phone number.
  140. // This field is required.
  141. optional string country_code = 7;
  142. // The advertiser's phone number the message will be sent to. Required.
  143. optional string phone_number = 8;
  144. // The text to show in the ad.
  145. // This field is required.
  146. optional string text = 9;
  147. // The message extension_text populated in the messaging app.
  148. optional string extension_text = 10;
  149. }
  150. // Represents a Price extension.
  151. message PriceFeedItem {
  152. // Price extension type of this extension.
  153. google.ads.googleads.v10.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1;
  154. // Price qualifier for all offers of this price extension.
  155. google.ads.googleads.v10.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier price_qualifier = 2;
  156. // Tracking URL template for all offers of this price extension.
  157. optional string tracking_url_template = 7;
  158. // The code of the language used for this price extension.
  159. optional string language_code = 8;
  160. // The price offerings in this price extension.
  161. repeated PriceOffer price_offerings = 5;
  162. // Tracking URL template for all offers of this price extension.
  163. optional string final_url_suffix = 9;
  164. }
  165. // Represents one price offer in a price extension.
  166. message PriceOffer {
  167. // Header text of this offer.
  168. optional string header = 7;
  169. // Description text of this offer.
  170. optional string description = 8;
  171. // Price value of this offer.
  172. Money price = 3;
  173. // Price unit for this offer.
  174. google.ads.googleads.v10.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit unit = 4;
  175. // A list of possible final URLs after all cross domain redirects.
  176. repeated string final_urls = 9;
  177. // A list of possible final mobile URLs after all cross domain redirects.
  178. repeated string final_mobile_urls = 10;
  179. }
  180. // Represents a Promotion extension.
  181. message PromotionFeedItem {
  182. // A freeform description of what the promotion is targeting.
  183. // This field is required.
  184. optional string promotion_target = 16;
  185. // Enum that modifies the qualification of the discount.
  186. google.ads.googleads.v10.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier discount_modifier = 2;
  187. // Start date of when the promotion is eligible to be redeemed.
  188. optional string promotion_start_date = 19;
  189. // Last date when the promotion is eligible to be redeemed.
  190. optional string promotion_end_date = 20;
  191. // The occasion the promotion was intended for.
  192. // If an occasion is set, the redemption window will need to fall within
  193. // the date range associated with the occasion.
  194. google.ads.googleads.v10.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion occasion = 9;
  195. // A list of possible final URLs after all cross domain redirects.
  196. // This field is required.
  197. repeated string final_urls = 21;
  198. // A list of possible final mobile URLs after all cross domain redirects.
  199. repeated string final_mobile_urls = 22;
  200. // URL template for constructing a tracking URL.
  201. optional string tracking_url_template = 23;
  202. // A list of mappings to be used for substituting URL custom parameter tags in
  203. // the tracking_url_template, final_urls, and/or final_mobile_urls.
  204. repeated CustomParameter url_custom_parameters = 13;
  205. // URL template for appending params to landing page URLs served with parallel
  206. // tracking.
  207. optional string final_url_suffix = 24;
  208. // The language of the promotion.
  209. // Represented as BCP 47 language tag.
  210. optional string language_code = 25;
  211. // Discount type, can be percentage off or amount off.
  212. oneof discount_type {
  213. // Percentage off discount in the promotion in micros.
  214. // One million is equivalent to one percent.
  215. // Either this or money_off_amount is required.
  216. int64 percent_off = 17;
  217. // Money amount off for discount in the promotion.
  218. // Either this or percent_off is required.
  219. Money money_amount_off = 4;
  220. }
  221. // Promotion trigger. Can be by promotion code or promo by eligible order
  222. // amount.
  223. oneof promotion_trigger {
  224. // A code the user should use in order to be eligible for the promotion.
  225. string promotion_code = 18;
  226. // The amount the total order needs to be for the user to be eligible for
  227. // the promotion.
  228. Money orders_over_amount = 6;
  229. }
  230. }
  231. // Represents a structured snippet extension.
  232. message StructuredSnippetFeedItem {
  233. // The header of the snippet.
  234. // This string must not be empty.
  235. optional string header = 3;
  236. // The values in the snippet.
  237. // The maximum size of this collection is 10.
  238. repeated string values = 4;
  239. }
  240. // Represents a sitelink extension.
  241. message SitelinkFeedItem {
  242. // URL display text for the sitelink.
  243. // The length of this string should be between 1 and 25, inclusive.
  244. optional string link_text = 9;
  245. // First line of the description for the sitelink.
  246. // If this value is set, line2 must also be set.
  247. // The length of this string should be between 0 and 35, inclusive.
  248. optional string line1 = 10;
  249. // Second line of the description for the sitelink.
  250. // If this value is set, line1 must also be set.
  251. // The length of this string should be between 0 and 35, inclusive.
  252. optional string line2 = 11;
  253. // A list of possible final URLs after all cross domain redirects.
  254. repeated string final_urls = 12;
  255. // A list of possible final mobile URLs after all cross domain redirects.
  256. repeated string final_mobile_urls = 13;
  257. // URL template for constructing a tracking URL.
  258. optional string tracking_url_template = 14;
  259. // A list of mappings to be used for substituting URL custom parameter tags in
  260. // the tracking_url_template, final_urls, and/or final_mobile_urls.
  261. repeated CustomParameter url_custom_parameters = 7;
  262. // Final URL suffix to be appended to landing page URLs served with
  263. // parallel tracking.
  264. optional string final_url_suffix = 15;
  265. }
  266. // Represents a hotel callout extension.
  267. message HotelCalloutFeedItem {
  268. // The callout text.
  269. // The length of this string should be between 1 and 25, inclusive.
  270. optional string text = 3;
  271. // The language of the hotel callout text.
  272. // IETF BCP 47 compliant language code.
  273. optional string language_code = 4;
  274. }
  275. // Represents an advertiser provided image extension.
  276. message ImageFeedItem {
  277. // Required. Resource name of the image asset.
  278. string image_asset = 1 [
  279. (google.api.field_behavior) = REQUIRED,
  280. (google.api.resource_reference) = {
  281. type: "googleads.googleapis.com/Asset"
  282. }
  283. ];
  284. }