github.com/bububa/oceanengine/marketing-api@v0.0.0-20210315120513-0b953137f7a6/model/ad/get_request.go (about)

     1  package ad
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/url"
     6  	"strconv"
     7  
     8  	"github.com/bububa/oceanengine/marketing-api/enum"
     9  )
    10  
    11  type GetRequest struct {
    12  	AdvertiserID uint64        `json:"advertiser_id,omitempty"`
    13  	Filtering    *GetFiltering `json:"filtering,omitempty"`
    14  	Fields       []string      `json:"fields,omitempty"` // 查询字段集合, 如果指定, 则返回结果数组中, 每个元素是包含所查询字段的字典允许值: "id", "name", "budget", "budget_mode", "status", "opt_status","open_url", "modify_time", "start_time", "end_time", "bid","advertiser_id", "pricing", "flow_control_mode", "download_url", quick_app_url, "inventory_type", "schedule_type", "app_type", "cpa_bid","cpa_skip_first_phrase", "audience", "external_url", "package","campaign_id", "ad_modify_time", "ad_create_time","audit_reject_reason", "retargeting_type", "retargeting_tags","convert_id", "interest_tags", "hide_if_converted","external_actions", "device_type","auto_extend_enabled", "auto_extend_targets", "dpa_lbs", "dpa_city", "dpa_province", "dpa_recommend_type", "roi_goal","subscribe_url","form_id","form_index","app_desc","app_thumbnails"
    15  	Page         int           `json:"page,omitempty"`
    16  	PageSize     int           `json:"page_size,omitempty"`
    17  }
    18  
    19  func (r GetRequest) Encode() string {
    20  	values := &url.Values{}
    21  	values.Set("advertiser_id", strconv.FormatUint(r.AdvertiserID, 10))
    22  	if r.Filtering != nil {
    23  		filtering, _ := json.Marshal(r.Filtering)
    24  		values.Set("filtering", string(filtering))
    25  	}
    26  	if r.Page > 0 {
    27  		values.Set("page", strconv.Itoa(r.Page))
    28  	}
    29  	if r.PageSize > 0 {
    30  		values.Set("page_size", strconv.Itoa(r.PageSize))
    31  	}
    32  	return values.Encode()
    33  }
    34  
    35  type GetFiltering struct {
    36  	IDs          []uint64         `json:"ids,omitempty"`            // 按广告计划ID过滤,范围为1-100
    37  	AdName       string           `json:"ad_name,omitempty"`        // 按广告计划name过滤,长度为1-30个字符
    38  	PricingList  enum.PricingType `json:"pricing_list,omitempty"`   // 按出价方式过滤
    39  	Status       enum.AdStatus    `json:"status,omitempty"`         // 按计划状态过滤,默认为返回“所有不包含已删除”,如果要返回所有包含已删除有对应枚举表示
    40  	AdCreateTime string           `json:"ad_create_time,omitempty"` // 广告计划创建时间,格式"yyyy-mm-dd",表示过滤出当天创建的广告计划
    41  	AdModifyTime string           `json:"ad_modify_time,omitempty"` // 广告计划更新时间,格式"yyyy-mm-dd",表示过滤出当天更新的广告计划
    42  }