diff --git a/.github/workflows/goformatter.yml b/.github/workflows/goformatter.yml deleted file mode 100644 index c0bf727..0000000 --- a/.github/workflows/goformatter.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Golang Formatter -on: [pull_request] -jobs: - build: - name: Golang Formatter - runs-on: ubuntu-latest - env: - GOPATH: ${{ github.workspace }} - package: src/github.com/${{ github.repository }} - defaults: - run: - working-directory: ${{ env.GOPATH }}/${{ env.package }} - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Golang Formatter - uses: sladyn98/auto-go-format@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - diff --git a/model/dsp/creative/advanced_creative.go b/model/dsp/creative/advanced_creative.go index 55fdcbc..11bcb76 100644 --- a/model/dsp/creative/advanced_creative.go +++ b/model/dsp/creative/advanced_creative.go @@ -27,6 +27,8 @@ type AdvancedCreative struct { // ClickURL 第三方点击检测链接 // 不能超过 1024 字符 ocpx_action_type 是 180 并且应用没有接入 sdk,监测链接必填; 计划 type 是 2(推广应用安装),ocpx_action_type 是注册(396)、付费(190)、完件(384)、授信(383),并且没有接入 sdk,监测链接必填 ClickURL string `json:"click_url,omitempty"` + // ImpressionURL 第三方开始播放监测链接 + ImpressionURL string `json:"impression_url,omitempty"` // ActionbarClickURL 第三方 ActionBar 点击监控链接,命中有效触点白名单表示有效触点监测链接(限:快手主站/极速版场景) // 部分客户使用 actionbar_click_url 不为空时,click_url 必填,不能超过 1024 字符 ActionbarClickURL string `json:"actionbar_click_url,omitempty"` diff --git a/model/dsp/creative/advanced_creative_create.go b/model/dsp/creative/advanced_creative_create.go index b9d4bc4..c55a54e 100644 --- a/model/dsp/creative/advanced_creative_create.go +++ b/model/dsp/creative/advanced_creative_create.go @@ -26,6 +26,8 @@ type AdvancedCreativeCreateRequest struct { // ClickURL 第三方点击检测链接 // 不能超过 1024 字符 ocpx_action_type 是 180 并且应用没有接入 sdk,监测链接必填; 计划 type 是 2(推广应用安装),ocpx_action_type 是注册(396)、付费(190)、完件(384)、授信(383),并且没有接入 sdk,监测链接必填 ClickURL string `json:"click_url,omitempty"` + // ImpressionURL 第三方开始播放监测链接 + ImpressionURL string `json:"impression_url,omitempty"` // ActionbarClickURL 第三方 ActionBar 点击监控链接,命中有效触点白名单表示有效触点监测链接(限:快手主站/极速版场景) // 部分客户使用 actionbar_click_url 不为空时,click_url 必填,不能超过 1024 字符 ActionbarClickURL string `json:"actionbar_click_url,omitempty"` diff --git a/model/dsp/creative/advanced_creative_update.go b/model/dsp/creative/advanced_creative_update.go index 2101b8b..756e06d 100644 --- a/model/dsp/creative/advanced_creative_update.go +++ b/model/dsp/creative/advanced_creative_update.go @@ -26,6 +26,8 @@ type AdvancedCreativeUpdateRequest struct { // ClickURL 第三方点击检测链接 // 不能超过 1024 字符 ocpx_action_type 是 180 并且应用没有接入 sdk,监测链接必填; 计划 type 是 2(推广应用安装),ocpx_action_type 是注册(396)、付费(190)、完件(384)、授信(383),并且没有接入 sdk,监测链接必填 ClickURL string `json:"click_url,omitempty"` + // ImpressionURL 第三方开始播放监测链接 + ImpressionURL string `json:"impression_url,omitempty"` // ActionbarClickURL 第三方 ActionBar 点击监控链接,命中有效触点白名单表示有效触点监测链接(限:快手主站/极速版场景) // 部分客户使用 actionbar_click_url 不为空时,click_url 必填,不能超过 1024 字符 ActionbarClickURL string `json:"actionbar_click_url,omitempty"` diff --git a/model/native/upload_request.go b/model/native/upload_request.go index f07f34d..ee31773 100644 --- a/model/native/upload_request.go +++ b/model/native/upload_request.go @@ -1,17 +1,38 @@ package native import ( - "github.com/bububa/kwai-marketing-api/model" "strconv" + + "github.com/bububa/kwai-marketing-api/model" ) +// UploadRequest 本地视频上传接口 API Request type UploadRequest struct { - AdvertiserId uint64 `json:"advertiser_id"` - Photo *model.UploadField `json:"photo"` // 视频file - ShieldBackwardSwitch bool `json:"shieldBackwardSwitch"` // 上传视频后是否自动同步至快手个人主页,false表示屏蔽,视频不可在个人主页可见,true表示不屏蔽 - AuthorID uint64 `json:"authorId"` // 原生上传至达人的快手号 - NativePlcSwitch bool `json:"nativePlcSwitch"` - PhotoCaption string `json:"photoCaption"` + // AdvertiserID 广告主ID + AdvertiserID uint64 `json:"advertiser_id,omitempty"` + // Photo 视频file + Photo *model.UploadField `json:"photo,omitempty"` + // BlobStoreKey 填写该字段时需要先使用文件流式上传或分片上传。 + BlobStoreKey string `json:"blob_store_key,omitempty"` + // Signature 视频 md5 值,填写blob_store_key时需要填写。 + Signature string `json:"signature,omitempty"` + // ShieldBackwardSwitch 上传视频后是否自动同步至快手个人主页,false表示屏蔽,视频不可在个人主页可见,true表示不屏蔽 + ShieldBackwardSwitch bool `json:"shieldBackwardSwitch,omitempty"` + // AuthorID 原生上传至达人的快手号 + AuthorID uint64 `json:"authorId,omitempty"` + // PhotoName 视频名称,默认是视频 id + // 不超过 50 字符,若不传默认为文件名称 + PhotoName string `json:"photo_name,omitempty"` + // PhotoTag 视频标签 + // 单个标签不超过 10 字符,支持一个标签 + PhotoTag string `json:"photo_tag,omitempty"` + // PhotoCaption 视频描述 + PhotoCaption string `json:"photoCaption,omitempty"` + // NativePlcSwitch 挂载plc组件(建议设置为true,有机会获得更多流量曝光) + NativePlcSwitch bool `json:"nativePlcSwitch,omitempty"` + // Sync 用同步/异步方式上传视频 + // 1代表同步 0代表异步,默认同步上传。 使用异步上传存在两个风险: 1、异步上传可能出现视频转码失败case。 2、如果创建物料时,视频解码失败或者解码中,生成物料会失败。 建议同步上传。 + Sync int `json:"sync,omitempty"` } // Url implement UploadRequest interface @@ -33,10 +54,10 @@ func (r UploadRequest) Encode() []model.UploadField { if r.NativePlcSwitch { nativePlcSwitch = "true" } - return []model.UploadField{ + ret := []model.UploadField{ { Key: "advertiser_id", - Value: strconv.FormatUint(r.AdvertiserId, 10), + Value: strconv.FormatUint(r.AdvertiserID, 10), }, { Key: "authorId", @@ -46,18 +67,58 @@ func (r UploadRequest) Encode() []model.UploadField { Key: "shieldBackwardSwitch", Value: shieldBackwardSwitch, }, - { - Key: "photo", - Value: fileName, - Reader: r.Photo.Reader, - }, { Key: "nativePlcSwitch", Value: nativePlcSwitch, }, { - Key: "photoCaption", - Value: r.PhotoCaption, + Key: "sync", + Value: strconv.Itoa(r.Sync), }, } + if r.Photo != nil && r.Photo.Reader != nil { + ret = append(ret, + model.UploadField{ + Key: "photo", + Value: fileName, + Reader: r.Photo.Reader, + }, + ) + } else if r.BlobStoreKey != "" { + ret = append(ret, + model.UploadField{ + Key: "blob_store_key", + Value: r.BlobStoreKey, + }, + model.UploadField{ + Key: "signature", + Value: r.Signature, + }, + ) + } + if r.PhotoName != "" { + ret = append(ret, + model.UploadField{ + Key: "photo_name", + Value: r.PhotoName, + }, + ) + } + if r.PhotoTag != "" { + ret = append(ret, + model.UploadField{ + Key: "photo_tag", + Value: r.PhotoTag, + }, + ) + } + if r.PhotoCaption != "" { + ret = append(ret, + model.UploadField{ + Key: "photo_caption", + Value: r.PhotoCaption, + }, + ) + } + return ret }