Commit 7142b28e by chenmingyang

modify ad plan api name and dto field and dto name

parent 5c25f563
package io.better.toutiao.api.delivery;
import io.better.toutiao.dto.TouTiaoRespDTO;
import io.better.toutiao.dto.delivery.plan.AdvertisingPlanRespDTO;
import io.better.toutiao.dto.budget.UpdateBidDTO;
import io.better.toutiao.dto.budget.UpdateBudgetDTO;
import io.better.toutiao.dto.delivery.plan.AdvertisingPlanReqDTO;
import io.better.toutiao.dto.delivery.plan.AdPlanRespDTO;
import io.better.toutiao.dto.delivery.plan.AdvertisingPlanInfoDTO;
import io.better.toutiao.dto.delivery.plan.PlanBidDTO;
import io.better.toutiao.dto.delivery.plan.PlanBudgetDTO;
import io.better.toutiao.dto.status.UpdateStatusDTO;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
......@@ -17,14 +16,14 @@ import java.util.Map;
*
* @author better create in 2019-04-28 16:27
*/
@FeignClient(value = "https://ad.toutiao.com/open_api/2", url = "/ad")
public interface AdvertisingPlanApi {
@FeignClient(value = "${toutiao.api.advertiser-url}", url = "/ad")
public interface AdPlanApi {
/**
* 广告投放-获取某广告主的广告计划
* 广告投放-获取广告计划
*
* @param accessToken 访问凭证
* @param advertiserId the advertiser id
* @param advertiserId 广告主ID
* @param page 当前页
* @param pageSize 每页记录数
* @param filtering 过滤字段
......@@ -32,48 +31,49 @@ public interface AdvertisingPlanApi {
* @return advertising plan
*/
@GetMapping(value = "/get")
TouTiaoRespDTO<List<AdvertisingPlanRespDTO>> getAdvertisingPlan(@RequestHeader("Access-Token") String accessToken,
@RequestParam("advertiser_id") Long advertiserId,
@RequestParam(value = "page", defaultValue = "1", required = false) Integer page,
@RequestParam(value = "page_size", defaultValue = "20", required = false) Integer pageSize,
@RequestParam(value = "filtering", required = false) Map<String, Object> filtering,
@RequestParam(value = "fields", required = false) String[] fields);
TouTiaoRespDTO<AdPlanRespDTO> getAdvertisingPlan(@RequestHeader("Access-Token") String accessToken,
@RequestParam("advertiser_id") Long advertiserId,
@RequestParam(value = "page", defaultValue = "1", required = false) Integer page,
@RequestParam(value = "page_size", defaultValue = "20", required = false) Integer pageSize,
@RequestParam(value = "filtering", required = false) Map<String, Object> filtering,
@RequestParam(value = "fields", required = false) String[] fields
);
/**
* 广告投放-为某广告主创建广告计划
* 广告投放-创建广告计划
*
* @param accessToken 访问凭证
* @param advertisingPlanIn 更新对象
* @return 广告计划ID
*/
@PostMapping(value = "/create")
TouTiaoRespDTO<Integer> createAdvertisingPlan(@RequestHeader("Access-Token") String accessToken,
@RequestBody AdvertisingPlanRespDTO advertisingPlanIn
TouTiaoRespDTO<AdPlanRespDTO> createAdvertisingPlan(@RequestHeader("Access-Token") String accessToken,
@RequestBody AdvertisingPlanInfoDTO advertisingPlanIn
);
/**
* 广告投放-更新某广告主的广告计划
* 广告投放-更新广告计划
*
* @param accessToken 访问凭证
* @param advertisingPlanOut 更新信息
* @param accessToken 访问凭证
* @param advertisingPlanInfo 更新信息
* @return 广告计划ID
*/
@PostMapping(value = "/update")
TouTiaoRespDTO<Integer> updateAdvertisingPlan(@RequestHeader("Access-Token") String accessToken,
@RequestBody AdvertisingPlanReqDTO advertisingPlanOut
TouTiaoRespDTO<AdPlanRespDTO> updateAdvertisingPlan(@RequestHeader("Access-Token") String accessToken,
@RequestBody AdvertisingPlanInfoDTO advertisingPlanInfo
);
/**
* 广告投放-更新某广告主下广告计划状态,可以批量更新
* 广告投放-更新广告计划状态,可以批量更新
*
* @param accessToken 访问凭证
* @param updateStatusDTO 更新状态信息
* @param accessToken 访问凭证
* @param updateStatus 更新状态信息
* @return 广告计划ID集合
*/
@PostMapping(value = "/update/status")
TouTiaoRespDTO<List<Integer>> updateAdvertisingPlanStatus(@RequestHeader("Access-Token") String accessToken,
@RequestBody UpdateStatusDTO updateStatusDTO);
TouTiaoRespDTO<AdPlanRespDTO> updateAdvertisingPlanStatus(@RequestHeader("Access-Token") String accessToken,
@RequestBody UpdateStatusDTO updateStatus);
/**
* 广告投放-更新某广告主下广告计划预算,可以批量更新
......@@ -83,8 +83,8 @@ public interface AdvertisingPlanApi {
* @return 广告计划ID集合
*/
@PostMapping(value = "/update/budget")
TouTiaoRespDTO<List<Integer>> updateAdvertisingPlanBudget(@RequestHeader("Access-Token") String accessToken,
@RequestBody UpdateBudgetDTO updateBudget);
TouTiaoRespDTO<AdPlanRespDTO> updateAdvertisingPlanBudget(@RequestHeader("Access-Token") String accessToken,
@RequestBody PlanBudgetDTO.UpdateBudgetDTO updateBudget);
/**
* 广告投放-更新某广告主下广告计划出价,可以批量更新
......@@ -94,6 +94,6 @@ public interface AdvertisingPlanApi {
* @return 广告计划ID集合
*/
@PostMapping(value = "/update/bid")
TouTiaoRespDTO<List<Integer>> updateAdvertisingPlanBid(@RequestHeader("Access-Token") String accessToken,
@RequestBody UpdateBidDTO updateBid);
TouTiaoRespDTO<AdPlanRespDTO> updateAdvertisingPlanBid(@RequestHeader("Access-Token") String accessToken,
@RequestBody PlanBidDTO.UpdateBidDTO updateBid);
}
package io.better.toutiao.dto.delivery.plan;
import io.better.toutiao.dto.PageDTO;
import lombok.Data;
import java.util.List;
/**
* @author better create in 2019-05-07 18:33
*/
@Data
public class AdPlanRespDTO {
/**
* 广告计划ID,接收创建、更新返回参数
*/
private Long adId;
/**
* 此次修改是否触发进入待审状态,接收更新返回参数
* (1表示进入待审状态,0表示不进入待审状态)
*/
private Integer needAudit;
/**
* 广告计划ID集合, 接收更新计划状态返回参数
*/
private List<Long> adIds;
/**
* 广告计划信息计划, 接收查询返回参数
*/
private List<AdvertisingPlanInfoDTO> list;
/**
* 分页信息,接收查询返回参数
*/
private PageDTO pageInfo;
}
package io.better.toutiao.dto.delivery.plan;
import io.better.toutiao.dto.AudienceDTO;
import io.better.toutiao.dto.PageDTO;
import lombok.Data;
/**
* @author better create in 2019-04-29 10:23
*/
@Data
public class AdvertisingPlanRespDTO {
public class AdvertisingPlanInfoDTO extends AudienceInfoDTO {
/**
* 广告组ID
......@@ -37,6 +35,8 @@ public class AdvertisingPlanRespDTO {
/**
* 投放范围
*
* @see io.better.toutiao.enums.delivery.AdDeliveryRange
*/
private String deliveryRange;
......@@ -63,12 +63,14 @@ public class AdvertisingPlanRespDTO {
/**
* 广告计划投放状态
*
* @see io.better.toutiao.enums.AdvertisingPlanDeliveryStatus
* @see io.better.toutiao.enums.delivery.AdPlanDeliveryStatus
*/
private String status;
/**
* 广告计划操作状态
*
* @see io.better.toutiao.enums.delivery.AdPlanOptionStatus
*/
private String optStatus;
......@@ -104,6 +106,8 @@ public class AdvertisingPlanRespDTO {
/**
* 广告投放速度类型
*
* @see io.better.toutiao.enums.delivery.AdPlanDeliverySpeedType
*/
private String flowControlMode;
......@@ -114,6 +118,8 @@ public class AdvertisingPlanRespDTO {
/**
* 应用下载方式
* <p>
* DOWNLOAD_URL(下载链接,默认),EXTERNAL_URL(落地页链接)
*/
private String downloadType;
......@@ -164,24 +170,59 @@ public class AdvertisingPlanRespDTO {
private String hideIfConverted;
/**
* 过滤已安装,当推广目标为安卓应用下载时可填,0表示不过滤,1表示过滤,默认为不过滤
* 过滤已安装,当推广目标为安卓应用下载时可填,
* 0表示不过滤,1表示过滤,默认为不过滤
*/
private Integer hideIfExists;
/**
* 广告受众
*/
private AudienceDTO audience;
private AudienceInfoDTO audience;
/**
* 分页信息
* 第三方唯一键
*/
private PageDTO pageInfo;
private String uniqueFk;
/**
* 第三方唯一键
* 自动出价类型
*
* @see io.better.toutiao.enums.delivery.AutoBidType
*/
private String uniqueFk;
private String smartBidType;
/**
* 是否调整自动出价
*/
private Integer adjustCpa;
// 创建
/**
* 穿山甲视频创意类型
*/
private String unionVideoType;
/**
* 深度优化方式
*
* @see io.better.toutiao.enums.delivery.DeepBidType
*/
private String deepBidType;
/**
* 深度优化出价,deep_bid_type=DEEP_BID_MIN时必填
*/
private Long deepCpabid;
// 更新
/**
* 计划ID
*/
private String adId;
/**
* 设置package属性
......
package io.better.toutiao.dto.delivery.plan;
import io.better.toutiao.dto.AudienceDTO;
import io.better.toutiao.enums.AppType;
import lombok.Data;
/**
* @author better create in 2019-04-29 10:23
*/
@Data
public class AdvertisingPlanReqDTO extends AudienceDTO {
/**
* 广告主ID
*/
private Integer advertiserId;
/**
* 广告组ID
*/
private String campaignId;
/**
* 投放范围
*/
private String deliveryRange;
/**
* 广告预算类型
*/
private String budgetMode;
/**
* 广告预算
*/
private Long budget;
/**
* 广告投放起始时间
*/
private String startTime;
/**
* 广告投放结束时间
*/
private String endTime;
/**
* 广告出价
*/
private Long bid;
/**
* 计划出价类型
*/
private String pricing;
/**
* 广告投放时间类型
*
* @see io.better.toutiao.enums.ScheduleType
*/
private String scheduleType;
/**
* 广告投放时段
*/
private String scheduleTime;
/**
* 广告投放速度类型
*
* @see io.better.toutiao.enums.FlowControlMode
*/
private String flowControlMode;
/**
* 应用直达链接
*/
private String openUrl;
/**
* 应用下载方式
*/
private String downloadType;
/**
* 广告落地页链接
*/
private String externalUrl;
/**
* 应用下载方式
*/
private String downloadUrl;
/**
* 广告名称
*/
private String name;
/**
* 应用广告下载类型
*
* @see AppType
*/
private String appType;
/**
* 广告应用下载包名
*/
private String packageName;
/**
* 过滤已转化用户类型的字段,只有转化为目标时可填
*
* @see io.better.toutiao.enums.HideIfConverted
*/
private String hideIfConverted;
/**
* 过滤已安装,允许值: 0, 1
*/
private Long hideIfExists;
/**
* ocpm广告转化出价
*/
private Long cpaBid;
/**
* 转换ID
*/
private Long convertId;
/**
* 穿山甲视频创意类型,允许值:ORIGINAL_VIDEO,REWARDED_VIDEO
*
* @see io.better.toutiao.enums.UnionVideoType
*/
private String unionVideoType;
/**
* 深度优化方式
*
* @see io.better.toutiao.enums.DeepBidType
*/
private String deepBidType;
/**
* 深度优化出价,deep_bid_type=DEEP_BID_MIN时必填
*/
private Long deepCpabid;
/**
* 第三方唯一键
*/
private String uniqueFk;
// 更新所需属性==============================
/**
* 计划ID
*/
private String adId;
/**
* 修改时间
*/
private String modifyTime;
}
package io.better.toutiao.dto;
package io.better.toutiao.dto.delivery.plan;
import io.better.toutiao.enums.audience.*;
import lombok.Data;
/**
......@@ -9,27 +8,13 @@ import lombok.Data;
* @author better create in 2019-04-29 15:26
*/
@Data
public class AudienceDTO {
/**
* 定向人群包类型,前者为定向人群包,后者为排除人群包
* 允许值: "RETARGETING_INCLUDE", "RETARGETING_EXCLUDE"
*
* @see RetargetingType
*/
private String retargetingType;
/**
* 当选择使用人群包定向时填写,内容为人群包id
*/
private Integer[] retargetingTags;
public class AudienceInfoDTO {
/**
* 定向人群包列表,内容为人群包id.(新增字段,使用新增字段支持同时选择定向和排除)
*/
private Integer[] retargetingTagsInclude;
/**
* 排除人群包列表,内容为人群包id.(新增字段,使用新增字段支持同时选择定向和排除)
*/
......@@ -38,65 +23,70 @@ public class AudienceDTO {
/**
* 受众性别
*
* @see Gender
* @see io.better.toutiao.enums.common.Gender
*/
private String gender;
/**
* 受众年龄区间
*
* @see Age
* @see io.better.toutiao.enums.common.Age
*/
private String[] age;
/**
* 受众最低android版本
*
* @see AndroidOsv
* @see io.better.toutiao.enums.common.AndroidOsv
*/
private String androidOsv;
/**
* 受众最低ios版本
*
* @see IosOsv
* @see io.better.toutiao.enums.common.IosOsv
*/
private String iosOsv;
/**
* 受众网络类型
*
* @see Ac
* @see io.better.toutiao.enums.common.Ac
*/
private String[] ac;
/**
* 受众手机品牌
*
* @see io.better.toutiao.enums.common.DeviceBrand
*/
private String[] deviceBrand;
/**
* 受众文章分类
*
* @see ArticleCategory
* @see io.better.toutiao.enums.audience.ArticleCategory
*/
private String[] articleCategory;
/**
* 用户首次激活时间
*
* @see io.better.toutiao.enums.UserFirstActiveTime
*/
private String[] activateType;
/**
* 受众平台
*
* @see io.better.toutiao.enums.Platform
* @see io.better.toutiao.enums.common.Platform
*/
private String[] platform;
/**
* 受众运营商
*
* @see io.better.toutiao.enums.audience.Carrier
*/
private String[] carrier;
......
package io.better.toutiao.dto.budget;
package io.better.toutiao.dto.delivery.plan;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @author better create in 2019-04-29 14:48
* 计划出价
*
* @author better create in 2019-05-07 20:03
*/
@Data
public class UpdateBidDTO {
public class PlanBidDTO {
/**
* 广告主ID
* 出价
*/
private Long advertiserId;
private Integer bid;
/**
* 计划ID集合
* 计划ID
*/
private List<Integer> adIds;
private Integer adId;
/**
* 出价
* 更新计划出价DTO
*/
private Integer bid;
@Data
@EqualsAndHashCode(callSuper = true)
public static class UpdateBidDTO extends PlanBidDTO {
/**
* 广告主ID
*/
private Long advertiserId;
/**
* 计划ID集合
*/
private List<Integer> adIds;
/**
* ID集合
*/
private List<PlanBidDTO> data;
}
/**
* ID集合
*/
private List<Integer> data;
}
package io.better.toutiao.dto.budget;
package io.better.toutiao.dto.delivery.plan;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 计划预算
*
* @author better create in 2019-04-29 14:48
*/
@Data
public class UpdateBudgetDTO {
/**
* 广告主ID
*/
private Long advertiserId;
public class PlanBudgetDTO {
/**
* 计划ID
......@@ -26,7 +24,20 @@ public class UpdateBudgetDTO {
private Integer budget;
/**
* ID集合
* 更新计划预算DTO
*/
private List<Integer> data;
}
@Data
@EqualsAndHashCode(callSuper = true)
public static class UpdateBudgetDTO extends PlanBudgetDTO {
/**
* 广告主ID
*/
private Long advertiserId;
/**
* ID集合
*/
private List<PlanBudgetDTO> data;
}
}
\ No newline at end of file
......@@ -16,7 +16,7 @@ public class UpdateStatusDTO extends BaseDTO {
/**
* 计划ID集合
*/
private Integer[] adIds;
private List<Long> adIds;
/**
* 广告组ID集合
......
package io.better.toutiao.enums;
import lombok.Getter;
/**
* @author better create in 2019-05-07 18:55
*/
@Getter
public enum UserFirstActiveTime {
/**
* 一个月以内
*/
WITH_IN_A_MONTH,
/**
* 一个月到三个月
*/
ONE_MONTH_2_THREE_MONTH,
/**
* 三个月或更早
*/
THREE_MONTH_EAILIER
}
package io.better.toutiao.enums.audience;
package io.better.toutiao.enums.common;
import lombok.Getter;
......
package io.better.toutiao.enums.audience;
package io.better.toutiao.enums.common;
import lombok.Getter;
......
package io.better.toutiao.enums.audience;
package io.better.toutiao.enums.common;
import lombok.AllArgsConstructor;
import lombok.Getter;
......
package io.better.toutiao.enums.audience;
package io.better.toutiao.enums.common;
import lombok.AllArgsConstructor;
import lombok.Getter;
......
package io.better.toutiao.enums.audience;
package io.better.toutiao.enums.common;
import lombok.Getter;
......
package io.better.toutiao.enums.audience;
package io.better.toutiao.enums.common;
import lombok.AllArgsConstructor;
import lombok.Getter;
......
package io.better.toutiao.enums;
package io.better.toutiao.enums.common;
import lombok.Getter;
......
package io.better.toutiao.enums;
package io.better.toutiao.enums.delivery;
import lombok.Getter;
......@@ -8,7 +8,7 @@ import lombok.Getter;
* @author better create in 2019-05-06 16:53
*/
@Getter
public enum AdvertisingDeliveryRange {
public enum AdDeliveryRange {
/**
* 默认
......
package io.better.toutiao.enums.delivery;
import lombok.Getter;
/**
* 广告计划投放速度类型
*
* @author better create in 2019-05-07 18:39
*/
@Getter
public enum AdPlanDeliverySpeedType {
/**
* 快速投放(原名:尽快投放)
*/
FLOW_CONTROL_MODE_FAST,
/**
* 优先低成本(原名:平均投放,标准投放)
*/
FLOW_CONTROL_MODE_SMOOTH,
/**
* 均衡投放(新增字段)
*/
FLOW_CONTROL_MODE_BALANCE
}
package io.better.toutiao.enums;
package io.better.toutiao.enums.delivery;
import lombok.Getter;
......@@ -8,7 +8,7 @@ import lombok.Getter;
* @author better create in 2019-04-29 15:07
*/
@Getter
public enum AdvertisingPlanDeliveryStatus {
public enum AdPlanDeliveryStatus {
/**
* 投放中
......
package io.better.toutiao.enums;
package io.better.toutiao.enums.delivery;
import lombok.Getter;
......@@ -8,7 +8,7 @@ import lombok.Getter;
* @author better create in 2019-04-29 14:30
*/
@Getter
public enum AdvertisingGroupOptionStatus {
public enum AdPlanOptionStatus {
/**
* 启用
......
package io.better.toutiao.enums.audience;
package io.better.toutiao.enums.delivery;
import lombok.Getter;
/**
* 受众人群包类型
* 自动出价类型
*
* @author better create in 2019-05-06 17:14
* @author better create in 2019-05-07 19:37
*/
@Getter
public enum RetargetingType {
public enum AutoBidType {
/**
* 包含人群包
* 手动出价,即不使用自动出价
*/
RETARGETING_INCLUDE,
SMART_BID_CUSTOM,
/**
* 排除人群包
* 自动出价
*/
RETARGETING_EXCLUDE
SMART_BID_CONSERVATIVE
}
package io.better.toutiao.enums;
package io.better.toutiao.enums.delivery;
import lombok.Getter;
......
package io.better.toutiao.enums;
package io.better.toutiao.enums.delivery;
import lombok.Getter;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment