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.
 
 
 

1271 lines
62 KiB

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