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.
 
 
 

1269 lines
62 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/ads/googleads/v0/resources/recommendation.proto
  3. package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources"
  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 common "google.golang.org/genproto/googleapis/ads/googleads/v0/common"
  9. import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums"
  10. // Reference imports to suppress errors if they are not otherwise used.
  11. var _ = proto.Marshal
  12. var _ = fmt.Errorf
  13. var _ = math.Inf
  14. // This is a compile-time assertion to ensure that this generated file
  15. // is compatible with the proto package it is being compiled against.
  16. // A compilation error at this line likely means your copy of the
  17. // proto package needs to be updated.
  18. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  19. // A recommendation.
  20. type Recommendation struct {
  21. // The resource name of the recommendation.
  22. //
  23. // `customers/{customer_id}/recommendations/{recommendation_id}`
  24. ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
  25. // The type of recommendation.
  26. Type enums.RecommendationTypeEnum_RecommendationType `protobuf:"varint,2,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.RecommendationTypeEnum_RecommendationType" json:"type,omitempty"`
  27. // The impact on account performance as a result of applying the
  28. // recommendation.
  29. Impact *Recommendation_RecommendationImpact `protobuf:"bytes,3,opt,name=impact,proto3" json:"impact,omitempty"`
  30. // The budget targeted by this recommendation. This will be set only when
  31. // the recommendation affects a single campaign budget.
  32. //
  33. // This field will be set for the following recommendation types:
  34. // CAMPAIGN_BUDGET
  35. CampaignBudget *wrappers.StringValue `protobuf:"bytes,5,opt,name=campaign_budget,json=campaignBudget,proto3" json:"campaign_budget,omitempty"`
  36. // The campaign targeted by this recommendation. This will be set only when
  37. // the recommendation affects a single campaign.
  38. //
  39. // This field will be set for the following recommendation types:
  40. // ENHANCED_CPC_OPT_IN, KEYWORD, MAXIMIZE_CLICKS_OPT_IN,
  41. // MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, SEARCH_PARTNERS_OPT_IN,
  42. // TARGET_CPA_OPT_IN, TEXT_AD
  43. Campaign *wrappers.StringValue `protobuf:"bytes,6,opt,name=campaign,proto3" json:"campaign,omitempty"`
  44. // The ad group targeted by this recommendation. This will be set only when
  45. // the recommendation affects a single ad group.
  46. //
  47. // This field will be set for the following recommendation types:
  48. // KEYWORD, OPTIMIZE_AD_ROTATION, TEXT_AD
  49. AdGroup *wrappers.StringValue `protobuf:"bytes,7,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"`
  50. // Whether the recommendation is dismissed or not.
  51. Dismissed *wrappers.BoolValue `protobuf:"bytes,13,opt,name=dismissed,proto3" json:"dismissed,omitempty"`
  52. // The details of recommendation.
  53. //
  54. // Types that are valid to be assigned to Recommendation:
  55. // *Recommendation_CampaignBudgetRecommendation_
  56. // *Recommendation_KeywordRecommendation_
  57. // *Recommendation_TextAdRecommendation_
  58. // *Recommendation_TargetCpaOptInRecommendation_
  59. // *Recommendation_MaximizeConversionsOptInRecommendation_
  60. // *Recommendation_EnhancedCpcOptInRecommendation_
  61. // *Recommendation_SearchPartnersOptInRecommendation_
  62. // *Recommendation_MaximizeClicksOptInRecommendation_
  63. // *Recommendation_OptimizeAdRotationRecommendation_
  64. Recommendation isRecommendation_Recommendation `protobuf_oneof:"recommendation"`
  65. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  66. XXX_unrecognized []byte `json:"-"`
  67. XXX_sizecache int32 `json:"-"`
  68. }
  69. func (m *Recommendation) Reset() { *m = Recommendation{} }
  70. func (m *Recommendation) String() string { return proto.CompactTextString(m) }
  71. func (*Recommendation) ProtoMessage() {}
  72. func (*Recommendation) Descriptor() ([]byte, []int) {
  73. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0}
  74. }
  75. func (m *Recommendation) XXX_Unmarshal(b []byte) error {
  76. return xxx_messageInfo_Recommendation.Unmarshal(m, b)
  77. }
  78. func (m *Recommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  79. return xxx_messageInfo_Recommendation.Marshal(b, m, deterministic)
  80. }
  81. func (dst *Recommendation) XXX_Merge(src proto.Message) {
  82. xxx_messageInfo_Recommendation.Merge(dst, src)
  83. }
  84. func (m *Recommendation) XXX_Size() int {
  85. return xxx_messageInfo_Recommendation.Size(m)
  86. }
  87. func (m *Recommendation) XXX_DiscardUnknown() {
  88. xxx_messageInfo_Recommendation.DiscardUnknown(m)
  89. }
  90. var xxx_messageInfo_Recommendation proto.InternalMessageInfo
  91. func (m *Recommendation) GetResourceName() string {
  92. if m != nil {
  93. return m.ResourceName
  94. }
  95. return ""
  96. }
  97. func (m *Recommendation) GetType() enums.RecommendationTypeEnum_RecommendationType {
  98. if m != nil {
  99. return m.Type
  100. }
  101. return enums.RecommendationTypeEnum_UNSPECIFIED
  102. }
  103. func (m *Recommendation) GetImpact() *Recommendation_RecommendationImpact {
  104. if m != nil {
  105. return m.Impact
  106. }
  107. return nil
  108. }
  109. func (m *Recommendation) GetCampaignBudget() *wrappers.StringValue {
  110. if m != nil {
  111. return m.CampaignBudget
  112. }
  113. return nil
  114. }
  115. func (m *Recommendation) GetCampaign() *wrappers.StringValue {
  116. if m != nil {
  117. return m.Campaign
  118. }
  119. return nil
  120. }
  121. func (m *Recommendation) GetAdGroup() *wrappers.StringValue {
  122. if m != nil {
  123. return m.AdGroup
  124. }
  125. return nil
  126. }
  127. func (m *Recommendation) GetDismissed() *wrappers.BoolValue {
  128. if m != nil {
  129. return m.Dismissed
  130. }
  131. return nil
  132. }
  133. type isRecommendation_Recommendation interface {
  134. isRecommendation_Recommendation()
  135. }
  136. type Recommendation_CampaignBudgetRecommendation_ struct {
  137. CampaignBudgetRecommendation *Recommendation_CampaignBudgetRecommendation `protobuf:"bytes,4,opt,name=campaign_budget_recommendation,json=campaignBudgetRecommendation,proto3,oneof"`
  138. }
  139. type Recommendation_KeywordRecommendation_ struct {
  140. KeywordRecommendation *Recommendation_KeywordRecommendation `protobuf:"bytes,8,opt,name=keyword_recommendation,json=keywordRecommendation,proto3,oneof"`
  141. }
  142. type Recommendation_TextAdRecommendation_ struct {
  143. TextAdRecommendation *Recommendation_TextAdRecommendation `protobuf:"bytes,9,opt,name=text_ad_recommendation,json=textAdRecommendation,proto3,oneof"`
  144. }
  145. type Recommendation_TargetCpaOptInRecommendation_ struct {
  146. TargetCpaOptInRecommendation *Recommendation_TargetCpaOptInRecommendation `protobuf:"bytes,10,opt,name=target_cpa_opt_in_recommendation,json=targetCpaOptInRecommendation,proto3,oneof"`
  147. }
  148. type Recommendation_MaximizeConversionsOptInRecommendation_ struct {
  149. MaximizeConversionsOptInRecommendation *Recommendation_MaximizeConversionsOptInRecommendation `protobuf:"bytes,11,opt,name=maximize_conversions_opt_in_recommendation,json=maximizeConversionsOptInRecommendation,proto3,oneof"`
  150. }
  151. type Recommendation_EnhancedCpcOptInRecommendation_ struct {
  152. EnhancedCpcOptInRecommendation *Recommendation_EnhancedCpcOptInRecommendation `protobuf:"bytes,12,opt,name=enhanced_cpc_opt_in_recommendation,json=enhancedCpcOptInRecommendation,proto3,oneof"`
  153. }
  154. type Recommendation_SearchPartnersOptInRecommendation_ struct {
  155. SearchPartnersOptInRecommendation *Recommendation_SearchPartnersOptInRecommendation `protobuf:"bytes,14,opt,name=search_partners_opt_in_recommendation,json=searchPartnersOptInRecommendation,proto3,oneof"`
  156. }
  157. type Recommendation_MaximizeClicksOptInRecommendation_ struct {
  158. MaximizeClicksOptInRecommendation *Recommendation_MaximizeClicksOptInRecommendation `protobuf:"bytes,15,opt,name=maximize_clicks_opt_in_recommendation,json=maximizeClicksOptInRecommendation,proto3,oneof"`
  159. }
  160. type Recommendation_OptimizeAdRotationRecommendation_ struct {
  161. OptimizeAdRotationRecommendation *Recommendation_OptimizeAdRotationRecommendation `protobuf:"bytes,16,opt,name=optimize_ad_rotation_recommendation,json=optimizeAdRotationRecommendation,proto3,oneof"`
  162. }
  163. func (*Recommendation_CampaignBudgetRecommendation_) isRecommendation_Recommendation() {}
  164. func (*Recommendation_KeywordRecommendation_) isRecommendation_Recommendation() {}
  165. func (*Recommendation_TextAdRecommendation_) isRecommendation_Recommendation() {}
  166. func (*Recommendation_TargetCpaOptInRecommendation_) isRecommendation_Recommendation() {}
  167. func (*Recommendation_MaximizeConversionsOptInRecommendation_) isRecommendation_Recommendation() {}
  168. func (*Recommendation_EnhancedCpcOptInRecommendation_) isRecommendation_Recommendation() {}
  169. func (*Recommendation_SearchPartnersOptInRecommendation_) isRecommendation_Recommendation() {}
  170. func (*Recommendation_MaximizeClicksOptInRecommendation_) isRecommendation_Recommendation() {}
  171. func (*Recommendation_OptimizeAdRotationRecommendation_) isRecommendation_Recommendation() {}
  172. func (m *Recommendation) GetRecommendation() isRecommendation_Recommendation {
  173. if m != nil {
  174. return m.Recommendation
  175. }
  176. return nil
  177. }
  178. func (m *Recommendation) GetCampaignBudgetRecommendation() *Recommendation_CampaignBudgetRecommendation {
  179. if x, ok := m.GetRecommendation().(*Recommendation_CampaignBudgetRecommendation_); ok {
  180. return x.CampaignBudgetRecommendation
  181. }
  182. return nil
  183. }
  184. func (m *Recommendation) GetKeywordRecommendation() *Recommendation_KeywordRecommendation {
  185. if x, ok := m.GetRecommendation().(*Recommendation_KeywordRecommendation_); ok {
  186. return x.KeywordRecommendation
  187. }
  188. return nil
  189. }
  190. func (m *Recommendation) GetTextAdRecommendation() *Recommendation_TextAdRecommendation {
  191. if x, ok := m.GetRecommendation().(*Recommendation_TextAdRecommendation_); ok {
  192. return x.TextAdRecommendation
  193. }
  194. return nil
  195. }
  196. func (m *Recommendation) GetTargetCpaOptInRecommendation() *Recommendation_TargetCpaOptInRecommendation {
  197. if x, ok := m.GetRecommendation().(*Recommendation_TargetCpaOptInRecommendation_); ok {
  198. return x.TargetCpaOptInRecommendation
  199. }
  200. return nil
  201. }
  202. func (m *Recommendation) GetMaximizeConversionsOptInRecommendation() *Recommendation_MaximizeConversionsOptInRecommendation {
  203. if x, ok := m.GetRecommendation().(*Recommendation_MaximizeConversionsOptInRecommendation_); ok {
  204. return x.MaximizeConversionsOptInRecommendation
  205. }
  206. return nil
  207. }
  208. func (m *Recommendation) GetEnhancedCpcOptInRecommendation() *Recommendation_EnhancedCpcOptInRecommendation {
  209. if x, ok := m.GetRecommendation().(*Recommendation_EnhancedCpcOptInRecommendation_); ok {
  210. return x.EnhancedCpcOptInRecommendation
  211. }
  212. return nil
  213. }
  214. func (m *Recommendation) GetSearchPartnersOptInRecommendation() *Recommendation_SearchPartnersOptInRecommendation {
  215. if x, ok := m.GetRecommendation().(*Recommendation_SearchPartnersOptInRecommendation_); ok {
  216. return x.SearchPartnersOptInRecommendation
  217. }
  218. return nil
  219. }
  220. func (m *Recommendation) GetMaximizeClicksOptInRecommendation() *Recommendation_MaximizeClicksOptInRecommendation {
  221. if x, ok := m.GetRecommendation().(*Recommendation_MaximizeClicksOptInRecommendation_); ok {
  222. return x.MaximizeClicksOptInRecommendation
  223. }
  224. return nil
  225. }
  226. func (m *Recommendation) GetOptimizeAdRotationRecommendation() *Recommendation_OptimizeAdRotationRecommendation {
  227. if x, ok := m.GetRecommendation().(*Recommendation_OptimizeAdRotationRecommendation_); ok {
  228. return x.OptimizeAdRotationRecommendation
  229. }
  230. return nil
  231. }
  232. // XXX_OneofFuncs is for the internal use of the proto package.
  233. func (*Recommendation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  234. return _Recommendation_OneofMarshaler, _Recommendation_OneofUnmarshaler, _Recommendation_OneofSizer, []interface{}{
  235. (*Recommendation_CampaignBudgetRecommendation_)(nil),
  236. (*Recommendation_KeywordRecommendation_)(nil),
  237. (*Recommendation_TextAdRecommendation_)(nil),
  238. (*Recommendation_TargetCpaOptInRecommendation_)(nil),
  239. (*Recommendation_MaximizeConversionsOptInRecommendation_)(nil),
  240. (*Recommendation_EnhancedCpcOptInRecommendation_)(nil),
  241. (*Recommendation_SearchPartnersOptInRecommendation_)(nil),
  242. (*Recommendation_MaximizeClicksOptInRecommendation_)(nil),
  243. (*Recommendation_OptimizeAdRotationRecommendation_)(nil),
  244. }
  245. }
  246. func _Recommendation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  247. m := msg.(*Recommendation)
  248. // recommendation
  249. switch x := m.Recommendation.(type) {
  250. case *Recommendation_CampaignBudgetRecommendation_:
  251. b.EncodeVarint(4<<3 | proto.WireBytes)
  252. if err := b.EncodeMessage(x.CampaignBudgetRecommendation); err != nil {
  253. return err
  254. }
  255. case *Recommendation_KeywordRecommendation_:
  256. b.EncodeVarint(8<<3 | proto.WireBytes)
  257. if err := b.EncodeMessage(x.KeywordRecommendation); err != nil {
  258. return err
  259. }
  260. case *Recommendation_TextAdRecommendation_:
  261. b.EncodeVarint(9<<3 | proto.WireBytes)
  262. if err := b.EncodeMessage(x.TextAdRecommendation); err != nil {
  263. return err
  264. }
  265. case *Recommendation_TargetCpaOptInRecommendation_:
  266. b.EncodeVarint(10<<3 | proto.WireBytes)
  267. if err := b.EncodeMessage(x.TargetCpaOptInRecommendation); err != nil {
  268. return err
  269. }
  270. case *Recommendation_MaximizeConversionsOptInRecommendation_:
  271. b.EncodeVarint(11<<3 | proto.WireBytes)
  272. if err := b.EncodeMessage(x.MaximizeConversionsOptInRecommendation); err != nil {
  273. return err
  274. }
  275. case *Recommendation_EnhancedCpcOptInRecommendation_:
  276. b.EncodeVarint(12<<3 | proto.WireBytes)
  277. if err := b.EncodeMessage(x.EnhancedCpcOptInRecommendation); err != nil {
  278. return err
  279. }
  280. case *Recommendation_SearchPartnersOptInRecommendation_:
  281. b.EncodeVarint(14<<3 | proto.WireBytes)
  282. if err := b.EncodeMessage(x.SearchPartnersOptInRecommendation); err != nil {
  283. return err
  284. }
  285. case *Recommendation_MaximizeClicksOptInRecommendation_:
  286. b.EncodeVarint(15<<3 | proto.WireBytes)
  287. if err := b.EncodeMessage(x.MaximizeClicksOptInRecommendation); err != nil {
  288. return err
  289. }
  290. case *Recommendation_OptimizeAdRotationRecommendation_:
  291. b.EncodeVarint(16<<3 | proto.WireBytes)
  292. if err := b.EncodeMessage(x.OptimizeAdRotationRecommendation); err != nil {
  293. return err
  294. }
  295. case nil:
  296. default:
  297. return fmt.Errorf("Recommendation.Recommendation has unexpected type %T", x)
  298. }
  299. return nil
  300. }
  301. func _Recommendation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  302. m := msg.(*Recommendation)
  303. switch tag {
  304. case 4: // recommendation.campaign_budget_recommendation
  305. if wire != proto.WireBytes {
  306. return true, proto.ErrInternalBadWireType
  307. }
  308. msg := new(Recommendation_CampaignBudgetRecommendation)
  309. err := b.DecodeMessage(msg)
  310. m.Recommendation = &Recommendation_CampaignBudgetRecommendation_{msg}
  311. return true, err
  312. case 8: // recommendation.keyword_recommendation
  313. if wire != proto.WireBytes {
  314. return true, proto.ErrInternalBadWireType
  315. }
  316. msg := new(Recommendation_KeywordRecommendation)
  317. err := b.DecodeMessage(msg)
  318. m.Recommendation = &Recommendation_KeywordRecommendation_{msg}
  319. return true, err
  320. case 9: // recommendation.text_ad_recommendation
  321. if wire != proto.WireBytes {
  322. return true, proto.ErrInternalBadWireType
  323. }
  324. msg := new(Recommendation_TextAdRecommendation)
  325. err := b.DecodeMessage(msg)
  326. m.Recommendation = &Recommendation_TextAdRecommendation_{msg}
  327. return true, err
  328. case 10: // recommendation.target_cpa_opt_in_recommendation
  329. if wire != proto.WireBytes {
  330. return true, proto.ErrInternalBadWireType
  331. }
  332. msg := new(Recommendation_TargetCpaOptInRecommendation)
  333. err := b.DecodeMessage(msg)
  334. m.Recommendation = &Recommendation_TargetCpaOptInRecommendation_{msg}
  335. return true, err
  336. case 11: // recommendation.maximize_conversions_opt_in_recommendation
  337. if wire != proto.WireBytes {
  338. return true, proto.ErrInternalBadWireType
  339. }
  340. msg := new(Recommendation_MaximizeConversionsOptInRecommendation)
  341. err := b.DecodeMessage(msg)
  342. m.Recommendation = &Recommendation_MaximizeConversionsOptInRecommendation_{msg}
  343. return true, err
  344. case 12: // recommendation.enhanced_cpc_opt_in_recommendation
  345. if wire != proto.WireBytes {
  346. return true, proto.ErrInternalBadWireType
  347. }
  348. msg := new(Recommendation_EnhancedCpcOptInRecommendation)
  349. err := b.DecodeMessage(msg)
  350. m.Recommendation = &Recommendation_EnhancedCpcOptInRecommendation_{msg}
  351. return true, err
  352. case 14: // recommendation.search_partners_opt_in_recommendation
  353. if wire != proto.WireBytes {
  354. return true, proto.ErrInternalBadWireType
  355. }
  356. msg := new(Recommendation_SearchPartnersOptInRecommendation)
  357. err := b.DecodeMessage(msg)
  358. m.Recommendation = &Recommendation_SearchPartnersOptInRecommendation_{msg}
  359. return true, err
  360. case 15: // recommendation.maximize_clicks_opt_in_recommendation
  361. if wire != proto.WireBytes {
  362. return true, proto.ErrInternalBadWireType
  363. }
  364. msg := new(Recommendation_MaximizeClicksOptInRecommendation)
  365. err := b.DecodeMessage(msg)
  366. m.Recommendation = &Recommendation_MaximizeClicksOptInRecommendation_{msg}
  367. return true, err
  368. case 16: // recommendation.optimize_ad_rotation_recommendation
  369. if wire != proto.WireBytes {
  370. return true, proto.ErrInternalBadWireType
  371. }
  372. msg := new(Recommendation_OptimizeAdRotationRecommendation)
  373. err := b.DecodeMessage(msg)
  374. m.Recommendation = &Recommendation_OptimizeAdRotationRecommendation_{msg}
  375. return true, err
  376. default:
  377. return false, nil
  378. }
  379. }
  380. func _Recommendation_OneofSizer(msg proto.Message) (n int) {
  381. m := msg.(*Recommendation)
  382. // recommendation
  383. switch x := m.Recommendation.(type) {
  384. case *Recommendation_CampaignBudgetRecommendation_:
  385. s := proto.Size(x.CampaignBudgetRecommendation)
  386. n += 1 // tag and wire
  387. n += proto.SizeVarint(uint64(s))
  388. n += s
  389. case *Recommendation_KeywordRecommendation_:
  390. s := proto.Size(x.KeywordRecommendation)
  391. n += 1 // tag and wire
  392. n += proto.SizeVarint(uint64(s))
  393. n += s
  394. case *Recommendation_TextAdRecommendation_:
  395. s := proto.Size(x.TextAdRecommendation)
  396. n += 1 // tag and wire
  397. n += proto.SizeVarint(uint64(s))
  398. n += s
  399. case *Recommendation_TargetCpaOptInRecommendation_:
  400. s := proto.Size(x.TargetCpaOptInRecommendation)
  401. n += 1 // tag and wire
  402. n += proto.SizeVarint(uint64(s))
  403. n += s
  404. case *Recommendation_MaximizeConversionsOptInRecommendation_:
  405. s := proto.Size(x.MaximizeConversionsOptInRecommendation)
  406. n += 1 // tag and wire
  407. n += proto.SizeVarint(uint64(s))
  408. n += s
  409. case *Recommendation_EnhancedCpcOptInRecommendation_:
  410. s := proto.Size(x.EnhancedCpcOptInRecommendation)
  411. n += 1 // tag and wire
  412. n += proto.SizeVarint(uint64(s))
  413. n += s
  414. case *Recommendation_SearchPartnersOptInRecommendation_:
  415. s := proto.Size(x.SearchPartnersOptInRecommendation)
  416. n += 1 // tag and wire
  417. n += proto.SizeVarint(uint64(s))
  418. n += s
  419. case *Recommendation_MaximizeClicksOptInRecommendation_:
  420. s := proto.Size(x.MaximizeClicksOptInRecommendation)
  421. n += 1 // tag and wire
  422. n += proto.SizeVarint(uint64(s))
  423. n += s
  424. case *Recommendation_OptimizeAdRotationRecommendation_:
  425. s := proto.Size(x.OptimizeAdRotationRecommendation)
  426. n += 2 // tag and wire
  427. n += proto.SizeVarint(uint64(s))
  428. n += s
  429. case nil:
  430. default:
  431. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  432. }
  433. return n
  434. }
  435. // The impact of making the change as described in the recommendation.
  436. // Some types of recommendations may not have impact information.
  437. type Recommendation_RecommendationImpact struct {
  438. // Base metrics at the time the recommendation was generated.
  439. BaseMetrics *Recommendation_RecommendationMetrics `protobuf:"bytes,1,opt,name=base_metrics,json=baseMetrics,proto3" json:"base_metrics,omitempty"`
  440. // Estimated metrics if the recommendation is applied.
  441. PotentialMetrics *Recommendation_RecommendationMetrics `protobuf:"bytes,2,opt,name=potential_metrics,json=potentialMetrics,proto3" json:"potential_metrics,omitempty"`
  442. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  443. XXX_unrecognized []byte `json:"-"`
  444. XXX_sizecache int32 `json:"-"`
  445. }
  446. func (m *Recommendation_RecommendationImpact) Reset() { *m = Recommendation_RecommendationImpact{} }
  447. func (m *Recommendation_RecommendationImpact) String() string { return proto.CompactTextString(m) }
  448. func (*Recommendation_RecommendationImpact) ProtoMessage() {}
  449. func (*Recommendation_RecommendationImpact) Descriptor() ([]byte, []int) {
  450. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 0}
  451. }
  452. func (m *Recommendation_RecommendationImpact) XXX_Unmarshal(b []byte) error {
  453. return xxx_messageInfo_Recommendation_RecommendationImpact.Unmarshal(m, b)
  454. }
  455. func (m *Recommendation_RecommendationImpact) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  456. return xxx_messageInfo_Recommendation_RecommendationImpact.Marshal(b, m, deterministic)
  457. }
  458. func (dst *Recommendation_RecommendationImpact) XXX_Merge(src proto.Message) {
  459. xxx_messageInfo_Recommendation_RecommendationImpact.Merge(dst, src)
  460. }
  461. func (m *Recommendation_RecommendationImpact) XXX_Size() int {
  462. return xxx_messageInfo_Recommendation_RecommendationImpact.Size(m)
  463. }
  464. func (m *Recommendation_RecommendationImpact) XXX_DiscardUnknown() {
  465. xxx_messageInfo_Recommendation_RecommendationImpact.DiscardUnknown(m)
  466. }
  467. var xxx_messageInfo_Recommendation_RecommendationImpact proto.InternalMessageInfo
  468. func (m *Recommendation_RecommendationImpact) GetBaseMetrics() *Recommendation_RecommendationMetrics {
  469. if m != nil {
  470. return m.BaseMetrics
  471. }
  472. return nil
  473. }
  474. func (m *Recommendation_RecommendationImpact) GetPotentialMetrics() *Recommendation_RecommendationMetrics {
  475. if m != nil {
  476. return m.PotentialMetrics
  477. }
  478. return nil
  479. }
  480. // Weekly account performance metrics. For some recommendation types, these
  481. // are averaged over the past 90-day period and hence can be fractional.
  482. type Recommendation_RecommendationMetrics struct {
  483. // Number of ad impressions.
  484. Impressions *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=impressions,proto3" json:"impressions,omitempty"`
  485. // Number of ad clicks.
  486. Clicks *wrappers.DoubleValue `protobuf:"bytes,2,opt,name=clicks,proto3" json:"clicks,omitempty"`
  487. // Cost (in micros) for advertising, in the local currency for the account.
  488. CostMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cost_micros,json=costMicros,proto3" json:"cost_micros,omitempty"`
  489. // Number of conversions.
  490. Conversions *wrappers.DoubleValue `protobuf:"bytes,4,opt,name=conversions,proto3" json:"conversions,omitempty"`
  491. // Number of video views for a video ad campaign.
  492. VideoViews *wrappers.DoubleValue `protobuf:"bytes,5,opt,name=video_views,json=videoViews,proto3" json:"video_views,omitempty"`
  493. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  494. XXX_unrecognized []byte `json:"-"`
  495. XXX_sizecache int32 `json:"-"`
  496. }
  497. func (m *Recommendation_RecommendationMetrics) Reset() { *m = Recommendation_RecommendationMetrics{} }
  498. func (m *Recommendation_RecommendationMetrics) String() string { return proto.CompactTextString(m) }
  499. func (*Recommendation_RecommendationMetrics) ProtoMessage() {}
  500. func (*Recommendation_RecommendationMetrics) Descriptor() ([]byte, []int) {
  501. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 1}
  502. }
  503. func (m *Recommendation_RecommendationMetrics) XXX_Unmarshal(b []byte) error {
  504. return xxx_messageInfo_Recommendation_RecommendationMetrics.Unmarshal(m, b)
  505. }
  506. func (m *Recommendation_RecommendationMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  507. return xxx_messageInfo_Recommendation_RecommendationMetrics.Marshal(b, m, deterministic)
  508. }
  509. func (dst *Recommendation_RecommendationMetrics) XXX_Merge(src proto.Message) {
  510. xxx_messageInfo_Recommendation_RecommendationMetrics.Merge(dst, src)
  511. }
  512. func (m *Recommendation_RecommendationMetrics) XXX_Size() int {
  513. return xxx_messageInfo_Recommendation_RecommendationMetrics.Size(m)
  514. }
  515. func (m *Recommendation_RecommendationMetrics) XXX_DiscardUnknown() {
  516. xxx_messageInfo_Recommendation_RecommendationMetrics.DiscardUnknown(m)
  517. }
  518. var xxx_messageInfo_Recommendation_RecommendationMetrics proto.InternalMessageInfo
  519. func (m *Recommendation_RecommendationMetrics) GetImpressions() *wrappers.DoubleValue {
  520. if m != nil {
  521. return m.Impressions
  522. }
  523. return nil
  524. }
  525. func (m *Recommendation_RecommendationMetrics) GetClicks() *wrappers.DoubleValue {
  526. if m != nil {
  527. return m.Clicks
  528. }
  529. return nil
  530. }
  531. func (m *Recommendation_RecommendationMetrics) GetCostMicros() *wrappers.Int64Value {
  532. if m != nil {
  533. return m.CostMicros
  534. }
  535. return nil
  536. }
  537. func (m *Recommendation_RecommendationMetrics) GetConversions() *wrappers.DoubleValue {
  538. if m != nil {
  539. return m.Conversions
  540. }
  541. return nil
  542. }
  543. func (m *Recommendation_RecommendationMetrics) GetVideoViews() *wrappers.DoubleValue {
  544. if m != nil {
  545. return m.VideoViews
  546. }
  547. return nil
  548. }
  549. // The budget recommendation for budget constrained campaigns.
  550. type Recommendation_CampaignBudgetRecommendation struct {
  551. // The current budget amount in micros.
  552. CurrentBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=current_budget_amount_micros,json=currentBudgetAmountMicros,proto3" json:"current_budget_amount_micros,omitempty"`
  553. // The recommended budget amount in micros.
  554. RecommendedBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=recommended_budget_amount_micros,json=recommendedBudgetAmountMicros,proto3" json:"recommended_budget_amount_micros,omitempty"`
  555. // The budget amounts and associated impact estimates for some values of
  556. // possible budget amounts.
  557. BudgetOptions []*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption `protobuf:"bytes,3,rep,name=budget_options,json=budgetOptions,proto3" json:"budget_options,omitempty"`
  558. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  559. XXX_unrecognized []byte `json:"-"`
  560. XXX_sizecache int32 `json:"-"`
  561. }
  562. func (m *Recommendation_CampaignBudgetRecommendation) Reset() {
  563. *m = Recommendation_CampaignBudgetRecommendation{}
  564. }
  565. func (m *Recommendation_CampaignBudgetRecommendation) String() string {
  566. return proto.CompactTextString(m)
  567. }
  568. func (*Recommendation_CampaignBudgetRecommendation) ProtoMessage() {}
  569. func (*Recommendation_CampaignBudgetRecommendation) Descriptor() ([]byte, []int) {
  570. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 2}
  571. }
  572. func (m *Recommendation_CampaignBudgetRecommendation) XXX_Unmarshal(b []byte) error {
  573. return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Unmarshal(m, b)
  574. }
  575. func (m *Recommendation_CampaignBudgetRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  576. return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Marshal(b, m, deterministic)
  577. }
  578. func (dst *Recommendation_CampaignBudgetRecommendation) XXX_Merge(src proto.Message) {
  579. xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Merge(dst, src)
  580. }
  581. func (m *Recommendation_CampaignBudgetRecommendation) XXX_Size() int {
  582. return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Size(m)
  583. }
  584. func (m *Recommendation_CampaignBudgetRecommendation) XXX_DiscardUnknown() {
  585. xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.DiscardUnknown(m)
  586. }
  587. var xxx_messageInfo_Recommendation_CampaignBudgetRecommendation proto.InternalMessageInfo
  588. func (m *Recommendation_CampaignBudgetRecommendation) GetCurrentBudgetAmountMicros() *wrappers.Int64Value {
  589. if m != nil {
  590. return m.CurrentBudgetAmountMicros
  591. }
  592. return nil
  593. }
  594. func (m *Recommendation_CampaignBudgetRecommendation) GetRecommendedBudgetAmountMicros() *wrappers.Int64Value {
  595. if m != nil {
  596. return m.RecommendedBudgetAmountMicros
  597. }
  598. return nil
  599. }
  600. func (m *Recommendation_CampaignBudgetRecommendation) GetBudgetOptions() []*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption {
  601. if m != nil {
  602. return m.BudgetOptions
  603. }
  604. return nil
  605. }
  606. // The impact estimates for a given budget amount.
  607. type Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption struct {
  608. // The budget amount for this option.
  609. BudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=budget_amount_micros,json=budgetAmountMicros,proto3" json:"budget_amount_micros,omitempty"`
  610. // The impact estimate if budget is changed to amount specified in this
  611. // option.
  612. Impact *Recommendation_RecommendationImpact `protobuf:"bytes,2,opt,name=impact,proto3" json:"impact,omitempty"`
  613. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  614. XXX_unrecognized []byte `json:"-"`
  615. XXX_sizecache int32 `json:"-"`
  616. }
  617. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) Reset() {
  618. *m = Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption{}
  619. }
  620. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) String() string {
  621. return proto.CompactTextString(m)
  622. }
  623. func (*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) ProtoMessage() {
  624. }
  625. func (*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) Descriptor() ([]byte, []int) {
  626. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 2, 0}
  627. }
  628. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Unmarshal(b []byte) error {
  629. return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Unmarshal(m, b)
  630. }
  631. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  632. return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Marshal(b, m, deterministic)
  633. }
  634. func (dst *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Merge(src proto.Message) {
  635. xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Merge(dst, src)
  636. }
  637. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Size() int {
  638. return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Size(m)
  639. }
  640. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_DiscardUnknown() {
  641. xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.DiscardUnknown(m)
  642. }
  643. var xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption proto.InternalMessageInfo
  644. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) GetBudgetAmountMicros() *wrappers.Int64Value {
  645. if m != nil {
  646. return m.BudgetAmountMicros
  647. }
  648. return nil
  649. }
  650. func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) GetImpact() *Recommendation_RecommendationImpact {
  651. if m != nil {
  652. return m.Impact
  653. }
  654. return nil
  655. }
  656. // The keyword recommendation.
  657. type Recommendation_KeywordRecommendation struct {
  658. // The recommended keyword.
  659. Keyword *common.KeywordInfo `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"`
  660. // The recommended CPC (cost-per-click) bid.
  661. RecommendedCpcBidMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=recommended_cpc_bid_micros,json=recommendedCpcBidMicros,proto3" json:"recommended_cpc_bid_micros,omitempty"`
  662. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  663. XXX_unrecognized []byte `json:"-"`
  664. XXX_sizecache int32 `json:"-"`
  665. }
  666. func (m *Recommendation_KeywordRecommendation) Reset() { *m = Recommendation_KeywordRecommendation{} }
  667. func (m *Recommendation_KeywordRecommendation) String() string { return proto.CompactTextString(m) }
  668. func (*Recommendation_KeywordRecommendation) ProtoMessage() {}
  669. func (*Recommendation_KeywordRecommendation) Descriptor() ([]byte, []int) {
  670. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 3}
  671. }
  672. func (m *Recommendation_KeywordRecommendation) XXX_Unmarshal(b []byte) error {
  673. return xxx_messageInfo_Recommendation_KeywordRecommendation.Unmarshal(m, b)
  674. }
  675. func (m *Recommendation_KeywordRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  676. return xxx_messageInfo_Recommendation_KeywordRecommendation.Marshal(b, m, deterministic)
  677. }
  678. func (dst *Recommendation_KeywordRecommendation) XXX_Merge(src proto.Message) {
  679. xxx_messageInfo_Recommendation_KeywordRecommendation.Merge(dst, src)
  680. }
  681. func (m *Recommendation_KeywordRecommendation) XXX_Size() int {
  682. return xxx_messageInfo_Recommendation_KeywordRecommendation.Size(m)
  683. }
  684. func (m *Recommendation_KeywordRecommendation) XXX_DiscardUnknown() {
  685. xxx_messageInfo_Recommendation_KeywordRecommendation.DiscardUnknown(m)
  686. }
  687. var xxx_messageInfo_Recommendation_KeywordRecommendation proto.InternalMessageInfo
  688. func (m *Recommendation_KeywordRecommendation) GetKeyword() *common.KeywordInfo {
  689. if m != nil {
  690. return m.Keyword
  691. }
  692. return nil
  693. }
  694. func (m *Recommendation_KeywordRecommendation) GetRecommendedCpcBidMicros() *wrappers.Int64Value {
  695. if m != nil {
  696. return m.RecommendedCpcBidMicros
  697. }
  698. return nil
  699. }
  700. // The text ad recommendation.
  701. type Recommendation_TextAdRecommendation struct {
  702. // Recommended ad.
  703. Ad *Ad `protobuf:"bytes,1,opt,name=ad,proto3" json:"ad,omitempty"`
  704. // Creation date of the recommended ad.
  705. // YYYY-MM-DD format, e.g., 2018-04-17.
  706. CreationDate *wrappers.StringValue `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"`
  707. // Date, if present, is the earliest when the recommendation will be auto
  708. // applied.
  709. // YYYY-MM-DD format, e.g., 2018-04-17.
  710. AutoApplyDate *wrappers.StringValue `protobuf:"bytes,3,opt,name=auto_apply_date,json=autoApplyDate,proto3" json:"auto_apply_date,omitempty"`
  711. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  712. XXX_unrecognized []byte `json:"-"`
  713. XXX_sizecache int32 `json:"-"`
  714. }
  715. func (m *Recommendation_TextAdRecommendation) Reset() { *m = Recommendation_TextAdRecommendation{} }
  716. func (m *Recommendation_TextAdRecommendation) String() string { return proto.CompactTextString(m) }
  717. func (*Recommendation_TextAdRecommendation) ProtoMessage() {}
  718. func (*Recommendation_TextAdRecommendation) Descriptor() ([]byte, []int) {
  719. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 4}
  720. }
  721. func (m *Recommendation_TextAdRecommendation) XXX_Unmarshal(b []byte) error {
  722. return xxx_messageInfo_Recommendation_TextAdRecommendation.Unmarshal(m, b)
  723. }
  724. func (m *Recommendation_TextAdRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  725. return xxx_messageInfo_Recommendation_TextAdRecommendation.Marshal(b, m, deterministic)
  726. }
  727. func (dst *Recommendation_TextAdRecommendation) XXX_Merge(src proto.Message) {
  728. xxx_messageInfo_Recommendation_TextAdRecommendation.Merge(dst, src)
  729. }
  730. func (m *Recommendation_TextAdRecommendation) XXX_Size() int {
  731. return xxx_messageInfo_Recommendation_TextAdRecommendation.Size(m)
  732. }
  733. func (m *Recommendation_TextAdRecommendation) XXX_DiscardUnknown() {
  734. xxx_messageInfo_Recommendation_TextAdRecommendation.DiscardUnknown(m)
  735. }
  736. var xxx_messageInfo_Recommendation_TextAdRecommendation proto.InternalMessageInfo
  737. func (m *Recommendation_TextAdRecommendation) GetAd() *Ad {
  738. if m != nil {
  739. return m.Ad
  740. }
  741. return nil
  742. }
  743. func (m *Recommendation_TextAdRecommendation) GetCreationDate() *wrappers.StringValue {
  744. if m != nil {
  745. return m.CreationDate
  746. }
  747. return nil
  748. }
  749. func (m *Recommendation_TextAdRecommendation) GetAutoApplyDate() *wrappers.StringValue {
  750. if m != nil {
  751. return m.AutoApplyDate
  752. }
  753. return nil
  754. }
  755. // The Target CPA opt-in recommendation.
  756. type Recommendation_TargetCpaOptInRecommendation struct {
  757. // The available goals and corresponding options for Target CPA strategy.
  758. Options []*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"`
  759. // The recommended average CPA target. See required budget amount and impact
  760. // of using this recommendation in options list.
  761. RecommendedTargetCpaMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=recommended_target_cpa_micros,json=recommendedTargetCpaMicros,proto3" json:"recommended_target_cpa_micros,omitempty"`
  762. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  763. XXX_unrecognized []byte `json:"-"`
  764. XXX_sizecache int32 `json:"-"`
  765. }
  766. func (m *Recommendation_TargetCpaOptInRecommendation) Reset() {
  767. *m = Recommendation_TargetCpaOptInRecommendation{}
  768. }
  769. func (m *Recommendation_TargetCpaOptInRecommendation) String() string {
  770. return proto.CompactTextString(m)
  771. }
  772. func (*Recommendation_TargetCpaOptInRecommendation) ProtoMessage() {}
  773. func (*Recommendation_TargetCpaOptInRecommendation) Descriptor() ([]byte, []int) {
  774. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 5}
  775. }
  776. func (m *Recommendation_TargetCpaOptInRecommendation) XXX_Unmarshal(b []byte) error {
  777. return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Unmarshal(m, b)
  778. }
  779. func (m *Recommendation_TargetCpaOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  780. return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Marshal(b, m, deterministic)
  781. }
  782. func (dst *Recommendation_TargetCpaOptInRecommendation) XXX_Merge(src proto.Message) {
  783. xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Merge(dst, src)
  784. }
  785. func (m *Recommendation_TargetCpaOptInRecommendation) XXX_Size() int {
  786. return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Size(m)
  787. }
  788. func (m *Recommendation_TargetCpaOptInRecommendation) XXX_DiscardUnknown() {
  789. xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.DiscardUnknown(m)
  790. }
  791. var xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation proto.InternalMessageInfo
  792. func (m *Recommendation_TargetCpaOptInRecommendation) GetOptions() []*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption {
  793. if m != nil {
  794. return m.Options
  795. }
  796. return nil
  797. }
  798. func (m *Recommendation_TargetCpaOptInRecommendation) GetRecommendedTargetCpaMicros() *wrappers.Int64Value {
  799. if m != nil {
  800. return m.RecommendedTargetCpaMicros
  801. }
  802. return nil
  803. }
  804. // The Target CPA opt-in option with impact estimate.
  805. type Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption struct {
  806. // The goal achieved by this option.
  807. Goal enums.TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal `protobuf:"varint,1,opt,name=goal,proto3,enum=google.ads.googleads.v0.enums.TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal" json:"goal,omitempty"`
  808. // Average CPA target.
  809. TargetCpaMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=target_cpa_micros,json=targetCpaMicros,proto3" json:"target_cpa_micros,omitempty"`
  810. // The minimum campaign budget, in local currency for the account,
  811. // required to achieve the target CPA.
  812. // Amount is specified in micros, where one million is equivalent to one
  813. // currency unit.
  814. RequiredCampaignBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=required_campaign_budget_amount_micros,json=requiredCampaignBudgetAmountMicros,proto3" json:"required_campaign_budget_amount_micros,omitempty"`
  815. // The impact estimate if this option is selected.
  816. Impact *Recommendation_RecommendationImpact `protobuf:"bytes,4,opt,name=impact,proto3" json:"impact,omitempty"`
  817. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  818. XXX_unrecognized []byte `json:"-"`
  819. XXX_sizecache int32 `json:"-"`
  820. }
  821. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) Reset() {
  822. *m = Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption{}
  823. }
  824. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) String() string {
  825. return proto.CompactTextString(m)
  826. }
  827. func (*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) ProtoMessage() {
  828. }
  829. func (*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) Descriptor() ([]byte, []int) {
  830. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 5, 0}
  831. }
  832. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Unmarshal(b []byte) error {
  833. return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Unmarshal(m, b)
  834. }
  835. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  836. return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Marshal(b, m, deterministic)
  837. }
  838. func (dst *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Merge(src proto.Message) {
  839. xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Merge(dst, src)
  840. }
  841. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Size() int {
  842. return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Size(m)
  843. }
  844. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_DiscardUnknown() {
  845. xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.DiscardUnknown(m)
  846. }
  847. var xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption proto.InternalMessageInfo
  848. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetGoal() enums.TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal {
  849. if m != nil {
  850. return m.Goal
  851. }
  852. return enums.TargetCpaOptInRecommendationGoalEnum_UNSPECIFIED
  853. }
  854. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetTargetCpaMicros() *wrappers.Int64Value {
  855. if m != nil {
  856. return m.TargetCpaMicros
  857. }
  858. return nil
  859. }
  860. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetRequiredCampaignBudgetAmountMicros() *wrappers.Int64Value {
  861. if m != nil {
  862. return m.RequiredCampaignBudgetAmountMicros
  863. }
  864. return nil
  865. }
  866. func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetImpact() *Recommendation_RecommendationImpact {
  867. if m != nil {
  868. return m.Impact
  869. }
  870. return nil
  871. }
  872. // The Maximize Conversions Opt-In recommendation.
  873. type Recommendation_MaximizeConversionsOptInRecommendation struct {
  874. // The recommended new budget amount.
  875. RecommendedBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=recommended_budget_amount_micros,json=recommendedBudgetAmountMicros,proto3" json:"recommended_budget_amount_micros,omitempty"`
  876. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  877. XXX_unrecognized []byte `json:"-"`
  878. XXX_sizecache int32 `json:"-"`
  879. }
  880. func (m *Recommendation_MaximizeConversionsOptInRecommendation) Reset() {
  881. *m = Recommendation_MaximizeConversionsOptInRecommendation{}
  882. }
  883. func (m *Recommendation_MaximizeConversionsOptInRecommendation) String() string {
  884. return proto.CompactTextString(m)
  885. }
  886. func (*Recommendation_MaximizeConversionsOptInRecommendation) ProtoMessage() {}
  887. func (*Recommendation_MaximizeConversionsOptInRecommendation) Descriptor() ([]byte, []int) {
  888. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 6}
  889. }
  890. func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Unmarshal(b []byte) error {
  891. return xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Unmarshal(m, b)
  892. }
  893. func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  894. return xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Marshal(b, m, deterministic)
  895. }
  896. func (dst *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Merge(src proto.Message) {
  897. xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Merge(dst, src)
  898. }
  899. func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Size() int {
  900. return xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Size(m)
  901. }
  902. func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_DiscardUnknown() {
  903. xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.DiscardUnknown(m)
  904. }
  905. var xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation proto.InternalMessageInfo
  906. func (m *Recommendation_MaximizeConversionsOptInRecommendation) GetRecommendedBudgetAmountMicros() *wrappers.Int64Value {
  907. if m != nil {
  908. return m.RecommendedBudgetAmountMicros
  909. }
  910. return nil
  911. }
  912. // The Enhanced Cost-Per-Click Opt-In recommendation.
  913. type Recommendation_EnhancedCpcOptInRecommendation struct {
  914. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  915. XXX_unrecognized []byte `json:"-"`
  916. XXX_sizecache int32 `json:"-"`
  917. }
  918. func (m *Recommendation_EnhancedCpcOptInRecommendation) Reset() {
  919. *m = Recommendation_EnhancedCpcOptInRecommendation{}
  920. }
  921. func (m *Recommendation_EnhancedCpcOptInRecommendation) String() string {
  922. return proto.CompactTextString(m)
  923. }
  924. func (*Recommendation_EnhancedCpcOptInRecommendation) ProtoMessage() {}
  925. func (*Recommendation_EnhancedCpcOptInRecommendation) Descriptor() ([]byte, []int) {
  926. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 7}
  927. }
  928. func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_Unmarshal(b []byte) error {
  929. return xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Unmarshal(m, b)
  930. }
  931. func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  932. return xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Marshal(b, m, deterministic)
  933. }
  934. func (dst *Recommendation_EnhancedCpcOptInRecommendation) XXX_Merge(src proto.Message) {
  935. xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Merge(dst, src)
  936. }
  937. func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_Size() int {
  938. return xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Size(m)
  939. }
  940. func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_DiscardUnknown() {
  941. xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.DiscardUnknown(m)
  942. }
  943. var xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation proto.InternalMessageInfo
  944. // The Search Partners Opt-In recommendation.
  945. type Recommendation_SearchPartnersOptInRecommendation struct {
  946. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  947. XXX_unrecognized []byte `json:"-"`
  948. XXX_sizecache int32 `json:"-"`
  949. }
  950. func (m *Recommendation_SearchPartnersOptInRecommendation) Reset() {
  951. *m = Recommendation_SearchPartnersOptInRecommendation{}
  952. }
  953. func (m *Recommendation_SearchPartnersOptInRecommendation) String() string {
  954. return proto.CompactTextString(m)
  955. }
  956. func (*Recommendation_SearchPartnersOptInRecommendation) ProtoMessage() {}
  957. func (*Recommendation_SearchPartnersOptInRecommendation) Descriptor() ([]byte, []int) {
  958. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 8}
  959. }
  960. func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_Unmarshal(b []byte) error {
  961. return xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Unmarshal(m, b)
  962. }
  963. func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  964. return xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Marshal(b, m, deterministic)
  965. }
  966. func (dst *Recommendation_SearchPartnersOptInRecommendation) XXX_Merge(src proto.Message) {
  967. xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Merge(dst, src)
  968. }
  969. func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_Size() int {
  970. return xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Size(m)
  971. }
  972. func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_DiscardUnknown() {
  973. xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.DiscardUnknown(m)
  974. }
  975. var xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation proto.InternalMessageInfo
  976. // The Maximize Clicks opt-in recommendation.
  977. type Recommendation_MaximizeClicksOptInRecommendation struct {
  978. // The recommended new budget amount.
  979. // Only set if the current budget is too high.
  980. RecommendedBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=recommended_budget_amount_micros,json=recommendedBudgetAmountMicros,proto3" json:"recommended_budget_amount_micros,omitempty"`
  981. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  982. XXX_unrecognized []byte `json:"-"`
  983. XXX_sizecache int32 `json:"-"`
  984. }
  985. func (m *Recommendation_MaximizeClicksOptInRecommendation) Reset() {
  986. *m = Recommendation_MaximizeClicksOptInRecommendation{}
  987. }
  988. func (m *Recommendation_MaximizeClicksOptInRecommendation) String() string {
  989. return proto.CompactTextString(m)
  990. }
  991. func (*Recommendation_MaximizeClicksOptInRecommendation) ProtoMessage() {}
  992. func (*Recommendation_MaximizeClicksOptInRecommendation) Descriptor() ([]byte, []int) {
  993. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 9}
  994. }
  995. func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_Unmarshal(b []byte) error {
  996. return xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Unmarshal(m, b)
  997. }
  998. func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  999. return xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Marshal(b, m, deterministic)
  1000. }
  1001. func (dst *Recommendation_MaximizeClicksOptInRecommendation) XXX_Merge(src proto.Message) {
  1002. xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Merge(dst, src)
  1003. }
  1004. func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_Size() int {
  1005. return xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Size(m)
  1006. }
  1007. func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_DiscardUnknown() {
  1008. xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.DiscardUnknown(m)
  1009. }
  1010. var xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation proto.InternalMessageInfo
  1011. func (m *Recommendation_MaximizeClicksOptInRecommendation) GetRecommendedBudgetAmountMicros() *wrappers.Int64Value {
  1012. if m != nil {
  1013. return m.RecommendedBudgetAmountMicros
  1014. }
  1015. return nil
  1016. }
  1017. // The Optimize Ad Rotation recommendation.
  1018. type Recommendation_OptimizeAdRotationRecommendation struct {
  1019. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1020. XXX_unrecognized []byte `json:"-"`
  1021. XXX_sizecache int32 `json:"-"`
  1022. }
  1023. func (m *Recommendation_OptimizeAdRotationRecommendation) Reset() {
  1024. *m = Recommendation_OptimizeAdRotationRecommendation{}
  1025. }
  1026. func (m *Recommendation_OptimizeAdRotationRecommendation) String() string {
  1027. return proto.CompactTextString(m)
  1028. }
  1029. func (*Recommendation_OptimizeAdRotationRecommendation) ProtoMessage() {}
  1030. func (*Recommendation_OptimizeAdRotationRecommendation) Descriptor() ([]byte, []int) {
  1031. return fileDescriptor_recommendation_d606c19f64e888c2, []int{0, 10}
  1032. }
  1033. func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Unmarshal(b []byte) error {
  1034. return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Unmarshal(m, b)
  1035. }
  1036. func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1037. return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Marshal(b, m, deterministic)
  1038. }
  1039. func (dst *Recommendation_OptimizeAdRotationRecommendation) XXX_Merge(src proto.Message) {
  1040. xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Merge(dst, src)
  1041. }
  1042. func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Size() int {
  1043. return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Size(m)
  1044. }
  1045. func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_DiscardUnknown() {
  1046. xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.DiscardUnknown(m)
  1047. }
  1048. var xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation proto.InternalMessageInfo
  1049. func init() {
  1050. proto.RegisterType((*Recommendation)(nil), "google.ads.googleads.v0.resources.Recommendation")
  1051. proto.RegisterType((*Recommendation_RecommendationImpact)(nil), "google.ads.googleads.v0.resources.Recommendation.RecommendationImpact")
  1052. proto.RegisterType((*Recommendation_RecommendationMetrics)(nil), "google.ads.googleads.v0.resources.Recommendation.RecommendationMetrics")
  1053. proto.RegisterType((*Recommendation_CampaignBudgetRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.CampaignBudgetRecommendation")
  1054. proto.RegisterType((*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption)(nil), "google.ads.googleads.v0.resources.Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption")
  1055. proto.RegisterType((*Recommendation_KeywordRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.KeywordRecommendation")
  1056. proto.RegisterType((*Recommendation_TextAdRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.TextAdRecommendation")
  1057. proto.RegisterType((*Recommendation_TargetCpaOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.TargetCpaOptInRecommendation")
  1058. proto.RegisterType((*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption)(nil), "google.ads.googleads.v0.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption")
  1059. proto.RegisterType((*Recommendation_MaximizeConversionsOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.MaximizeConversionsOptInRecommendation")
  1060. proto.RegisterType((*Recommendation_EnhancedCpcOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.EnhancedCpcOptInRecommendation")
  1061. proto.RegisterType((*Recommendation_SearchPartnersOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.SearchPartnersOptInRecommendation")
  1062. proto.RegisterType((*Recommendation_MaximizeClicksOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.MaximizeClicksOptInRecommendation")
  1063. proto.RegisterType((*Recommendation_OptimizeAdRotationRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.OptimizeAdRotationRecommendation")
  1064. }
  1065. func init() {
  1066. proto.RegisterFile("google/ads/googleads/v0/resources/recommendation.proto", fileDescriptor_recommendation_d606c19f64e888c2)
  1067. }
  1068. var fileDescriptor_recommendation_d606c19f64e888c2 = []byte{
  1069. // 1336 bytes of a gzipped FileDescriptorProto
  1070. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4d, 0x6f, 0xdc, 0x44,
  1071. 0x18, 0xc6, 0x9b, 0x34, 0x69, 0xdf, 0x4d, 0x36, 0xed, 0x90, 0x96, 0xc5, 0x84, 0x68, 0x93, 0x92,
  1072. 0x2a, 0x2a, 0x62, 0x37, 0x0a, 0xa5, 0xad, 0x96, 0x0f, 0x69, 0x93, 0x86, 0x34, 0xa0, 0xb4, 0x91,
  1073. 0x5b, 0x45, 0x15, 0x8a, 0x6a, 0xcd, 0x7a, 0xa6, 0x5b, 0xd3, 0xb5, 0xc7, 0x1d, 0xcf, 0xa6, 0x09,
  1074. 0x07, 0xd4, 0x23, 0x08, 0x89, 0x23, 0xea, 0x89, 0x03, 0x1c, 0x90, 0xf8, 0x01, 0xa8, 0xff, 0x00,
  1075. 0xa9, 0xd7, 0x4a, 0xfc, 0x08, 0x7e, 0x01, 0x47, 0xe4, 0xf1, 0xd8, 0xd9, 0x0f, 0x7f, 0xec, 0x2e,
  1076. 0x2d, 0x37, 0xdb, 0xf3, 0x3c, 0xcf, 0xfb, 0xcc, 0xe7, 0xfb, 0x8e, 0xe1, 0x6a, 0x8b, 0xb1, 0x56,
  1077. 0x9b, 0xd6, 0x30, 0xf1, 0x6b, 0xe1, 0x63, 0xf0, 0x74, 0xb8, 0x56, 0xe3, 0xd4, 0x67, 0x1d, 0x6e,
  1078. 0x51, 0xbf, 0xc6, 0xa9, 0xc5, 0x1c, 0x87, 0xba, 0x04, 0x0b, 0x9b, 0xb9, 0x55, 0x8f, 0x33, 0xc1,
  1079. 0xd0, 0x52, 0x08, 0xae, 0x62, 0xe2, 0x57, 0x63, 0x5e, 0xf5, 0x70, 0xad, 0x1a, 0xf3, 0xf4, 0x0f,
  1080. 0xd2, 0xa4, 0x03, 0x39, 0xe6, 0xd6, 0x2c, 0x6e, 0x0b, 0xca, 0x6d, 0x1c, 0x2a, 0xea, 0xd7, 0xd2,
  1081. 0xe0, 0xd4, 0xed, 0x38, 0xfd, 0x2e, 0x4c, 0x71, 0xec, 0x51, 0x45, 0xdc, 0xc9, 0x26, 0x0a, 0xcc,
  1082. 0x5b, 0x54, 0x98, 0x96, 0x87, 0x4d, 0xe6, 0x09, 0xd3, 0x76, 0xcd, 0x3e, 0xa9, 0x16, 0xc3, 0x6d,
  1083. 0x25, 0x75, 0x39, 0x7f, 0x34, 0x30, 0x51, 0xd8, 0x45, 0x85, 0x95, 0x6f, 0xcd, 0xce, 0x83, 0xda,
  1084. 0x13, 0x8e, 0x3d, 0x8f, 0x72, 0x3f, 0x6c, 0x5f, 0xfe, 0xee, 0x3d, 0x28, 0x19, 0x3d, 0x91, 0xd0,
  1085. 0x45, 0x98, 0x8d, 0x84, 0x4c, 0x17, 0x3b, 0xb4, 0xac, 0x55, 0xb4, 0xd5, 0x33, 0xc6, 0x4c, 0xf4,
  1086. 0xf1, 0x16, 0x76, 0x28, 0x3a, 0x80, 0xc9, 0xa0, 0x73, 0xe5, 0x42, 0x45, 0x5b, 0x2d, 0xad, 0xdf,
  1087. 0xac, 0xa6, 0x0d, 0xb4, 0xec, 0x5d, 0xb5, 0x37, 0xc2, 0xdd, 0x63, 0x8f, 0x6e, 0xb9, 0x1d, 0x27,
  1088. 0xe1, 0xb3, 0x21, 0x55, 0xd1, 0x7d, 0x98, 0xb2, 0x1d, 0x0f, 0x5b, 0xa2, 0x3c, 0x51, 0xd1, 0x56,
  1089. 0x8b, 0xeb, 0x9f, 0x57, 0x73, 0x27, 0xb2, 0x4f, 0xac, 0xef, 0x75, 0x47, 0xaa, 0x19, 0x4a, 0x15,
  1090. 0x6d, 0xc1, 0x9c, 0x85, 0x1d, 0x0f, 0xdb, 0x2d, 0xd7, 0x6c, 0x76, 0x48, 0x8b, 0x8a, 0xf2, 0x29,
  1091. 0x19, 0x68, 0x21, 0x0a, 0x14, 0x8d, 0x57, 0xf5, 0x8e, 0xe0, 0xb6, 0xdb, 0xda, 0xc7, 0xed, 0x0e,
  1092. 0x35, 0x4a, 0x11, 0x69, 0x43, 0x72, 0xd0, 0x75, 0x38, 0x1d, 0x7d, 0x29, 0x4f, 0x0d, 0xc1, 0x8f,
  1093. 0xd1, 0xe8, 0x1a, 0x9c, 0xc6, 0xc4, 0x6c, 0x71, 0xd6, 0xf1, 0xca, 0xd3, 0x43, 0x30, 0xa7, 0x31,
  1094. 0xd9, 0x0e, 0xc0, 0xe8, 0x3a, 0x9c, 0x21, 0xb6, 0xef, 0xd8, 0xbe, 0x4f, 0x49, 0x79, 0x56, 0x32,
  1095. 0xf5, 0x01, 0xe6, 0x06, 0x63, 0xed, 0x90, 0x77, 0x02, 0x46, 0x3f, 0x69, 0xb0, 0xd8, 0xd7, 0xe9,
  1096. 0xbe, 0x35, 0x56, 0x9e, 0x94, 0x7a, 0xb7, 0x46, 0x1f, 0xec, 0xcd, 0x9e, 0x71, 0xe9, 0x6d, 0xbc,
  1097. 0xf9, 0x86, 0xb1, 0x60, 0x65, 0xb4, 0xa3, 0xa7, 0x1a, 0x5c, 0x78, 0x44, 0x8f, 0x9f, 0x30, 0x4e,
  1098. 0xfa, 0x0d, 0x9d, 0x96, 0x86, 0xb6, 0x47, 0x37, 0xf4, 0x65, 0xa8, 0x37, 0xe0, 0xe4, 0xfc, 0xa3,
  1099. 0xa4, 0x06, 0xf4, 0x2d, 0x5c, 0x10, 0xf4, 0x48, 0x98, 0x78, 0xc0, 0xc1, 0x99, 0x71, 0xd7, 0xdf,
  1100. 0x5d, 0x7a, 0x24, 0x1a, 0x83, 0x06, 0xe6, 0x45, 0xc2, 0x77, 0xf4, 0x4c, 0x83, 0x4a, 0xde, 0x09,
  1101. 0x50, 0x86, 0x71, 0x67, 0xe7, 0xae, 0x54, 0xde, 0xf4, 0xf0, 0x6d, 0x4f, 0xec, 0xb8, 0x83, 0xb3,
  1102. 0x23, 0x32, 0xda, 0xd1, 0x1f, 0x1a, 0x5c, 0x76, 0xf0, 0x91, 0xed, 0xd8, 0xdf, 0x50, 0xd3, 0x62,
  1103. 0xee, 0x21, 0xe5, 0xbe, 0xcd, 0x5c, 0x3f, 0xc5, 0x64, 0x51, 0x9a, 0xbc, 0x37, 0xba, 0xc9, 0x5d,
  1104. 0x15, 0x63, 0xf3, 0x24, 0x44, 0xb2, 0xdd, 0x4b, 0xce, 0x50, 0x48, 0xf4, 0xb3, 0x06, 0xcb, 0xd4,
  1105. 0x7d, 0x88, 0x5d, 0x8b, 0x12, 0xd3, 0xf2, 0xac, 0x14, 0xc3, 0x33, 0xd2, 0xf0, 0xde, 0xe8, 0x86,
  1106. 0xb7, 0x94, 0xf6, 0xa6, 0x67, 0x25, 0x1b, 0x5d, 0xa4, 0x99, 0x08, 0xf4, 0x9b, 0x06, 0x2b, 0x3e,
  1107. 0xc5, 0xdc, 0x7a, 0x68, 0x7a, 0x98, 0x0b, 0x97, 0xf2, 0xb4, 0x41, 0x2d, 0x49, 0x8f, 0x77, 0x46,
  1108. 0xf7, 0x78, 0x47, 0xca, 0xef, 0x29, 0xf5, 0x64, 0x9b, 0x4b, 0x7e, 0x1e, 0x48, 0x3a, 0x3d, 0x59,
  1109. 0x03, 0x6d, 0xdb, 0x7a, 0x94, 0xe6, 0x74, 0x6e, 0x5c, 0xa7, 0xf1, 0xf4, 0x4b, 0xf5, 0x14, 0xa7,
  1110. 0x4e, 0x1e, 0x08, 0xfd, 0xaa, 0xc1, 0x45, 0xe6, 0x89, 0xd0, 0x69, 0xb0, 0x9b, 0x99, 0x08, 0xd3,
  1111. 0x67, 0x9f, 0xcf, 0xb3, 0xd2, 0xa7, 0x31, 0xba, 0xcf, 0xdb, 0x4a, 0xbc, 0x41, 0x0c, 0x25, 0x3d,
  1112. 0x60, 0xb3, 0xc2, 0x72, 0x30, 0xfa, 0x3f, 0x1a, 0xcc, 0x27, 0xe5, 0x27, 0xf4, 0x35, 0xcc, 0x34,
  1113. 0xb1, 0x4f, 0x4d, 0x87, 0x0a, 0x6e, 0x5b, 0xbe, 0xcc, 0xbc, 0x63, 0x9d, 0x7f, 0xbd, 0xaf, 0xbb,
  1114. 0xa1, 0x9c, 0x51, 0x0c, 0xc4, 0xd5, 0x0b, 0x12, 0x70, 0xce, 0x63, 0x82, 0xba, 0xc2, 0xc6, 0xed,
  1115. 0x38, 0x60, 0xe1, 0xd5, 0x06, 0x3c, 0x1b, 0x47, 0x50, 0x5f, 0xf4, 0x17, 0x05, 0x38, 0x9f, 0x88,
  1116. 0x45, 0x9f, 0x41, 0xd1, 0x76, 0x3c, 0x4e, 0x7d, 0xb9, 0xa3, 0x55, 0xd7, 0x07, 0xb3, 0xe2, 0x0d,
  1117. 0xd6, 0x69, 0xb6, 0x69, 0x98, 0xdd, 0xba, 0x09, 0xe8, 0x0a, 0x4c, 0x85, 0x4b, 0x53, 0x75, 0x22,
  1118. 0x9b, 0xaa, 0xb0, 0xe8, 0x13, 0x28, 0x5a, 0xcc, 0x17, 0xa6, 0x63, 0x5b, 0x9c, 0xf9, 0xaa, 0xdc,
  1119. 0x78, 0x67, 0x80, 0xba, 0xe3, 0x8a, 0xab, 0x57, 0x42, 0x26, 0x04, 0xf8, 0x5d, 0x09, 0x0f, 0x3c,
  1120. 0x77, 0x1d, 0x89, 0x2a, 0x7f, 0xe6, 0x78, 0xee, 0x22, 0xa0, 0x4f, 0xa1, 0x78, 0x68, 0x13, 0xca,
  1121. 0xcc, 0x43, 0x9b, 0x3e, 0xf1, 0x53, 0x6b, 0x90, 0x6e, 0x3e, 0x48, 0xc2, 0x7e, 0x80, 0xd7, 0x5f,
  1122. 0x4e, 0xc2, 0x42, 0x56, 0xea, 0x45, 0x07, 0xb0, 0x60, 0x75, 0x38, 0xa7, 0xae, 0x88, 0x32, 0x3e,
  1123. 0x76, 0x58, 0xc7, 0x8d, 0xbb, 0xab, 0xe5, 0x77, 0xf7, 0x6d, 0x25, 0x10, 0xea, 0x37, 0x24, 0x5d,
  1124. 0xf5, 0x9e, 0x40, 0x25, 0xde, 0x56, 0x94, 0x24, 0x47, 0x28, 0xe4, 0x47, 0x78, 0xb7, 0x4b, 0x24,
  1125. 0x21, 0xca, 0x33, 0x0d, 0x4a, 0x4a, 0x3a, 0xd8, 0x58, 0xc1, 0x38, 0x4f, 0x54, 0x26, 0x56, 0x8b,
  1126. 0xeb, 0x8f, 0x5f, 0x6d, 0x9d, 0x92, 0xd9, 0x78, 0x5b, 0x46, 0x36, 0x66, 0x43, 0x23, 0xe1, 0x9b,
  1127. 0xaf, 0xbf, 0xd4, 0x60, 0x39, 0x9f, 0x85, 0x76, 0x61, 0x7e, 0xdc, 0xd1, 0x47, 0xcd, 0xc1, 0x01,
  1128. 0x39, 0x29, 0x8e, 0x0b, 0xaf, 0xa3, 0x38, 0xd6, 0x9f, 0x6b, 0x70, 0x3e, 0xb1, 0x7e, 0x42, 0x5b,
  1129. 0x30, 0xad, 0xea, 0x27, 0xe5, 0xfd, 0xfd, 0xd4, 0xd0, 0xe1, 0xed, 0x29, 0xaa, 0xc3, 0x76, 0xdc,
  1130. 0x07, 0xcc, 0x88, 0xb8, 0xe8, 0x1e, 0xe8, 0xdd, 0xeb, 0x26, 0xc8, 0xcd, 0x4d, 0x9b, 0x8c, 0xb0,
  1131. 0x62, 0xde, 0xea, 0xa2, 0x6f, 0x7a, 0xd6, 0x86, 0x4d, 0xc2, 0xa1, 0xd1, 0xff, 0xd2, 0x60, 0x3e,
  1132. 0xa9, 0xf0, 0x42, 0x1f, 0x41, 0x01, 0x47, 0xa6, 0x57, 0x86, 0x18, 0xaf, 0x06, 0x31, 0x0a, 0x98,
  1133. 0xa0, 0x06, 0xcc, 0x5a, 0x9c, 0x86, 0x19, 0x84, 0x60, 0x41, 0x53, 0x8f, 0x96, 0xee, 0x5a, 0x7d,
  1134. 0x26, 0xa2, 0xdc, 0xc0, 0x82, 0xa2, 0x1b, 0x30, 0x87, 0x3b, 0x82, 0x99, 0xd8, 0xf3, 0xda, 0xc7,
  1135. 0xa1, 0xc8, 0xc4, 0x10, 0x22, 0xb3, 0x01, 0xa9, 0x11, 0x70, 0x02, 0x15, 0xfd, 0xcf, 0x53, 0xb0,
  1136. 0x90, 0x55, 0xc6, 0xa1, 0x1f, 0x34, 0x98, 0x8e, 0xb6, 0x87, 0x36, 0xee, 0xf6, 0xc8, 0x8a, 0x90,
  1137. 0xd9, 0xa8, 0xb6, 0x47, 0xe4, 0x00, 0xdd, 0x87, 0xee, 0x4d, 0x6d, 0x76, 0x95, 0xb6, 0xc3, 0x4f,
  1138. 0x72, 0xf7, 0x1a, 0x89, 0x63, 0xab, 0x79, 0x7e, 0x3e, 0x01, 0xcb, 0xf9, 0x7e, 0xd0, 0x11, 0x4c,
  1139. 0x06, 0xd7, 0x66, 0x39, 0xef, 0xa5, 0x75, 0x92, 0x73, 0x49, 0xcd, 0x12, 0xdc, 0x66, 0xb8, 0x2d,
  1140. 0xaf, 0xac, 0x79, 0x20, 0x43, 0x46, 0x44, 0xdb, 0x70, 0x6e, 0xac, 0x4e, 0xcf, 0x89, 0xde, 0x9e,
  1141. 0x22, 0x06, 0x97, 0x38, 0x7d, 0xdc, 0xb1, 0x79, 0xb0, 0x51, 0xfa, 0x6e, 0x6f, 0xbd, 0xa7, 0xc9,
  1142. 0x10, 0xa9, 0x6b, 0x39, 0x92, 0xea, 0x3d, 0xb4, 0x52, 0x4e, 0x97, 0xc9, 0xd7, 0x72, 0xba, 0xfc,
  1143. 0xa8, 0xc1, 0xa5, 0xe1, 0x6a, 0xfd, 0xa1, 0xf2, 0x8b, 0xf6, 0x5f, 0xf3, 0x8b, 0x5e, 0x81, 0xc5,
  1144. 0xec, 0x52, 0x5e, 0xbf, 0x08, 0x4b, 0xb9, 0x85, 0xb4, 0xfe, 0xbd, 0x06, 0x4b, 0xb9, 0x45, 0xec,
  1145. 0xff, 0xd4, 0xa5, 0x65, 0xa8, 0xe4, 0xd5, 0xa9, 0x1b, 0x67, 0xa1, 0xd4, 0x5b, 0x13, 0x6f, 0x3c,
  1146. 0x2d, 0xc0, 0x8a, 0xc5, 0x9c, 0xfc, 0xf9, 0xde, 0x78, 0xb3, 0x57, 0x6b, 0x2f, 0x70, 0xb8, 0xa7,
  1147. 0x7d, 0xf5, 0x85, 0x62, 0xb6, 0x58, 0x1b, 0xbb, 0xad, 0x2a, 0xe3, 0xad, 0x5a, 0x8b, 0xba, 0xd2,
  1148. 0x7f, 0xf4, 0x9f, 0xca, 0xb3, 0xfd, 0x8c, 0xdf, 0x56, 0x1f, 0xc7, 0x4f, 0xbf, 0x14, 0x26, 0xb6,
  1149. 0x1b, 0x8d, 0xdf, 0x0b, 0x4b, 0xdb, 0xa1, 0x64, 0x83, 0xf8, 0xd5, 0xf0, 0x31, 0x78, 0xda, 0x5f,
  1150. 0xab, 0x1a, 0x11, 0xf2, 0x45, 0x84, 0x39, 0x68, 0x10, 0xff, 0x20, 0xc6, 0x1c, 0xec, 0xaf, 0x1d,
  1151. 0xc4, 0x98, 0xbf, 0x0b, 0x2b, 0x61, 0x43, 0xbd, 0xde, 0x20, 0x7e, 0xbd, 0x1e, 0xa3, 0xea, 0xf5,
  1152. 0xfd, 0xb5, 0x7a, 0x3d, 0xc6, 0x35, 0xa7, 0xa4, 0xd9, 0x0f, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff,
  1153. 0xa6, 0xbf, 0x64, 0x3a, 0x70, 0x14, 0x00, 0x00,
  1154. }