diff --git a/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingCreativeApi.java b/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingCreativeApi.java
index 5ca052b..cf18ec0 100644
--- a/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingCreativeApi.java
+++ b/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingCreativeApi.java
@@ -1,10 +1,100 @@
 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.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
  */
-@FeignClient(value = "", url = "")
+@FeignClient(value = "https://ad.toutiao.com/open_api/2", url = "/creative")
 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);
 }
diff --git a/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingPlanApi.java b/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingPlanApi.java
index 4635403..990d528 100644
--- a/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingPlanApi.java
+++ b/src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingPlanApi.java
@@ -1,7 +1,7 @@
 package io.better.toutiao.api.advertisingdelivery;
 
 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.UpdateBudgetDTO;
 import io.better.toutiao.dto.resp.AdvertisingPlanRespDTO;
diff --git a/src/main/java/io/better/toutiao/dto/advertisingdelivery/creative/AdvertisingCreativeDTO.java b/src/main/java/io/better/toutiao/dto/advertisingdelivery/creative/AdvertisingCreativeDTO.java
deleted file mode 100644
index 573b8cc..0000000
--- a/src/main/java/io/better/toutiao/dto/advertisingdelivery/creative/AdvertisingCreativeDTO.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package io.better.toutiao.dto.advertisingdelivery.creative;
-
-import lombok.Data;
-
-/**
- * @author better create in 2019-04-29 11:16
- */
-@Data
-public class AdvertisingCreativeDTO {
-}
diff --git a/src/main/java/io/better/toutiao/dto/advertisingdelivery/AdvertisingDeliveryQueryDTO.java b/src/main/java/io/better/toutiao/dto/delivery/AdvertisingDeliveryQueryDTO.java
similarity index 95%
rename from src/main/java/io/better/toutiao/dto/advertisingdelivery/AdvertisingDeliveryQueryDTO.java
rename to src/main/java/io/better/toutiao/dto/delivery/AdvertisingDeliveryQueryDTO.java
index 371829a..aaff5a5 100644
--- a/src/main/java/io/better/toutiao/dto/advertisingdelivery/AdvertisingDeliveryQueryDTO.java
+++ b/src/main/java/io/better/toutiao/dto/delivery/AdvertisingDeliveryQueryDTO.java
@@ -1,4 +1,4 @@
-package io.better.toutiao.dto.advertisingdelivery;
+package io.better.toutiao.dto.delivery;
 
 import io.better.toutiao.dto.PageDTO;
 import lombok.Data;
diff --git a/src/main/java/io/better/toutiao/dto/advertisingdelivery/budget/AccountBudgetDTO.java b/src/main/java/io/better/toutiao/dto/delivery/budget/AccountBudgetDTO.java
similarity index 82%
rename from src/main/java/io/better/toutiao/dto/advertisingdelivery/budget/AccountBudgetDTO.java
rename to src/main/java/io/better/toutiao/dto/delivery/budget/AccountBudgetDTO.java
index d6b606e..730cdfc 100644
--- a/src/main/java/io/better/toutiao/dto/advertisingdelivery/budget/AccountBudgetDTO.java
+++ b/src/main/java/io/better/toutiao/dto/delivery/budget/AccountBudgetDTO.java
@@ -1,7 +1,6 @@
-package io.better.toutiao.dto.advertisingdelivery.budget;
+package io.better.toutiao.dto.delivery.budget;
 
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 /**
  * @author better create in 2019-04-29 14:03
diff --git a/src/main/java/io/better/toutiao/dto/delivery/creative/AdvertisingCreativeInDTO.java b/src/main/java/io/better/toutiao/dto/delivery/creative/AdvertisingCreativeInDTO.java
new file mode 100644
index 0000000..d8cf76b
--- /dev/null
+++ b/src/main/java/io/better/toutiao/dto/delivery/creative/AdvertisingCreativeInDTO.java
@@ -0,0 +1,156 @@
+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;
+    }
+}
diff --git a/src/main/java/io/better/toutiao/dto/delivery/creative/AdvertisingCreativeOutDTO.java b/src/main/java/io/better/toutiao/dto/delivery/creative/AdvertisingCreativeOutDTO.java
new file mode 100644
index 0000000..5f309bc
--- /dev/null
+++ b/src/main/java/io/better/toutiao/dto/delivery/creative/AdvertisingCreativeOutDTO.java
@@ -0,0 +1,227 @@
+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;
+    }
+}
diff --git a/src/main/java/io/better/toutiao/dto/delivery/creative/ImageCreativeOutDTO.java b/src/main/java/io/better/toutiao/dto/delivery/creative/ImageCreativeOutDTO.java
new file mode 100644
index 0000000..2952f7a
--- /dev/null
+++ b/src/main/java/io/better/toutiao/dto/delivery/creative/ImageCreativeOutDTO.java
@@ -0,0 +1,45 @@
+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;
+
+}
diff --git a/src/main/java/io/better/toutiao/dto/delivery/creative/VideoCreativeOutDTO.java b/src/main/java/io/better/toutiao/dto/delivery/creative/VideoCreativeOutDTO.java
new file mode 100644
index 0000000..fe95166
--- /dev/null
+++ b/src/main/java/io/better/toutiao/dto/delivery/creative/VideoCreativeOutDTO.java
@@ -0,0 +1,46 @@
+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;
+}
diff --git a/src/main/java/io/better/toutiao/dto/advertisingdelivery/group/AdvertisingGroupDTO.java b/src/main/java/io/better/toutiao/dto/delivery/group/AdvertisingGroupDTO.java
similarity index 71%
rename from src/main/java/io/better/toutiao/dto/advertisingdelivery/group/AdvertisingGroupDTO.java
rename to src/main/java/io/better/toutiao/dto/delivery/group/AdvertisingGroupDTO.java
index 640d367..ed753c9 100644
--- a/src/main/java/io/better/toutiao/dto/advertisingdelivery/group/AdvertisingGroupDTO.java
+++ b/src/main/java/io/better/toutiao/dto/delivery/group/AdvertisingGroupDTO.java
@@ -1,7 +1,10 @@
-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
  */
