diff --git a/marketing-api/OCEANENGINE.md b/marketing-api/OCEANENGINE.md index d716efff..b0d8b409 100644 --- a/marketing-api/OCEANENGINE.md +++ b/marketing-api/OCEANENGINE.md @@ -209,6 +209,7 @@ - 转化回传 [ Conversion(req *conversion.Request) error ] - 工具 - 查询工具 + - 查询在投计划配额 [ tools.QuotaGet(clt *core.SDKClient, accessToken string, req *tools.QuotaGetRequest) (*tools.QuotaGetResult, error) ] - 查询受众预估结果 [ tools.EstimateAudience(clt *core.SDKClient, accessToken string, req *tools.EstimateAudienceRequest) (*tools.EstimateAudienceResponseData, error) ] - 建议日预算及预期成本 [ BidSuggest(clt *core.SDKClient, accessToken string, req *tools.BidSuggestRequest) (*tools.BidSuggest, error) ] - 日志查询 [ tools/log.Search(clt *core.SDKClient, accessToken string, req *log.SearchRequest) (*log.SearchResponseData, error) ] diff --git a/marketing-api/api/tools/quota_get.go b/marketing-api/api/tools/quota_get.go new file mode 100644 index 00000000..09609b50 --- /dev/null +++ b/marketing-api/api/tools/quota_get.go @@ -0,0 +1,16 @@ +package tools + +import ( + "github.com/bububa/oceanengine/marketing-api/core" + "github.com/bububa/oceanengine/marketing-api/model/tools" +) + +// QuotaGet 查询在投计划配额 +// 该接口用于查询广告账户的在投计划配额和使用进度 +func QuotaGet(clt *core.SDKClient, accessToken string, req *tools.QuotaGetRequest) (*tools.QuotaGetResult, error) { + var resp tools.QuotaGetResponse + if err := clt.Get("2/tools/quota/get/", req, &resp, accessToken); err != nil { + return nil, err + } + return resp.Data, nil +} diff --git a/marketing-api/model/tools/quota_get.go b/marketing-api/model/tools/quota_get.go new file mode 100644 index 00000000..58bb23b1 --- /dev/null +++ b/marketing-api/model/tools/quota_get.go @@ -0,0 +1,43 @@ +package tools + +import ( + "net/url" + "strconv" + + "github.com/bububa/oceanengine/marketing-api/enum" + "github.com/bububa/oceanengine/marketing-api/model" +) + +// QuotaGetRequest 查询在投计划配额 API Request +type QuotaGetRequest struct { + // AdvertiserID 广告账户id + AdvertiserID uint64 `json:"advertiser_id,omitempty"` + // CampaignType 广告组类型,FEED:信息流 SEARCH:搜索广告 + CampaignType enum.CampaignType `json:"campaign_type,omitempty"` +} + +// Encode implement GetRequest interface +func (r QuotaGetRequest) Encode() string { + values := &url.Values{} + values.Set("advertiser_id", strconv.FormatUint(r.AdvertiserID, 10)) + values.Set("campaign_type", string(r.CampaignType)) + return values.Encode() +} + +// QuotaGetResponse 查询在投计划配额 API Response +type QuotaGetResponse struct { + model.BaseResponse + Data *QuotaGetResult `json:"data,omitempty"` +} + +// QuotaGetResult +type QuotaGetResult struct { + // UsedQuota 在投计划数 + UsedQuota int64 `json:"used_quota,omitempty"` + // SumQuota 在投计划配额 + SumQuota int64 `json:"sum_quota,omitempty"` + // InLearning 是否在学习期 + InLearning bool `json:"in_learning,omitempty"` + // MaxCost 最高月消耗 + MaxCost int64 `json:"max_cost,omitempty"` +}