-
Notifications
You must be signed in to change notification settings - Fork 43
/
optimized_goal_get.go
98 lines (92 loc) · 3.79 KB
/
optimized_goal_get.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package v3
import (
"strconv"
"github.com/bububa/oceanengine/marketing-api/enum"
"github.com/bububa/oceanengine/marketing-api/model"
"github.com/bububa/oceanengine/marketing-api/model/eventmanager"
"github.com/bububa/oceanengine/marketing-api/util"
)
// OptimizedGoalGetRequest 获取优化目标 API Request
type OptimizedGoalGetRequest struct {
// AdvertiserID 广告主id
AdvertiserID uint64 `json:"advertiser_id,omitempty"`
// DeliveryMode 投放模式,允许值:MANUAL手动投放(默认值)、PROCEDURAL自动投放
DeliveryMode enum.DeliveryMode `json:"delivery_mode,omitempty"`
// LandingType 广告组推广目的,允许值:LINK 销售线索收集
LandingType enum.LandingType `json:"landing_type,omitempty"`
// MarketingGoal 营销场景,允许值:VIDEO_AND_IMAGE 短视频/图片,LIVE直播
MarketingGoal enum.MarketingGoal `json:"marketing_goal,omitempty"`
// AdType 广告类型,允许值: ALL
AdType enum.CampaignType `json:"ad_type,omitempty"`
// DeliveryType 投放类型,允许值
// NORMAL 常规投放
// DURATION 周期稳投
// 当前仅支持搜索广告,即ad_type = SEARCH下传入该枚举值有效,否则报错
DeliveryType enum.DeliveryType `json:"delivery_type,omitempty"`
// AssetType 资产类型,允许值:THIRD_EXTERNAL 三方落地页、TETRIS_EXTERNAL 建站、APP 应用、QUICK_APP 快应用、MINI_PROGRAME字节小程序
AssetType enum.AssetType `json:"asset_type,omitempty"`
// MiniProgoramID 字节小程序资产id,当asset_type=MINI_PROGRAME时需传入
MiniProgramID string `json:"mini_program_id,omitempty"`
// QuickAppID 快应用id,当 landing_type = QUICK_APP 时该字段必填
QuickAppID string `json:"quick_app_id,omitempty"`
// AssetID 三方的资产id,当asset_type为THIRD_EXTERNAL时必填
AssetID uint64 `json:"asset_id,omitempty"`
// PackageName 应用包名称
PackageName string `json:"package_name,omitempty"`
// AppType 应用类型,当asset_type为应用APP时必填
// 可选值:ANDROID 、IOS
AppType string `json:"app_type,omitempty"`
// AppPromotionType 子目标,当 landing_type = APP 时该字段必填,允许值: DOWNLOAD 应用下载、LAUNCH 应用调用、RESERVE 预约下载
AppPromotionType enum.AppPromotionType `json:"app_promotion_type,omitempty"`
}
// Encode implement GetRequest interface
func (r OptimizedGoalGetRequest) Encode() string {
values := util.GetUrlValues()
values.Set("advertiser_id", strconv.FormatUint(r.AdvertiserID, 10))
if r.DeliveryMode != "" {
values.Set("delivery_mode", string(r.DeliveryMode))
}
values.Set("landing_type", string(r.LandingType))
if r.MarketingGoal != "" {
values.Set("marketing_goal", string(r.MarketingGoal))
}
if r.AppType != "" {
values.Set("app_type", r.AppType)
}
values.Set("asset_type", string(r.AssetType))
values.Set("ad_type", string(r.AdType))
if r.MiniProgramID != "" {
values.Set("mini_program_id", r.MiniProgramID)
}
if r.QuickAppID != "" {
values.Set("quick_app_id", r.QuickAppID)
}
if r.AssetID > 0 {
values.Set("asset_id", strconv.FormatUint(r.AssetID, 10))
}
if r.PackageName != "" {
values.Set("package_name", r.PackageName)
}
if r.AppType != "" {
values.Set("app_type", r.AppType)
}
if r.AppPromotionType != "" {
values.Set("app_promotion_type", string(r.AppPromotionType))
}
ret := values.Encode()
util.PutUrlValues(values)
return ret
}
// OptimizedGoalGetResponse 获取优化目标 API Response
type OptimizedGoalGetResponse struct {
model.BaseResponse
// Data json返回值
Data *OptimizedGoalGetResponseData `json:"data,omitempty"`
}
// OptimizedGoalGetResponseData json返回值
type OptimizedGoalGetResponseData struct {
// AssetIDs 资产 id
AssetIDs []uint64 `json:"asset_ids,omitempty"`
// Goals 优化目标数据列表
Goals []eventmanager.EventConvertOptimizedGoal `json:"goals,omitempty"`
}