+@Data
 public class AdvertisingGroupDTO {
 }
diff --git a/src/main/java/io/better/toutiao/dto/advertisingdelivery/plan/AdvertisingPlanInDTO.java b/src/main/java/io/better/toutiao/dto/delivery/plan/AdvertisingPlanInDTO.java
similarity index 99%
rename from src/main/java/io/better/toutiao/dto/advertisingdelivery/plan/AdvertisingPlanInDTO.java
rename to src/main/java/io/better/toutiao/dto/delivery/plan/AdvertisingPlanInDTO.java
index 8a7ffaa..1ff65f0 100644
--- a/src/main/java/io/better/toutiao/dto/advertisingdelivery/plan/AdvertisingPlanInDTO.java
+++ b/src/main/java/io/better/toutiao/dto/delivery/plan/AdvertisingPlanInDTO.java
@@ -1,4 +1,4 @@
-package io.better.toutiao.dto.advertisingdelivery.plan;
+package io.better.toutiao.dto.delivery.plan;
 
 import lombok.Data;
 
diff --git a/src/main/java/io/better/toutiao/dto/advertisingdelivery/plan/AdvertisingPlanOutDTO.java b/src/main/java/io/better/toutiao/dto/delivery/plan/AdvertisingPlanOutDTO.java
similarity index 99%
rename from src/main/java/io/better/toutiao/dto/advertisingdelivery/plan/AdvertisingPlanOutDTO.java
rename to src/main/java/io/better/toutiao/dto/delivery/plan/AdvertisingPlanOutDTO.java
index 366d36f..020a6a8 100644
--- a/src/main/java/io/better/toutiao/dto/advertisingdelivery/plan/AdvertisingPlanOutDTO.java
+++ b/src/main/java/io/better/toutiao/dto/delivery/plan/AdvertisingPlanOutDTO.java
@@ -1,4 +1,4 @@
-package io.better.toutiao.dto.advertisingdelivery.plan;
+package io.better.toutiao.dto.delivery.plan;
 
 import lombok.Data;
 
diff --git a/src/main/java/io/better/toutiao/dto/status/UpdateStatusDTO.java b/src/main/java/io/better/toutiao/dto/status/UpdateStatusDTO.java
index 4bfe99f..ba79a83 100644
--- a/src/main/java/io/better/toutiao/dto/status/UpdateStatusDTO.java
+++ b/src/main/java/io/better/toutiao/dto/status/UpdateStatusDTO.java
@@ -12,5 +12,7 @@ public class UpdateStatusDTO {
 
     private Integer[] campaignIds;
 
+    private Integer[] creativeIds;
+
     private String optStatus;
 }