Commit f9fb2a60 by BetterXT

complete all dto

parent 4733a477
package io.better.toutiao.api.advertisingdelivery; package io.better.toutiao.api.advertisingdelivery;
import io.better.toutiao.dto.BaseRespDTO;
import io.better.toutiao.dto.delivery.creative.AdvertisingCreativeInDTO;
import io.better.toutiao.dto.delivery.creative.AdvertisingCreativeOutDTO;
import io.better.toutiao.dto.status.UpdateStatusDTO;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/** /**
* The interface Advertising creative api.
*
* @author better create in 2019-04-28 16:27 * @author better create in 2019-04-28 16:27
*/ */
@FeignClient(value = "", url = "") @FeignClient(value = "https://ad.toutiao.com/open_api/2", url = "/creative")
public interface AdvertisingCreativeApi { public interface AdvertisingCreativeApi {
/**
* 广告投放-获取某广告主的广告创意信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param page 当前页
* @param pageSize 每页记录数
* @param filtering 过滤字段
* @param fields 查询字段
* @return 广告创意信息 base resp dto
*/
@GetMapping(value = "/get")
BaseRespDTO<AdvertisingCreativeInDTO> listAdvertisingCreative(@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 advertisingCreativeOut 创建信息
* @return the base resp dto
*/
@PostMapping(value = "/create_v2")
BaseRespDTO<Integer> createAdvertisingCreative(@RequestHeader("Access-Token") String accessToken,
@RequestBody AdvertisingCreativeOutDTO advertisingCreativeOut);
/**
* 广告投放-查看某广告主下某计划下的创建详情信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param adId 计划ID
* @return the advertising creative detail info
*/
@GetMapping(value = "/read_v2")
BaseRespDTO<List<AdvertisingCreativeOutDTO>> getAdvertisingCreativeDetailInfo(@RequestHeader("Access-Token") String accessToken,
@RequestParam("advertiser_id") Integer advertiserId,
@RequestParam("ad_id") Integer adId);
/**
* 更新
*
* @param accessToken 访问凭证
* @param advertisingCreativeOut 更新信息
* @return the base resp dto
*/
@PostMapping(value = "/update_v2")
BaseRespDTO<Integer> updateAdvertisingCreative(@RequestHeader("Access-Token") String accessToken,
@RequestBody AdvertisingCreativeOutDTO advertisingCreativeOut);
/**
* 广告投放-更新某个广告创意状态
*
* @param accessToken 访问凭证
* @param updateStatus 更新状态信息
* @return the base resp dto
*/
@PostMapping(value = "/update/status")
BaseRespDTO<?> updateAdvertisingCreativeStatus(@RequestHeader("Access-Token") String accessToken,
@RequestBody UpdateStatusDTO updateStatus);
/**
* 广告投放-获取光广告创意下的素材信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param creativeIds 广告创意ID
* @param fields 广告创意获取字段
* @return
*/
@GetMapping(value = "/material/read")
BaseRespDTO<AdvertisingCreativeInDTO.CreativeMaterialInfo> getCreativeMaterial(@RequestHeader("Access-Token") String accessToken,
@RequestParam("advertiser_id") Long advertiserId,
@RequestParam("creative_ids") Long[] creativeIds,
@RequestParam("fields") String[] fields);
} }
package io.better.toutiao.api.advertisingdelivery; package io.better.toutiao.api.advertisingdelivery;
import io.better.toutiao.dto.BaseRespDTO; import io.better.toutiao.dto.BaseRespDTO;
import io.better.toutiao.dto.advertisingdelivery.plan.AdvertisingPlanInDTO; import io.better.toutiao.dto.delivery.plan.AdvertisingPlanInDTO;
import io.better.toutiao.dto.budget.UpdateBidDTO; import io.better.toutiao.dto.budget.UpdateBidDTO;
import io.better.toutiao.dto.budget.UpdateBudgetDTO; import io.better.toutiao.dto.budget.UpdateBudgetDTO;
import io.better.toutiao.dto.resp.AdvertisingPlanRespDTO; import io.better.toutiao.dto.resp.AdvertisingPlanRespDTO;
......
package io.better.toutiao.dto.advertisingdelivery.creative;
import lombok.Data;
/**
* @author better create in 2019-04-29 11:16
*/
@Data
public class AdvertisingCreativeDTO {
}
package io.better.toutiao.dto.advertisingdelivery; package io.better.toutiao.dto.delivery;
import io.better.toutiao.dto.PageDTO; import io.better.toutiao.dto.PageDTO;
import lombok.Data; import lombok.Data;
......
package io.better.toutiao.dto.advertisingdelivery.budget; package io.better.toutiao.dto.delivery.budget;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
/** /**
* @author better create in 2019-04-29 14:03 * @author better create in 2019-04-29 14:03
......
package io.better.toutiao.dto.delivery.creative;
import io.better.toutiao.dto.resp.PageRespDTO;
import lombok.Data;
import java.util.List;
/**
* @author better create in 2019-04-29 11:16
*/
@Data
public class AdvertisingCreativeInDTO {
/**
* 分页信息
*/
private PageRespDTO pageInfo;
/**
* 创意信息集合
*/
private List<CreativeInfo> list;
/**
* 创意信息
*/
@Data
private static class CreativeInfo {
/**
* 创意ID
*/
private String creativeId;
/**
* 广告计划ID
*/
private String adId;
/**
* 广告主ID
*/
private String advertiserId;
/**
* 创意素材标题
*/
private String title;
/**
* 动态词包列表
*/
private String[] creativeWordIds;
/**
* 创意素材状态
*/
private String status;
/**
* 创意素材操作状态
*/
private String optStatus;
/**
* 创意素材类型
*/
private String imageMode;
/**
* 图片素材id列表
*/
private String[] imageIds;
/**
* 视频素材封面
*/
private String imageId;
/**
* 视频id
*/
private String videoId;
/**
* 第三方id
*/
private String thirdPartyId;
/**
* 创意审核信息
*/
private String auditRejectReason;
/**
* 素材信息列表
*/
private List<?> materials;
}
/**
* 创意素材信息
*/
@Data
public static class CreativeMaterialInfo {
/**
* 创意ID
*/
private String id;
/**
* 广告ID
*/
private String adId;
/**
* 广告主ID
*/
private String advertiserId;
/**
* 创意标题
*/
private String title;
/**
* 创意状态
*/
private String optStatus;
/**
* 创意类型
*/
private String imageMode;
/**
* 图片素材信息
*/
private String[] imageInfo;
/**
*
*/
private String imageId;
/**
*
*/
private String videoId;
/**
*
*/
private String auditRejectReason;
}
}
package io.better.toutiao.dto.delivery.creative;
import lombok.Data;
import java.util.List;
/**
* @author better create in 2019-04-29 11:16
*/
@Data
public class AdvertisingCreativeOutDTO {
/**
* 广告主ID
*/
private String advertiserId;
/**
* 广告计划ID
*/
private String adId;
/**
* 展示监测链接
*/
private String trackUrl;
/**
* 点击监测链接
*/
private String actionTrackUrl;
/**
* 点击监测链接
*/
private String videoPlayEffectiveTrackUrl;
/**
* 视频播放完毕监测链接
*/
private String videoPlayDoneTrackUrl;
/**
* 视频播放监测链接
*/
private String videoPlayTrackUrl;
/**
* 是否关闭评论
* <p>
* 允许值: 0, 1
*/
private Integer isCommentDisable;
/**
* 是否关闭视频详情页落地页
* 允许值: 0, 1
*/
private Integer closeVideoDetail;
/**
* 创意展现方式
* <p>
* 允许值: "CREATIVE_DISPLAY_MODE_CTR", "CREATIVE_DISPLAY_MODE_RANDOM"
*/
private String creativeDisplayMode;
/**
* 是否使用优选广告位,0表示不使用优选,1表示使用,
* <p>
* 使用优选广告位的时候默认忽略inventory_type字段
* <p>
* 默认值: 0
* <p>
* 允许值: 0, 1
*/
private Integer smartInventory;
/**
* 场景广告位
* <p>
* 使用场景广告位时默认忽略inventory_type字段,与scene_inventory不能同时传
* <p>
* 允许值: "VIDEO_SCENE", "FEED_SCENE", "TAIL_SCENE"
*/
private String sceneInventory;
/**
* 是否开启衍生计划,1为开启,0为不开启
* <p>
* 默认值: 0
*/
private String generateDerivedAd;
/**
* 创意投放位置
*/
private String[] inventoryType;
/**
* 文章来源
* <p>
* 当推广目的为非应用下载或推广目的为应用下载&download_type=EXTERNAL_URL时必填
*/
private String source;
/**
* 应用名
* <p>
* 当推广应用下载[包含Android、iOS]时, 必填
*/
private String appName;
/**
* Android应用下载详情页
* <p>
* 当推广应用下载Android时, 必填
*/
private String webUrl;
/**
* 创意标签
* <p>
* 以英文逗号分隔,最多20个标签,且每个标签长度不超过10个字符
*/
private String[] adKeywords;
/**
* 创意分类-三级行业(新版),填写三级行业ID,
* <p>
* 可从tools/industry/get/ 接口获取
*/
private Integer thirdIndustryId;
/**
* 附加创意类型
* 仅当推广目的landing_type=LINK时,填写
* 允许值: "ATTACHED_CREATIVE_NONE", "ATTACHED_CREATIVE_PHONE","ATTACHED_CREATIVE_FORM"
*/
private String advancedCreativeType;
/**
* 副标题
*/
private String advancedCreativeTitle;
/**
* 电话号码
* 当附加创意类型为ATTACHED_CREATIVE_PHONE时, 必填
*/
private String phoneNumber;
/**
* 按钮文本
* 当附加创意类型不为ATTACHED_CREATIVE_NONE时, 必填
*/
private String buttonText;
/**
* 表单提交链接
* 当附加创意类型为ATTACHED_CREATIVE_FORM时, 必填
* 且当附加创意类型为当附加创意类型为ATTACHED_CREATIVE_FORM时, 必须为今日头条建站地址
*/
private String formUrl;
/**
* 创意类型
* 该字段为STATIC_ASSEMBLE表示程序化创意,其他情况无该字段
*/
private String creativeMaterialMode;
/**
* 标题信息,程序化创意必填
*/
private List<TitleCreativeInfo> titleList;
/**
* 素材信息,程序化创意必填
*/
private List<ImageCreativeInfo> imageList;
/**
* 素材信息,投放位置和创意类型决定素材规格
*/
private List<?> creatives;
@Data
public static class TitleCreativeInfo {
/**
* 创意标题
*/
private String title;
/**
* 动态词包ID
* 可使用动态词包查询接口获得
*/
private List<?> creativeWordIds;
}
@Data
public static class ImageCreativeInfo {
/**
* 素材类型
*/
private String imageMode;
/**
* 图片ID
*/
private String imageId;
/**
* 视频ID
*/
private String videoId;
/**
* 图片id列表,非视频素材时填写
*/
private List<?> imageIds;
}
}
package io.better.toutiao.dto.delivery.creative;
import lombok.Data;
import java.util.List;
/**
* @author better create in 2019-04-30 09:50
*/
@Data
public class ImageCreativeOutDTO {
/**
* 创意标题,如果要使用动态词包
* 格式如下:“XXX{词包名}XXX{词包名}XXX”
* 请注意当您使用动态词包需在下方creative_word_ids字段中按顺序传入词包ID
* 并且在一个标题中最多使用两个动态词包。长度为6-30个字, 两个英文字符占1位
*/
private String title;
/**
* 动态词包ID,可使用动态词包查询接口获得
* 结合标题中的词包格式您需要填写相同个数与顺序的词包ID
* 如果实际ID顺序与标题中词包名顺序不一致我们将以词包ID顺序为准
*/
private List<?> creativeWordIds;
/**
* 素材类型
*/
private String imageMode;
/**
* 图片id列表,非视频素材时填写(组图传3张图,其他传1张)
* 图片ID和视频ID可通过文件管理 中的接口获得。
*/
private List<?> imageIds;
/**
* 创意自定义参数,
* 例如开发者可设定此参数为创意打标签用于区分使用的素材类型,选填
*/
private String thirdPartyId;
}
package io.better.toutiao.dto.delivery.creative;
import lombok.Data;
import java.util.List;
/**
* @author better create in 2019-04-30 09:50
*/
@Data
public class VideoCreativeOutDTO {
/**
* 创意标题,如果要使用动态词包
* 格式如下:“XXX{词包名}XXX{词包名}XXX”
* 请注意当您使用动态词包需在下方creative_word_ids字段中按顺序传入词包ID
* 并且在一个标题中最多使用两个动态词包。标题,长度为6-30个字, 两个英文字符占1位
*/
private String title;
/**
* 动态词包ID,可使用动态词包查询接口获得,结合标题中的词包格式您需要填写相同个数与顺序的词包ID,
* 如果实际ID顺序与标题中词包名顺序不一致我们将以词包ID顺序为准。
*/
private List<?> creativeWordIds;
/**
* 素材类型
*/
private String imageMode;
/**
* 图片id,视频素材时填写。图片ID和视频ID可通过文件管理 中的接口获得。
*/
private String imageId;
/**
* 视频id,视频素材时填写。图片ID和视频ID可通过文件管理 中的接口获得。
*/
private String videoId;
/**
* 创意自定义参数,例如开发者可设定此参数为创意打标签用于区分使用的素材类型,选填
*/
private String thirdPartyId;
}
package io.better.toutiao.dto.advertisingdelivery.group; package io.better.toutiao.dto.delivery.group;
import lombok.Data;
/** /**
* @author better create in 2019-04-29 11:15 * @author better create in 2019-04-29 11:15
*/ */
@Data
public class AdvertisingGroupDTO { public class AdvertisingGroupDTO {
} }
package io.better.toutiao.dto.advertisingdelivery.plan; package io.better.toutiao.dto.delivery.plan;
import lombok.Data; import lombok.Data;
......
package io.better.toutiao.dto.advertisingdelivery.plan; package io.better.toutiao.dto.delivery.plan;
import lombok.Data; import lombok.Data;
......
...@@ -12,5 +12,7 @@ public class UpdateStatusDTO { ...@@ -12,5 +12,7 @@ public class UpdateStatusDTO {
private Integer[] campaignIds; private Integer[] campaignIds;
private Integer[] creativeIds;
private String optStatus; private String optStatus;
} }
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