You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

760 lines
33 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/ads/googleads/v0/common/bidding.proto
  3. package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common"
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import wrappers "github.com/golang/protobuf/ptypes/wrappers"
  8. import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums"
  9. // Reference imports to suppress errors if they are not otherwise used.
  10. var _ = proto.Marshal
  11. var _ = fmt.Errorf
  12. var _ = math.Inf
  13. // This is a compile-time assertion to ensure that this generated file
  14. // is compatible with the proto package it is being compiled against.
  15. // A compilation error at this line likely means your copy of the
  16. // proto package needs to be updated.
  17. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  18. // An automated bidding strategy that raises bids for clicks
  19. // that seem more likely to lead to a conversion and lowers
  20. // them for clicks where they seem less likely.
  21. type EnhancedCpc struct {
  22. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  23. XXX_unrecognized []byte `json:"-"`
  24. XXX_sizecache int32 `json:"-"`
  25. }
  26. func (m *EnhancedCpc) Reset() { *m = EnhancedCpc{} }
  27. func (m *EnhancedCpc) String() string { return proto.CompactTextString(m) }
  28. func (*EnhancedCpc) ProtoMessage() {}
  29. func (*EnhancedCpc) Descriptor() ([]byte, []int) {
  30. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{0}
  31. }
  32. func (m *EnhancedCpc) XXX_Unmarshal(b []byte) error {
  33. return xxx_messageInfo_EnhancedCpc.Unmarshal(m, b)
  34. }
  35. func (m *EnhancedCpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  36. return xxx_messageInfo_EnhancedCpc.Marshal(b, m, deterministic)
  37. }
  38. func (dst *EnhancedCpc) XXX_Merge(src proto.Message) {
  39. xxx_messageInfo_EnhancedCpc.Merge(dst, src)
  40. }
  41. func (m *EnhancedCpc) XXX_Size() int {
  42. return xxx_messageInfo_EnhancedCpc.Size(m)
  43. }
  44. func (m *EnhancedCpc) XXX_DiscardUnknown() {
  45. xxx_messageInfo_EnhancedCpc.DiscardUnknown(m)
  46. }
  47. var xxx_messageInfo_EnhancedCpc proto.InternalMessageInfo
  48. // Manual click-based bidding where user pays per click.
  49. type ManualCpc struct {
  50. // Whether bids are to be enhanced based on conversion optimizer data.
  51. EnhancedCpcEnabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enhanced_cpc_enabled,json=enhancedCpcEnabled,proto3" json:"enhanced_cpc_enabled,omitempty"`
  52. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  53. XXX_unrecognized []byte `json:"-"`
  54. XXX_sizecache int32 `json:"-"`
  55. }
  56. func (m *ManualCpc) Reset() { *m = ManualCpc{} }
  57. func (m *ManualCpc) String() string { return proto.CompactTextString(m) }
  58. func (*ManualCpc) ProtoMessage() {}
  59. func (*ManualCpc) Descriptor() ([]byte, []int) {
  60. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{1}
  61. }
  62. func (m *ManualCpc) XXX_Unmarshal(b []byte) error {
  63. return xxx_messageInfo_ManualCpc.Unmarshal(m, b)
  64. }
  65. func (m *ManualCpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  66. return xxx_messageInfo_ManualCpc.Marshal(b, m, deterministic)
  67. }
  68. func (dst *ManualCpc) XXX_Merge(src proto.Message) {
  69. xxx_messageInfo_ManualCpc.Merge(dst, src)
  70. }
  71. func (m *ManualCpc) XXX_Size() int {
  72. return xxx_messageInfo_ManualCpc.Size(m)
  73. }
  74. func (m *ManualCpc) XXX_DiscardUnknown() {
  75. xxx_messageInfo_ManualCpc.DiscardUnknown(m)
  76. }
  77. var xxx_messageInfo_ManualCpc proto.InternalMessageInfo
  78. func (m *ManualCpc) GetEnhancedCpcEnabled() *wrappers.BoolValue {
  79. if m != nil {
  80. return m.EnhancedCpcEnabled
  81. }
  82. return nil
  83. }
  84. // Manual impression-based bidding where user pays per thousand impressions.
  85. type ManualCpm struct {
  86. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  87. XXX_unrecognized []byte `json:"-"`
  88. XXX_sizecache int32 `json:"-"`
  89. }
  90. func (m *ManualCpm) Reset() { *m = ManualCpm{} }
  91. func (m *ManualCpm) String() string { return proto.CompactTextString(m) }
  92. func (*ManualCpm) ProtoMessage() {}
  93. func (*ManualCpm) Descriptor() ([]byte, []int) {
  94. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{2}
  95. }
  96. func (m *ManualCpm) XXX_Unmarshal(b []byte) error {
  97. return xxx_messageInfo_ManualCpm.Unmarshal(m, b)
  98. }
  99. func (m *ManualCpm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  100. return xxx_messageInfo_ManualCpm.Marshal(b, m, deterministic)
  101. }
  102. func (dst *ManualCpm) XXX_Merge(src proto.Message) {
  103. xxx_messageInfo_ManualCpm.Merge(dst, src)
  104. }
  105. func (m *ManualCpm) XXX_Size() int {
  106. return xxx_messageInfo_ManualCpm.Size(m)
  107. }
  108. func (m *ManualCpm) XXX_DiscardUnknown() {
  109. xxx_messageInfo_ManualCpm.DiscardUnknown(m)
  110. }
  111. var xxx_messageInfo_ManualCpm proto.InternalMessageInfo
  112. // View based bidding where user pays per video view.
  113. type ManualCpv struct {
  114. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  115. XXX_unrecognized []byte `json:"-"`
  116. XXX_sizecache int32 `json:"-"`
  117. }
  118. func (m *ManualCpv) Reset() { *m = ManualCpv{} }
  119. func (m *ManualCpv) String() string { return proto.CompactTextString(m) }
  120. func (*ManualCpv) ProtoMessage() {}
  121. func (*ManualCpv) Descriptor() ([]byte, []int) {
  122. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{3}
  123. }
  124. func (m *ManualCpv) XXX_Unmarshal(b []byte) error {
  125. return xxx_messageInfo_ManualCpv.Unmarshal(m, b)
  126. }
  127. func (m *ManualCpv) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  128. return xxx_messageInfo_ManualCpv.Marshal(b, m, deterministic)
  129. }
  130. func (dst *ManualCpv) XXX_Merge(src proto.Message) {
  131. xxx_messageInfo_ManualCpv.Merge(dst, src)
  132. }
  133. func (m *ManualCpv) XXX_Size() int {
  134. return xxx_messageInfo_ManualCpv.Size(m)
  135. }
  136. func (m *ManualCpv) XXX_DiscardUnknown() {
  137. xxx_messageInfo_ManualCpv.DiscardUnknown(m)
  138. }
  139. var xxx_messageInfo_ManualCpv proto.InternalMessageInfo
  140. // An automated bidding strategy that sets bids to help get the most conversions
  141. // for your campaign while spending your budget.
  142. type MaximizeConversions struct {
  143. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  144. XXX_unrecognized []byte `json:"-"`
  145. XXX_sizecache int32 `json:"-"`
  146. }
  147. func (m *MaximizeConversions) Reset() { *m = MaximizeConversions{} }
  148. func (m *MaximizeConversions) String() string { return proto.CompactTextString(m) }
  149. func (*MaximizeConversions) ProtoMessage() {}
  150. func (*MaximizeConversions) Descriptor() ([]byte, []int) {
  151. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{4}
  152. }
  153. func (m *MaximizeConversions) XXX_Unmarshal(b []byte) error {
  154. return xxx_messageInfo_MaximizeConversions.Unmarshal(m, b)
  155. }
  156. func (m *MaximizeConversions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  157. return xxx_messageInfo_MaximizeConversions.Marshal(b, m, deterministic)
  158. }
  159. func (dst *MaximizeConversions) XXX_Merge(src proto.Message) {
  160. xxx_messageInfo_MaximizeConversions.Merge(dst, src)
  161. }
  162. func (m *MaximizeConversions) XXX_Size() int {
  163. return xxx_messageInfo_MaximizeConversions.Size(m)
  164. }
  165. func (m *MaximizeConversions) XXX_DiscardUnknown() {
  166. xxx_messageInfo_MaximizeConversions.DiscardUnknown(m)
  167. }
  168. var xxx_messageInfo_MaximizeConversions proto.InternalMessageInfo
  169. // An automated bidding strategy which tries to maximize conversion value
  170. // given a daily budget.
  171. type MaximizeConversionValue struct {
  172. // The target return on ad spend (ROAS) option. If set, the bid strategy will
  173. // maximize revenue while averaging the target return on ad spend. If the
  174. // target ROAS is high, the bid strategy may not be able to spend the full
  175. // budget. If the target ROAS is not set, the bid strategy will aim to
  176. // achieve the highest possible ROAS for the budget.
  177. TargetRoas *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=target_roas,json=targetRoas,proto3" json:"target_roas,omitempty"`
  178. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  179. XXX_unrecognized []byte `json:"-"`
  180. XXX_sizecache int32 `json:"-"`
  181. }
  182. func (m *MaximizeConversionValue) Reset() { *m = MaximizeConversionValue{} }
  183. func (m *MaximizeConversionValue) String() string { return proto.CompactTextString(m) }
  184. func (*MaximizeConversionValue) ProtoMessage() {}
  185. func (*MaximizeConversionValue) Descriptor() ([]byte, []int) {
  186. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{5}
  187. }
  188. func (m *MaximizeConversionValue) XXX_Unmarshal(b []byte) error {
  189. return xxx_messageInfo_MaximizeConversionValue.Unmarshal(m, b)
  190. }
  191. func (m *MaximizeConversionValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  192. return xxx_messageInfo_MaximizeConversionValue.Marshal(b, m, deterministic)
  193. }
  194. func (dst *MaximizeConversionValue) XXX_Merge(src proto.Message) {
  195. xxx_messageInfo_MaximizeConversionValue.Merge(dst, src)
  196. }
  197. func (m *MaximizeConversionValue) XXX_Size() int {
  198. return xxx_messageInfo_MaximizeConversionValue.Size(m)
  199. }
  200. func (m *MaximizeConversionValue) XXX_DiscardUnknown() {
  201. xxx_messageInfo_MaximizeConversionValue.DiscardUnknown(m)
  202. }
  203. var xxx_messageInfo_MaximizeConversionValue proto.InternalMessageInfo
  204. func (m *MaximizeConversionValue) GetTargetRoas() *wrappers.DoubleValue {
  205. if m != nil {
  206. return m.TargetRoas
  207. }
  208. return nil
  209. }
  210. // An automated bidding strategy which sets CPC bids to target impressions on
  211. // page one, or page one promoted slots on google.com.
  212. type PageOnePromoted struct {
  213. // The strategy goal of where impressions are desired to be shown on
  214. // search result pages.
  215. StrategyGoal enums.PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal `protobuf:"varint,1,opt,name=strategy_goal,json=strategyGoal,proto3,enum=google.ads.googleads.v0.enums.PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal" json:"strategy_goal,omitempty"`
  216. // Maximum bid limit that can be set by the bid strategy.
  217. // The limit applies to all keywords managed by the strategy.
  218. CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"`
  219. // Bid multiplier to be applied to the relevant bid estimate (depending on
  220. // the `strategy_goal`) in determining a keyword's new CPC bid.
  221. BidModifier *wrappers.DoubleValue `protobuf:"bytes,3,opt,name=bid_modifier,json=bidModifier,proto3" json:"bid_modifier,omitempty"`
  222. // Whether the strategy should always follow bid estimate changes, or only
  223. // increase.
  224. // If false, always sets a keyword's new bid to the current bid estimate.
  225. // If true, only updates a keyword's bid if the current bid estimate is
  226. // greater than the current bid.
  227. OnlyRaiseCpcBids *wrappers.BoolValue `protobuf:"bytes,4,opt,name=only_raise_cpc_bids,json=onlyRaiseCpcBids,proto3" json:"only_raise_cpc_bids,omitempty"`
  228. // Whether the strategy is allowed to raise bids when the throttling
  229. // rate of the budget it is serving out of rises above a threshold.
  230. RaiseCpcBidWhenBudgetConstrained *wrappers.BoolValue `protobuf:"bytes,5,opt,name=raise_cpc_bid_when_budget_constrained,json=raiseCpcBidWhenBudgetConstrained,proto3" json:"raise_cpc_bid_when_budget_constrained,omitempty"`
  231. // Whether the strategy is allowed to raise bids on keywords with
  232. // lower-range quality scores.
  233. RaiseCpcBidWhenQualityScoreIsLow *wrappers.BoolValue `protobuf:"bytes,6,opt,name=raise_cpc_bid_when_quality_score_is_low,json=raiseCpcBidWhenQualityScoreIsLow,proto3" json:"raise_cpc_bid_when_quality_score_is_low,omitempty"`
  234. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  235. XXX_unrecognized []byte `json:"-"`
  236. XXX_sizecache int32 `json:"-"`
  237. }
  238. func (m *PageOnePromoted) Reset() { *m = PageOnePromoted{} }
  239. func (m *PageOnePromoted) String() string { return proto.CompactTextString(m) }
  240. func (*PageOnePromoted) ProtoMessage() {}
  241. func (*PageOnePromoted) Descriptor() ([]byte, []int) {
  242. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{6}
  243. }
  244. func (m *PageOnePromoted) XXX_Unmarshal(b []byte) error {
  245. return xxx_messageInfo_PageOnePromoted.Unmarshal(m, b)
  246. }
  247. func (m *PageOnePromoted) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  248. return xxx_messageInfo_PageOnePromoted.Marshal(b, m, deterministic)
  249. }
  250. func (dst *PageOnePromoted) XXX_Merge(src proto.Message) {
  251. xxx_messageInfo_PageOnePromoted.Merge(dst, src)
  252. }
  253. func (m *PageOnePromoted) XXX_Size() int {
  254. return xxx_messageInfo_PageOnePromoted.Size(m)
  255. }
  256. func (m *PageOnePromoted) XXX_DiscardUnknown() {
  257. xxx_messageInfo_PageOnePromoted.DiscardUnknown(m)
  258. }
  259. var xxx_messageInfo_PageOnePromoted proto.InternalMessageInfo
  260. func (m *PageOnePromoted) GetStrategyGoal() enums.PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal {
  261. if m != nil {
  262. return m.StrategyGoal
  263. }
  264. return enums.PageOnePromotedStrategyGoalEnum_UNSPECIFIED
  265. }
  266. func (m *PageOnePromoted) GetCpcBidCeilingMicros() *wrappers.Int64Value {
  267. if m != nil {
  268. return m.CpcBidCeilingMicros
  269. }
  270. return nil
  271. }
  272. func (m *PageOnePromoted) GetBidModifier() *wrappers.DoubleValue {
  273. if m != nil {
  274. return m.BidModifier
  275. }
  276. return nil
  277. }
  278. func (m *PageOnePromoted) GetOnlyRaiseCpcBids() *wrappers.BoolValue {
  279. if m != nil {
  280. return m.OnlyRaiseCpcBids
  281. }
  282. return nil
  283. }
  284. func (m *PageOnePromoted) GetRaiseCpcBidWhenBudgetConstrained() *wrappers.BoolValue {
  285. if m != nil {
  286. return m.RaiseCpcBidWhenBudgetConstrained
  287. }
  288. return nil
  289. }
  290. func (m *PageOnePromoted) GetRaiseCpcBidWhenQualityScoreIsLow() *wrappers.BoolValue {
  291. if m != nil {
  292. return m.RaiseCpcBidWhenQualityScoreIsLow
  293. }
  294. return nil
  295. }
  296. // An automated bid strategy that sets bids to help get as many conversions as
  297. // possible at the target cost-per-acquisition (CPA) you set.
  298. type TargetCpa struct {
  299. // Average CPA target.
  300. // This target should be greater than or equal to minimum billable unit based
  301. // on the currency for the account.
  302. TargetCpaMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=target_cpa_micros,json=targetCpaMicros,proto3" json:"target_cpa_micros,omitempty"`
  303. // Maximum bid limit that can be set by the bid strategy.
  304. // The limit applies to all keywords managed by the strategy.
  305. CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"`
  306. // Minimum bid limit that can be set by the bid strategy.
  307. // The limit applies to all keywords managed by the strategy.
  308. CpcBidFloorMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cpc_bid_floor_micros,json=cpcBidFloorMicros,proto3" json:"cpc_bid_floor_micros,omitempty"`
  309. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  310. XXX_unrecognized []byte `json:"-"`
  311. XXX_sizecache int32 `json:"-"`
  312. }
  313. func (m *TargetCpa) Reset() { *m = TargetCpa{} }
  314. func (m *TargetCpa) String() string { return proto.CompactTextString(m) }
  315. func (*TargetCpa) ProtoMessage() {}
  316. func (*TargetCpa) Descriptor() ([]byte, []int) {
  317. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{7}
  318. }
  319. func (m *TargetCpa) XXX_Unmarshal(b []byte) error {
  320. return xxx_messageInfo_TargetCpa.Unmarshal(m, b)
  321. }
  322. func (m *TargetCpa) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  323. return xxx_messageInfo_TargetCpa.Marshal(b, m, deterministic)
  324. }
  325. func (dst *TargetCpa) XXX_Merge(src proto.Message) {
  326. xxx_messageInfo_TargetCpa.Merge(dst, src)
  327. }
  328. func (m *TargetCpa) XXX_Size() int {
  329. return xxx_messageInfo_TargetCpa.Size(m)
  330. }
  331. func (m *TargetCpa) XXX_DiscardUnknown() {
  332. xxx_messageInfo_TargetCpa.DiscardUnknown(m)
  333. }
  334. var xxx_messageInfo_TargetCpa proto.InternalMessageInfo
  335. func (m *TargetCpa) GetTargetCpaMicros() *wrappers.Int64Value {
  336. if m != nil {
  337. return m.TargetCpaMicros
  338. }
  339. return nil
  340. }
  341. func (m *TargetCpa) GetCpcBidCeilingMicros() *wrappers.Int64Value {
  342. if m != nil {
  343. return m.CpcBidCeilingMicros
  344. }
  345. return nil
  346. }
  347. func (m *TargetCpa) GetCpcBidFloorMicros() *wrappers.Int64Value {
  348. if m != nil {
  349. return m.CpcBidFloorMicros
  350. }
  351. return nil
  352. }
  353. // Target CPM (cost per thousand impressions) is an automated bidding strategy
  354. // that sets bids to optimize performance given the target CPM you set.
  355. type TargetCpm struct {
  356. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  357. XXX_unrecognized []byte `json:"-"`
  358. XXX_sizecache int32 `json:"-"`
  359. }
  360. func (m *TargetCpm) Reset() { *m = TargetCpm{} }
  361. func (m *TargetCpm) String() string { return proto.CompactTextString(m) }
  362. func (*TargetCpm) ProtoMessage() {}
  363. func (*TargetCpm) Descriptor() ([]byte, []int) {
  364. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{8}
  365. }
  366. func (m *TargetCpm) XXX_Unmarshal(b []byte) error {
  367. return xxx_messageInfo_TargetCpm.Unmarshal(m, b)
  368. }
  369. func (m *TargetCpm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  370. return xxx_messageInfo_TargetCpm.Marshal(b, m, deterministic)
  371. }
  372. func (dst *TargetCpm) XXX_Merge(src proto.Message) {
  373. xxx_messageInfo_TargetCpm.Merge(dst, src)
  374. }
  375. func (m *TargetCpm) XXX_Size() int {
  376. return xxx_messageInfo_TargetCpm.Size(m)
  377. }
  378. func (m *TargetCpm) XXX_DiscardUnknown() {
  379. xxx_messageInfo_TargetCpm.DiscardUnknown(m)
  380. }
  381. var xxx_messageInfo_TargetCpm proto.InternalMessageInfo
  382. // An automated bidding strategy that sets bids based on the target fraction of
  383. // auctions where the advertiser should outrank a specific competitor.
  384. type TargetOutrankShare struct {
  385. // The target fraction of auctions where the advertiser should outrank the
  386. // competitor.
  387. // The advertiser outranks the competitor in an auction if either the
  388. // advertiser appears above the competitor in the search results, or appears
  389. // in the search results when the competitor does not.
  390. // Value must be between 1 and 1000000, inclusive.
  391. TargetOutrankShareMicros *wrappers.Int32Value `protobuf:"bytes,1,opt,name=target_outrank_share_micros,json=targetOutrankShareMicros,proto3" json:"target_outrank_share_micros,omitempty"`
  392. // Competitor's visible domain URL.
  393. CompetitorDomain *wrappers.StringValue `protobuf:"bytes,2,opt,name=competitor_domain,json=competitorDomain,proto3" json:"competitor_domain,omitempty"`
  394. // Maximum bid limit that can be set by the bid strategy.
  395. // The limit applies to all keywords managed by the strategy.
  396. CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"`
  397. // Whether the strategy should always follow bid estimate changes,
  398. // or only increase.
  399. // If false, always set a keyword's new bid to the current bid estimate.
  400. // If true, only updates a keyword's bid if the current bid estimate is
  401. // greater than the current bid.
  402. OnlyRaiseCpcBids *wrappers.BoolValue `protobuf:"bytes,4,opt,name=only_raise_cpc_bids,json=onlyRaiseCpcBids,proto3" json:"only_raise_cpc_bids,omitempty"`
  403. // Whether the strategy is allowed to raise bids on keywords with
  404. // lower-range quality scores.
  405. RaiseCpcBidWhenQualityScoreIsLow *wrappers.BoolValue `protobuf:"bytes,5,opt,name=raise_cpc_bid_when_quality_score_is_low,json=raiseCpcBidWhenQualityScoreIsLow,proto3" json:"raise_cpc_bid_when_quality_score_is_low,omitempty"`
  406. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  407. XXX_unrecognized []byte `json:"-"`
  408. XXX_sizecache int32 `json:"-"`
  409. }
  410. func (m *TargetOutrankShare) Reset() { *m = TargetOutrankShare{} }
  411. func (m *TargetOutrankShare) String() string { return proto.CompactTextString(m) }
  412. func (*TargetOutrankShare) ProtoMessage() {}
  413. func (*TargetOutrankShare) Descriptor() ([]byte, []int) {
  414. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{9}
  415. }
  416. func (m *TargetOutrankShare) XXX_Unmarshal(b []byte) error {
  417. return xxx_messageInfo_TargetOutrankShare.Unmarshal(m, b)
  418. }
  419. func (m *TargetOutrankShare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  420. return xxx_messageInfo_TargetOutrankShare.Marshal(b, m, deterministic)
  421. }
  422. func (dst *TargetOutrankShare) XXX_Merge(src proto.Message) {
  423. xxx_messageInfo_TargetOutrankShare.Merge(dst, src)
  424. }
  425. func (m *TargetOutrankShare) XXX_Size() int {
  426. return xxx_messageInfo_TargetOutrankShare.Size(m)
  427. }
  428. func (m *TargetOutrankShare) XXX_DiscardUnknown() {
  429. xxx_messageInfo_TargetOutrankShare.DiscardUnknown(m)
  430. }
  431. var xxx_messageInfo_TargetOutrankShare proto.InternalMessageInfo
  432. func (m *TargetOutrankShare) GetTargetOutrankShareMicros() *wrappers.Int32Value {
  433. if m != nil {
  434. return m.TargetOutrankShareMicros
  435. }
  436. return nil
  437. }
  438. func (m *TargetOutrankShare) GetCompetitorDomain() *wrappers.StringValue {
  439. if m != nil {
  440. return m.CompetitorDomain
  441. }
  442. return nil
  443. }
  444. func (m *TargetOutrankShare) GetCpcBidCeilingMicros() *wrappers.Int64Value {
  445. if m != nil {
  446. return m.CpcBidCeilingMicros
  447. }
  448. return nil
  449. }
  450. func (m *TargetOutrankShare) GetOnlyRaiseCpcBids() *wrappers.BoolValue {
  451. if m != nil {
  452. return m.OnlyRaiseCpcBids
  453. }
  454. return nil
  455. }
  456. func (m *TargetOutrankShare) GetRaiseCpcBidWhenQualityScoreIsLow() *wrappers.BoolValue {
  457. if m != nil {
  458. return m.RaiseCpcBidWhenQualityScoreIsLow
  459. }
  460. return nil
  461. }
  462. // An automated bidding strategy that helps you maximize revenue while
  463. // averaging a specific target return on ad spend (ROAS).
  464. type TargetRoas struct {
  465. // Required. The desired revenue (based on conversion data) per unit of spend.
  466. // Value must be between 0.01 and 1000.0, inclusive.
  467. TargetRoas *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=target_roas,json=targetRoas,proto3" json:"target_roas,omitempty"`
  468. // Maximum bid limit that can be set by the bid strategy.
  469. // The limit applies to all keywords managed by the strategy.
  470. CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"`
  471. // Minimum bid limit that can be set by the bid strategy.
  472. // The limit applies to all keywords managed by the strategy.
  473. CpcBidFloorMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cpc_bid_floor_micros,json=cpcBidFloorMicros,proto3" json:"cpc_bid_floor_micros,omitempty"`
  474. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  475. XXX_unrecognized []byte `json:"-"`
  476. XXX_sizecache int32 `json:"-"`
  477. }
  478. func (m *TargetRoas) Reset() { *m = TargetRoas{} }
  479. func (m *TargetRoas) String() string { return proto.CompactTextString(m) }
  480. func (*TargetRoas) ProtoMessage() {}
  481. func (*TargetRoas) Descriptor() ([]byte, []int) {
  482. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{10}
  483. }
  484. func (m *TargetRoas) XXX_Unmarshal(b []byte) error {
  485. return xxx_messageInfo_TargetRoas.Unmarshal(m, b)
  486. }
  487. func (m *TargetRoas) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  488. return xxx_messageInfo_TargetRoas.Marshal(b, m, deterministic)
  489. }
  490. func (dst *TargetRoas) XXX_Merge(src proto.Message) {
  491. xxx_messageInfo_TargetRoas.Merge(dst, src)
  492. }
  493. func (m *TargetRoas) XXX_Size() int {
  494. return xxx_messageInfo_TargetRoas.Size(m)
  495. }
  496. func (m *TargetRoas) XXX_DiscardUnknown() {
  497. xxx_messageInfo_TargetRoas.DiscardUnknown(m)
  498. }
  499. var xxx_messageInfo_TargetRoas proto.InternalMessageInfo
  500. func (m *TargetRoas) GetTargetRoas() *wrappers.DoubleValue {
  501. if m != nil {
  502. return m.TargetRoas
  503. }
  504. return nil
  505. }
  506. func (m *TargetRoas) GetCpcBidCeilingMicros() *wrappers.Int64Value {
  507. if m != nil {
  508. return m.CpcBidCeilingMicros
  509. }
  510. return nil
  511. }
  512. func (m *TargetRoas) GetCpcBidFloorMicros() *wrappers.Int64Value {
  513. if m != nil {
  514. return m.CpcBidFloorMicros
  515. }
  516. return nil
  517. }
  518. // An automated bid strategy that sets your bids to help get as many clicks
  519. // as possible within your budget.
  520. type TargetSpend struct {
  521. // The spend target under which to maximize clicks.
  522. // A TargetSpend bidder will attempt to spend the smaller of this value
  523. // or the natural throttling spend amount.
  524. // If not specified, the budget is used as the spend target.
  525. TargetSpendMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=target_spend_micros,json=targetSpendMicros,proto3" json:"target_spend_micros,omitempty"`
  526. // Maximum bid limit that can be set by the bid strategy.
  527. // The limit applies to all keywords managed by the strategy.
  528. CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"`
  529. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  530. XXX_unrecognized []byte `json:"-"`
  531. XXX_sizecache int32 `json:"-"`
  532. }
  533. func (m *TargetSpend) Reset() { *m = TargetSpend{} }
  534. func (m *TargetSpend) String() string { return proto.CompactTextString(m) }
  535. func (*TargetSpend) ProtoMessage() {}
  536. func (*TargetSpend) Descriptor() ([]byte, []int) {
  537. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{11}
  538. }
  539. func (m *TargetSpend) XXX_Unmarshal(b []byte) error {
  540. return xxx_messageInfo_TargetSpend.Unmarshal(m, b)
  541. }
  542. func (m *TargetSpend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  543. return xxx_messageInfo_TargetSpend.Marshal(b, m, deterministic)
  544. }
  545. func (dst *TargetSpend) XXX_Merge(src proto.Message) {
  546. xxx_messageInfo_TargetSpend.Merge(dst, src)
  547. }
  548. func (m *TargetSpend) XXX_Size() int {
  549. return xxx_messageInfo_TargetSpend.Size(m)
  550. }
  551. func (m *TargetSpend) XXX_DiscardUnknown() {
  552. xxx_messageInfo_TargetSpend.DiscardUnknown(m)
  553. }
  554. var xxx_messageInfo_TargetSpend proto.InternalMessageInfo
  555. func (m *TargetSpend) GetTargetSpendMicros() *wrappers.Int64Value {
  556. if m != nil {
  557. return m.TargetSpendMicros
  558. }
  559. return nil
  560. }
  561. func (m *TargetSpend) GetCpcBidCeilingMicros() *wrappers.Int64Value {
  562. if m != nil {
  563. return m.CpcBidCeilingMicros
  564. }
  565. return nil
  566. }
  567. // A bidding strategy where bids are a fraction of the advertised price for
  568. // some good or service.
  569. type PercentCpc struct {
  570. // Maximum bid limit that can be set by the bid strategy. This is
  571. // an optional field entered by the advertiser and specified in local micros.
  572. // Note: A zero value is interpreted in the same way as having bid_ceiling
  573. // undefined.
  574. CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"`
  575. // Adjusts the bid for each auction upward or downward, depending on the
  576. // likelihood of a conversion. Individual bids may exceed
  577. // cpc_bid_ceiling_micros, but the average bid amount for a campaign should
  578. // not.
  579. EnhancedCpcEnabled *wrappers.BoolValue `protobuf:"bytes,2,opt,name=enhanced_cpc_enabled,json=enhancedCpcEnabled,proto3" json:"enhanced_cpc_enabled,omitempty"`
  580. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  581. XXX_unrecognized []byte `json:"-"`
  582. XXX_sizecache int32 `json:"-"`
  583. }
  584. func (m *PercentCpc) Reset() { *m = PercentCpc{} }
  585. func (m *PercentCpc) String() string { return proto.CompactTextString(m) }
  586. func (*PercentCpc) ProtoMessage() {}
  587. func (*PercentCpc) Descriptor() ([]byte, []int) {
  588. return fileDescriptor_bidding_0c8c284ee3a7b4a4, []int{12}
  589. }
  590. func (m *PercentCpc) XXX_Unmarshal(b []byte) error {
  591. return xxx_messageInfo_PercentCpc.Unmarshal(m, b)
  592. }
  593. func (m *PercentCpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  594. return xxx_messageInfo_PercentCpc.Marshal(b, m, deterministic)
  595. }
  596. func (dst *PercentCpc) XXX_Merge(src proto.Message) {
  597. xxx_messageInfo_PercentCpc.Merge(dst, src)
  598. }
  599. func (m *PercentCpc) XXX_Size() int {
  600. return xxx_messageInfo_PercentCpc.Size(m)
  601. }
  602. func (m *PercentCpc) XXX_DiscardUnknown() {
  603. xxx_messageInfo_PercentCpc.DiscardUnknown(m)
  604. }
  605. var xxx_messageInfo_PercentCpc proto.InternalMessageInfo
  606. func (m *PercentCpc) GetCpcBidCeilingMicros() *wrappers.Int64Value {
  607. if m != nil {
  608. return m.CpcBidCeilingMicros
  609. }
  610. return nil
  611. }
  612. func (m *PercentCpc) GetEnhancedCpcEnabled() *wrappers.BoolValue {
  613. if m != nil {
  614. return m.EnhancedCpcEnabled
  615. }
  616. return nil
  617. }
  618. func init() {
  619. proto.RegisterType((*EnhancedCpc)(nil), "google.ads.googleads.v0.common.EnhancedCpc")
  620. proto.RegisterType((*ManualCpc)(nil), "google.ads.googleads.v0.common.ManualCpc")
  621. proto.RegisterType((*ManualCpm)(nil), "google.ads.googleads.v0.common.ManualCpm")
  622. proto.RegisterType((*ManualCpv)(nil), "google.ads.googleads.v0.common.ManualCpv")
  623. proto.RegisterType((*MaximizeConversions)(nil), "google.ads.googleads.v0.common.MaximizeConversions")
  624. proto.RegisterType((*MaximizeConversionValue)(nil), "google.ads.googleads.v0.common.MaximizeConversionValue")
  625. proto.RegisterType((*PageOnePromoted)(nil), "google.ads.googleads.v0.common.PageOnePromoted")
  626. proto.RegisterType((*TargetCpa)(nil), "google.ads.googleads.v0.common.TargetCpa")
  627. proto.RegisterType((*TargetCpm)(nil), "google.ads.googleads.v0.common.TargetCpm")
  628. proto.RegisterType((*TargetOutrankShare)(nil), "google.ads.googleads.v0.common.TargetOutrankShare")
  629. proto.RegisterType((*TargetRoas)(nil), "google.ads.googleads.v0.common.TargetRoas")
  630. proto.RegisterType((*TargetSpend)(nil), "google.ads.googleads.v0.common.TargetSpend")
  631. proto.RegisterType((*PercentCpc)(nil), "google.ads.googleads.v0.common.PercentCpc")
  632. }
  633. func init() {
  634. proto.RegisterFile("google/ads/googleads/v0/common/bidding.proto", fileDescriptor_bidding_0c8c284ee3a7b4a4)
  635. }
  636. var fileDescriptor_bidding_0c8c284ee3a7b4a4 = []byte{
  637. // 831 bytes of a gzipped FileDescriptorProto
  638. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0x6f, 0x6b, 0x1c, 0x45,
  639. 0x18, 0xc0, 0xd9, 0xbb, 0xb6, 0xd0, 0xb9, 0xd4, 0x9a, 0x4d, 0xd5, 0x23, 0x95, 0x52, 0x16, 0x44,
  640. 0x5f, 0xc8, 0xde, 0x91, 0x8a, 0x2f, 0x4e, 0x44, 0xee, 0x36, 0x31, 0x04, 0x13, 0x7a, 0xe6, 0x4a,
  641. 0xd4, 0x10, 0x18, 0x66, 0x67, 0x9e, 0x6c, 0x86, 0xee, 0xce, 0xb3, 0xce, 0xec, 0x26, 0xc6, 0x37,
  642. 0x7e, 0x17, 0x5f, 0x8a, 0xdf, 0x43, 0x10, 0xbf, 0x87, 0xa0, 0x6f, 0xfd, 0x00, 0x32, 0x3b, 0xb3,
  643. 0xb9, 0xd6, 0x6b, 0x92, 0x26, 0x46, 0xf0, 0xd5, 0xce, 0x9f, 0xe7, 0xf9, 0x3d, 0x7f, 0x67, 0x67,
  644. 0xc8, 0x87, 0x19, 0x62, 0x96, 0xc3, 0x80, 0x09, 0x33, 0x70, 0x43, 0x3b, 0x3a, 0x1e, 0x0e, 0x38,
  645. 0x16, 0x05, 0xaa, 0x41, 0x2a, 0x85, 0x90, 0x2a, 0x8b, 0x4b, 0x8d, 0x15, 0x86, 0x8f, 0x9c, 0x48,
  646. 0xcc, 0x84, 0x89, 0xcf, 0xa4, 0xe3, 0xe3, 0x61, 0xec, 0xa4, 0x57, 0x93, 0xf3, 0x68, 0xa0, 0xea,
  647. 0xc2, 0x0c, 0x4a, 0x96, 0x01, 0x45, 0x05, 0xb4, 0xd4, 0x58, 0x60, 0x05, 0x82, 0x9a, 0x4a, 0xb3,
  648. 0x0a, 0xb2, 0x53, 0x9a, 0x21, 0xcb, 0x9d, 0x91, 0x55, 0x6f, 0x64, 0xd0, 0xcc, 0xd2, 0xfa, 0x70,
  649. 0x70, 0xa2, 0x59, 0x59, 0x82, 0x36, 0x6e, 0x3f, 0xba, 0x47, 0x7a, 0x1b, 0xea, 0x88, 0x29, 0x0e,
  650. 0x22, 0x29, 0x79, 0xf4, 0x0d, 0xb9, 0xbb, 0xc3, 0x54, 0xcd, 0xf2, 0xa4, 0xe4, 0xe1, 0x36, 0x79,
  651. 0x00, 0x7e, 0x8f, 0xf2, 0x92, 0x53, 0x50, 0x2c, 0xcd, 0x41, 0xf4, 0x83, 0xc7, 0xc1, 0x07, 0xbd,
  652. 0xb5, 0x55, 0xef, 0x74, 0xdc, 0xa2, 0xe3, 0x09, 0x62, 0xbe, 0xc7, 0xf2, 0x1a, 0x76, 0x43, 0x98,
  653. 0x33, 0x37, 0x9c, 0x56, 0xd4, 0x9b, 0xa3, 0x8b, 0x17, 0x27, 0xc7, 0xd1, 0x5b, 0x64, 0x65, 0x87,
  654. 0x7d, 0x27, 0x0b, 0xf9, 0x3d, 0x24, 0xa8, 0x8e, 0x41, 0x1b, 0x89, 0xca, 0x44, 0x5f, 0x93, 0x77,
  655. 0x16, 0x97, 0x1b, 0x7e, 0xf8, 0x29, 0xe9, 0x55, 0x4c, 0x67, 0x50, 0x51, 0x8d, 0xcc, 0x78, 0x87,
  656. 0xde, 0x5d, 0x70, 0x68, 0x1d, 0xeb, 0x34, 0x07, 0xe7, 0x12, 0x71, 0x0a, 0xbb, 0xc8, 0x4c, 0xf4,
  657. 0xdb, 0x2d, 0x72, 0x7f, 0xca, 0x32, 0x78, 0xaa, 0x60, 0xea, 0x93, 0x17, 0xfe, 0x40, 0xee, 0xbd,
  658. 0x94, 0xbf, 0x06, 0xfa, 0xc6, 0xda, 0x7e, 0x7c, 0x5e, 0x95, 0x9a, 0x2a, 0xc4, 0xff, 0xc0, 0xcc,
  659. 0x3c, 0x62, 0x13, 0x59, 0xbe, 0xa1, 0xea, 0xe2, 0xa2, 0xfd, 0xdd, 0x25, 0xf3, 0xc2, 0x2c, 0x9c,
  660. 0x92, 0xb7, 0x6d, 0x92, 0x53, 0x29, 0x28, 0x07, 0x99, 0x4b, 0x95, 0xd1, 0x42, 0x72, 0x8d, 0xa6,
  661. 0xdf, 0x69, 0xc2, 0x7b, 0xb8, 0x10, 0xde, 0x96, 0xaa, 0x3e, 0xfe, 0xc8, 0x45, 0xb7, 0xc2, 0x4b,
  662. 0x3e, 0x91, 0x22, 0x71, 0x8a, 0x3b, 0x8d, 0x5e, 0xf8, 0x19, 0x59, 0xb2, 0xb4, 0x02, 0x85, 0x3c,
  663. 0x94, 0xa0, 0xfb, 0xdd, 0xd7, 0x48, 0x53, 0x2f, 0x95, 0x62, 0xc7, 0x2b, 0x84, 0x5b, 0x64, 0x05,
  664. 0x55, 0x7e, 0x4a, 0x35, 0x93, 0x06, 0xa8, 0xf7, 0xce, 0xf4, 0x6f, 0x5d, 0x5a, 0xff, 0x37, 0xad,
  665. 0xda, 0xae, 0xd5, 0x4a, 0x1a, 0xbf, 0x4c, 0xf8, 0x9c, 0xbc, 0xf7, 0x12, 0x85, 0x9e, 0x1c, 0x81,
  666. 0xa2, 0x69, 0x2d, 0x6c, 0x11, 0x39, 0x2a, 0x9b, 0x0a, 0xa9, 0x40, 0xf4, 0x6f, 0x5f, 0x0a, 0x7f,
  667. 0xac, 0xe7, 0xe0, 0xaf, 0x8e, 0x40, 0x4d, 0x1a, 0x48, 0x32, 0x67, 0x84, 0x05, 0x79, 0xff, 0x15,
  668. 0xc6, 0xbe, 0xad, 0x59, 0x2e, 0xab, 0x53, 0x6a, 0x38, 0x6a, 0xa0, 0xd2, 0xd0, 0x1c, 0x4f, 0xfa,
  669. 0x77, 0xae, 0x6c, 0xee, 0x4b, 0x87, 0x99, 0x59, 0xca, 0x96, 0xd9, 0xc6, 0x93, 0xe8, 0xaf, 0x80,
  670. 0xdc, 0x7d, 0xd6, 0x74, 0x57, 0x52, 0xb2, 0x70, 0x93, 0x2c, 0xfb, 0xde, 0xe4, 0x25, 0x6b, 0x4b,
  671. 0x18, 0x5c, 0x5e, 0xc2, 0xfb, 0x55, 0x8b, 0xf0, 0xe5, 0xbb, 0xf9, 0x86, 0xd8, 0x26, 0x0f, 0x5a,
  672. 0xe2, 0x61, 0x8e, 0xa8, 0x5b, 0x5e, 0xf7, 0x72, 0xde, 0xb2, 0xe3, 0x7d, 0x6e, 0xd5, 0x1c, 0xcd,
  673. 0x9e, 0xe1, 0x36, 0xea, 0x22, 0xfa, 0xa5, 0x4b, 0x42, 0x37, 0x7b, 0x5a, 0x57, 0x9a, 0xa9, 0xe7,
  674. 0xb3, 0x23, 0xa6, 0x21, 0xdc, 0x27, 0x0f, 0x7d, 0x32, 0xd0, 0x2d, 0x53, 0x63, 0xd7, 0x5f, 0x23,
  675. 0x2d, 0x4f, 0xd6, 0x9c, 0xe1, 0x7e, 0xb5, 0x40, 0xf5, 0xd1, 0x6c, 0x91, 0x65, 0x8e, 0x45, 0x09,
  676. 0x95, 0xac, 0x50, 0x53, 0x81, 0x05, 0x93, 0xca, 0xa7, 0x66, 0xb1, 0xc7, 0x67, 0x95, 0x96, 0x2a,
  677. 0xf3, 0xdd, 0x39, 0x57, 0x5b, 0x6f, 0xb4, 0x2e, 0x48, 0x75, 0xf7, 0x9a, 0xa9, 0xbe, 0xc1, 0xa3,
  678. 0x73, 0x85, 0x6e, 0xbe, 0x7d, 0x03, 0xdd, 0xfc, 0x67, 0x40, 0xc8, 0xb3, 0xb3, 0x7f, 0xe5, 0xbf,
  679. 0xfc, 0xd5, 0xfe, 0xef, 0x9b, 0xf8, 0xe7, 0x80, 0xf4, 0x5c, 0xb4, 0xb3, 0x12, 0x94, 0x08, 0xbf,
  680. 0x20, 0x2b, 0x3e, 0x5c, 0x63, 0xe7, 0x57, 0x38, 0xbf, 0xfe, 0xd4, 0x37, 0x98, 0xff, 0xea, 0x04,
  681. 0x5b, 0x77, 0xc9, 0x14, 0x34, 0x07, 0x55, 0xd9, 0x1b, 0xfa, 0x7c, 0x03, 0xc1, 0xf5, 0xb3, 0xfb,
  682. 0xca, 0x3b, 0xbf, 0x73, 0x9d, 0x3b, 0x7f, 0xf2, 0x7b, 0x40, 0x22, 0x8e, 0x45, 0x7c, 0xf1, 0x4b,
  683. 0x67, 0xb2, 0x34, 0x71, 0x0f, 0xa3, 0xa9, 0xa5, 0x4e, 0x83, 0xfd, 0x75, 0x2f, 0x9f, 0x61, 0xce,
  684. 0x54, 0x16, 0xa3, 0xce, 0x06, 0x19, 0xa8, 0xc6, 0x66, 0xfb, 0x12, 0x2a, 0xa5, 0x39, 0xef, 0x99,
  685. 0xf5, 0x89, 0xfb, 0xfc, 0xd8, 0xe9, 0x6e, 0x8e, 0xc7, 0x3f, 0x75, 0x1e, 0x6d, 0x3a, 0xd8, 0x58,
  686. 0x98, 0xd8, 0x0d, 0xed, 0x68, 0x6f, 0x18, 0x27, 0x8d, 0xd8, 0xaf, 0xad, 0xc0, 0xc1, 0x58, 0x98,
  687. 0x83, 0x33, 0x81, 0x83, 0xbd, 0xe1, 0x81, 0x13, 0xf8, 0xa3, 0x13, 0xb9, 0xd5, 0xd1, 0x68, 0x2c,
  688. 0xcc, 0x68, 0x74, 0x26, 0x32, 0x1a, 0xed, 0x0d, 0x47, 0x23, 0x27, 0x94, 0xde, 0x69, 0xbc, 0x7b,
  689. 0xf2, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x91, 0xe3, 0xc7, 0x03, 0x0a, 0x00, 0x00,
  690. }