Selaa lähdekoodia

修改 批量

yumeng 5 vuotta sitten
vanhempi
commit
47d3ed03ab

+ 13 - 1
jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java

@@ -1,11 +1,14 @@
 package org.jeecg;
 
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.mapper.CtopOauthTokenMapper;
 import cn.com.ctop.common.module.utils.HttpUtils;
 import cn.com.ctop.common.module.utils.HttpUtils2;
 import cn.com.ctop.crawler.modules.appium.service.IAppiumJobService;
 import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.impl.client.BasicCookieStore;
 import org.jeecg.modules.ctop.service.IBidWarningService;
@@ -114,6 +117,9 @@ public class SampleTest {
         sender.send();
     }
 
+    @Autowired
+    private CtopOauthTokenMapper oauthTokenMapper;
+
     @Test
     public void loadKuaishouDataSingle() throws Exception {
         String url = "https://a201903112120030590198943.szwego.com/static/index.html#/shop_detail/A201903112120030590198943";
@@ -143,8 +149,14 @@ public class SampleTest {
 
     @Test
     public void testMail() throws Exception {
+        QueryWrapper<CtopOauthToken> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("account_id", 35675);
+        CtopOauthToken token = oauthTokenMapper.selectOne(queryWrapper);
+
+        kuaishouInterfaceService.getCreativeList(token, null, null);
+
         // String accessToken, Long advertiserId, Date startDate, Date endDate, Integer page
-        kuaishouInterfaceService.getTargetingTags(23212L, "24b9c4ead0e4e8d1d61e9c040b8bae6f");
+        //   kuaishouInterfaceService.getTargetingTags(35675L, "83dbda039c238c3d3484df248866815c");
     }
 
 

+ 211 - 5
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/BatchController.java

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -250,6 +251,7 @@ public class BatchController {
                                                     HttpServletRequest req) {
         Result<IPage<KuaiShouGroup>> result = new Result<IPage<KuaiShouGroup>>();
         QueryWrapper<KuaiShouGroup> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouGroup, req.getParameterMap());
+        queryWrapper.orderByDesc("unit_id");
         Page<KuaiShouGroup> page = new Page<KuaiShouGroup>(pageNo, pageSize);
         IPage<KuaiShouGroup> pageList = kuaiShouGroupService.page(page, queryWrapper);
         result.setSuccess(true);
@@ -264,12 +266,16 @@ public class BatchController {
      * @param
      * @return
      */
+    @Autowired
+    private IKuaiShouRegionListParentService kuaiShouRegionListParentService;
+
     @GetMapping(value = "/getRegion")
-    public Result<JSONArray> getRegion() {
-        Result<JSONArray> result = new Result<>();
+    public Result<List<KuaiShouRegionListParent>> getRegion(KuaiShouRegionListParent kuaiShouRegionListParent, HttpServletRequest req) {
+        Result<List<KuaiShouRegionListParent>> result = new Result<>();
+
 
         try {
-            JSONArray regionArr = new JSONArray();
+            /*JSONArray regionArr = new JSONArray();
             QueryWrapper<KuaiShouRegionListParent> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("level", 1);
             List<KuaiShouRegionListParent> regionListParents = regionListParentMapper.selectList(queryWrapper);
@@ -303,10 +309,15 @@ public class BatchController {
 
                     regionArr.add(parentJson);
                 }
-            }
+            }*/
+
+
+            QueryWrapper<KuaiShouRegionListParent> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouRegionListParent, req.getParameterMap());
+
+            List<KuaiShouRegionListParent> pageList = kuaiShouRegionListParentService.list(queryWrapper);
 
             result.setSuccess(true);
-            result.setResult(regionArr);
+            result.setResult(pageList);
         } catch (Exception e) {
             e.printStackTrace();
             result.setSuccess(false);
@@ -577,4 +588,199 @@ public class BatchController {
     }
 
 
+    @Autowired
+    private IKuaiShouCreativeService kuaiShouCreativeService;
+
+
+    @AutoLog(value = "快手-创意信息-分页列表查询")
+    @GetMapping(value = "/getCreativeList")
+    public Result<IPage<KuaiShouCreative>> getCreativeList(KuaiShouCreative kuaiShouCreative, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
+        Result<IPage<KuaiShouCreative>> result = new Result<>();
+
+        QueryWrapper<KuaiShouCreative> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouCreative, req.getParameterMap());
+        queryWrapper.orderByDesc("creative_id");
+        Page<KuaiShouCreative> page = new Page<>(pageNo, pageSize);
+        IPage<KuaiShouCreative> creativeList = kuaiShouCreativeService.page(page, queryWrapper);
+        result.setSuccess(true);
+        result.setResult(creativeList);
+        return result;
+    }
+
+
+    /**
+     * 批量修改广告组预算
+     *
+     * @param requestJson
+     * @return
+     */
+    @PostMapping(value = "/batchUpdateUnitBudget")
+    public Result<JSONObject> batchUpdateUnitBudget(@RequestBody JSONObject requestJson) {
+        Result<JSONObject> result = new Result<>();
+
+
+        try {
+            Long accountId = requestJson.getLong("accountId");
+            CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
+            if (Check.isNull(token)) {
+                throw new Exception("账号信息为空");
+            }
+            Long dayBudget = requestJson.getLong("dayBudget");
+            if (Check.isNull(dayBudget)) {
+                throw new Exception("预算信息为空");
+            }
+            String userId = requestJson.getString("userId");
+            JSONArray unitIds = requestJson.getJSONArray("unitIds");
+            JSONArray failArr = new JSONArray();
+            if (!Check.isNull(unitIds)) {
+                for (int i = 0; i < unitIds.size(); i++) {
+                    Long unitId = unitIds.getLong(i);
+                    if (!Check.isNull(unitId)) {
+                        Map<String, Object> updateMap = updateService.updateUnitDayBudget(token.getAccessToken(), accountId, unitId, dayBudget, userId);
+                        if (!Check.isNull(updateMap)) {
+                            Integer code = (Integer) updateMap.get("code");
+                            if (code != 0) {
+                                JSONObject failJson = new JSONObject();
+                                failJson.put("message", updateMap.get("message"));
+                                KuaiShouGroup group = batchService.getUnitInfo(accountId, unitId);
+                                if (!Check.isNull(group)) {
+                                    failJson.put("unitName", group.getUnitName());
+                                }
+                                failArr.add(failJson);
+                            }
+                        }
+                    }
+                }
+            }
+            JSONObject json = new JSONObject();
+            json.put("totalCount", unitIds.size());
+            json.put("failCount", failArr.size());
+            json.put("failInfo", failArr);
+            result.setResult(json);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            e.printStackTrace();
+            result.setSuccess(false);
+            result.setMessage(e.getMessage());
+        }
+        return result;
+    }
+
+
+    /**
+     * 批量修改广告组状态
+     *
+     * @param requestJson
+     * @return
+     */
+    @PostMapping(value = "/batchUpdateUnitStatus")
+    public Result<JSONObject> batchUpdateUnitStatus(@RequestBody JSONObject requestJson) {
+        Result<JSONObject> result = new Result<>();
+
+
+        try {
+            Long accountId = requestJson.getLong("accountId");
+            CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
+            if (Check.isNull(token)) {
+                throw new Exception("账号信息为空");
+            }
+            Integer putStatus = requestJson.getInteger("putStatus");
+            if (putStatus == null) {
+                throw new Exception("请选择状态");
+            }
+            String userId = requestJson.getString("userId");
+            JSONArray unitIds = requestJson.getJSONArray("unitIds");
+            JSONArray failArr = new JSONArray();
+            if (!Check.isNull(unitIds)) {
+                for (int i = 0; i < unitIds.size(); i++) {
+                    Long unitId = unitIds.getLong(i);
+                    if (!Check.isNull(unitId)) {
+                        Map<String, Object> updateMap = updateService.updateUnitStatus(token.getAccessToken(), accountId, unitId, putStatus, userId);
+                        if (!Check.isNull(updateMap)) {
+                            Integer code = (Integer) updateMap.get("code");
+                            if (code != 0) {
+                                JSONObject failJson = new JSONObject();
+                                failJson.put("message", updateMap.get("message"));
+                                KuaiShouGroup group = batchService.getUnitInfo(accountId, unitId);
+                                if (!Check.isNull(group)) {
+                                    failJson.put("campaignName", group.getUnitName());
+                                }
+                                failArr.add(failJson);
+                            }
+                        }
+                    }
+                }
+            }
+            JSONObject json = new JSONObject();
+            json.put("totalCount", unitIds.size());
+            json.put("failCount", failArr.size());
+            json.put("failInfo", failArr);
+            result.setResult(json);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            e.printStackTrace();
+            result.setSuccess(false);
+            result.setMessage(e.getMessage());
+        }
+        return result;
+    }
+
+
+    /**
+     * 批量修改广告组状态
+     *
+     * @param requestJson
+     * @return
+     */
+    @PostMapping(value = "/batchUpdateUnitBid")
+    public Result<JSONObject> batchUpdateUnitBid(@RequestBody JSONObject requestJson) {
+        Result<JSONObject> result = new Result<>();
+        try {
+            Long accountId = requestJson.getLong("accountId");
+            CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
+            if (Check.isNull(token)) {
+                throw new Exception("账号信息为空");
+            }
+            Long bid = requestJson.getLong("bid");
+            if (bid == null) {
+                throw new Exception("请输入出价");
+            }
+            String userId = requestJson.getString("userId");
+            JSONArray unitIds = requestJson.getJSONArray("unitIds");
+            JSONArray failArr = new JSONArray();
+            if (!Check.isNull(unitIds)) {
+                for (int i = 0; i < unitIds.size(); i++) {
+                    Long unitId = unitIds.getLong(i);
+                    if (!Check.isNull(unitId)) {
+                        Map<String, Object> updateMap = updateService.updateUnitBid(token.getAccessToken(), accountId, unitId, bid, userId);
+                        if (!Check.isNull(updateMap)) {
+                            Integer code = (Integer) updateMap.get("code");
+                            if (code != 0) {
+                                JSONObject failJson = new JSONObject();
+                                failJson.put("message", updateMap.get("message"));
+                                KuaiShouGroup group = batchService.getUnitInfo(accountId, unitId);
+                                if (!Check.isNull(group)) {
+                                    failJson.put("campaignName", group.getUnitName());
+                                }
+                                failArr.add(failJson);
+                            }
+                        }
+                    }
+                }
+            }
+            JSONObject json = new JSONObject();
+            json.put("totalCount", unitIds.size());
+            json.put("failCount", failArr.size());
+            json.put("failInfo", failArr);
+            result.setResult(json);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            e.printStackTrace();
+            result.setSuccess(false);
+            result.setMessage(e.getMessage());
+        }
+        return result;
+    }
+
+
 }

+ 77 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaiShouCreative.java

@@ -32,6 +32,7 @@ public class KuaiShouCreative {
     @TableId
     @ApiModelProperty(value = "id")
     private String id;
+
     /**
      * 账户ID
      */
@@ -56,6 +57,13 @@ public class KuaiShouCreative {
     @Excel(name = "广告创意ID", width = 15)
     @ApiModelProperty(value = "广告创意ID")
     private Long creativeId;
+
+
+    /**
+     * 素材类型
+     */
+    private Integer creativeMaterialType;
+
     /**
      * 广告创意名称
      */
@@ -63,6 +71,18 @@ public class KuaiShouCreative {
     @ApiModelProperty(value = "广告创意名称")
     private String creativeName;
     /**
+     * 单图创意ur
+     */
+    @Excel(name = "单图创意ur", width = 15)
+    @ApiModelProperty(value = "单图创意ur")
+    private String materialUrl;
+    /**
+     * 单图创意image_token
+     */
+    @Excel(name = "单图创意image_token", width = 15)
+    @ApiModelProperty(value = "单图创意image_token")
+    private String imageTokens;
+    /**
      * 视频作品ID
      */
     @Excel(name = "视频作品ID", width = 15)
@@ -75,6 +95,18 @@ public class KuaiShouCreative {
     @ApiModelProperty(value = "广告创意状态")
     private Integer status;
     /**
+     * 投放状态 1:投放中;2:暂停
+     */
+    @Excel(name = "投放状态 1:投放中;2:暂停", width = 15)
+    @ApiModelProperty(value = "投放状态 1:投放中;2:暂停")
+    private Integer putStatus;
+    /**
+     * 创建渠道  0:投放后台创建;1:Marketing API创建
+     */
+    @Excel(name = "创建渠道  0:投放后台创建;1:Marketing API创建", width = 15)
+    @ApiModelProperty(value = "创建渠道  0:投放后台创建;1:Marketing API创建")
+    private Integer createChannel;
+    /**
      * 审核拒绝理由
      */
     @Excel(name = "审核拒绝理由", width = 15)
@@ -87,6 +119,12 @@ public class KuaiShouCreative {
     @ApiModelProperty(value = "封面URL")
     private String coverUrl;
     /**
+     * 视频封面token  若创意使用系统自动生成的首帧图片作为封面,该token无法复用
+     */
+    @Excel(name = "视频封面token  若创意使用系统自动生成的首帧图片作为封面,该token无法复用", width = 15)
+    @ApiModelProperty(value = "视频封面token  若创意使用系统自动生成的首帧图片作为封面,该token无法复用")
+    private String imageToken;
+    /**
      * 封面图宽度
      */
     @Excel(name = "封面图宽度", width = 15)
@@ -99,10 +137,34 @@ public class KuaiShouCreative {
     @ApiModelProperty(value = "封面图高度")
     private String coverHeight;
     /**
-     * description
+     * 动态词包原始封面图片URL
+     */
+    @Excel(name = "动态词包原始封面图片URL", width = 15)
+    @ApiModelProperty(value = "动态词包原始封面图片URL")
+    private String overlayBgUrl;
+    /**
+     * 动态词包原始封面图片token
+     */
+    @Excel(name = "动态词包原始封面图片token", width = 15)
+    @ApiModelProperty(value = "动态词包原始封面图片token")
+    private String overlayBgImageToken;
+    /**
+     * stickerTitle
+     */
+    @Excel(name = "stickerTitle", width = 15)
+    @ApiModelProperty(value = "stickerTitle")
+    private String stickerTitle;
+    /**
+     * 贴纸样式类型
+     */
+    @Excel(name = "贴纸样式类型", width = 15)
+    @ApiModelProperty(value = "贴纸样式类型")
+    private String overlayType;
+    /**
+     * 广告语
      */
-    @Excel(name = "description", width = 15)
-    @ApiModelProperty(value = "description")
+    @Excel(name = "广告语", width = 15)
+    @ApiModelProperty(value = "广告语")
     private String description;
     /**
      * 行动号召按钮文案
@@ -117,6 +179,18 @@ public class KuaiShouCreative {
     @ApiModelProperty(value = "点击测试链接")
     private String clickTrackUrl;
     /**
+     * 第三方开始播放监测链接
+     */
+    @Excel(name = "第三方开始播放监测链接", width = 15)
+    @ApiModelProperty(value = "第三方开始播放监测链接")
+    private String impressionUrl;
+    /**
+     * 第三方有效播放监测链接
+     */
+    @Excel(name = "第三方有效播放监测链接", width = 15)
+    @ApiModelProperty(value = "第三方有效播放监测链接")
+    private String adPhotoPlayedT3sUrl;
+    /**
      * 创建时间
      */
     @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")

+ 27 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouCreativeMapper.xml

@@ -8,15 +8,28 @@
         unit_id,
         creative_id,
         creative_name,
+        creative_material_type,
         photo_id,
+        material_url,
+        image_tokens,
         status,
+        put_status,
+        create_channel,
         review_detail,
         cover_url,
+        image_token,
         cover_width,
         cover_height,
+        overlay_bg_url,
+        overlay_bg_image_token,
+        sticker_title,
+        overlay_type,
+        click_track_url,
+        impression_url,
+        ad_photo_played_t3s_url,
         description,
         action_bar_text,
-        click_track_url,
+
         create_time,
         update_time)
         values
@@ -27,15 +40,27 @@
             #{creative.unitId},
             #{creative.creativeId},
             #{creative.creativeName},
+            #{creative.creativeMaterialType},
             #{creative.photoId},
+            #{creative.materialUrl},
+            #{creative.imageTokens},
             #{creative.status},
+            #{creative.putStatus},
+            #{creative.createChannel},
             #{creative.reviewDetail},
             #{creative.coverUrl},
+            #{creative.imageToken},
             #{creative.coverWidth},
             #{creative.coverHeight},
+            #{creative.overlayBgUrl},
+            #{creative.overlayBgImageToken},
+            #{creative.stickerTitle},
+            #{creative.overlayType},
+            #{creative.clickTrackUrl},
+            #{creative.impressionUrl},
+            #{creative.adPhotoPlayedT3sUrl},
             #{creative.description},
             #{creative.actionBarText},
-            #{creative.clickTrackUrl},
             #{creative.createTime},
             #{creative.updateTime})
         </foreach>

+ 11 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IBatchService.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.service;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCampaign;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroup;
 import com.alibaba.fastjson.JSONObject;
 
 import java.math.BigDecimal;
@@ -56,4 +57,14 @@ public interface IBatchService {
      * @return
      */
     JSONObject createUnit(JSONObject requestJson) throws Exception;
+
+
+    /**
+     * 获取广告组信息
+     *
+     * @param accountId
+     * @param unitId
+     * @return
+     */
+    KuaiShouGroup getUnitInfo(Long accountId, Long unitId);
 }

+ 21 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java

@@ -379,6 +379,27 @@ public class BatchServiceImpl implements IBatchService {
         return returnJson;
     }
 
+    /**
+     * 获取广告组信息
+     *
+     * @param accountId
+     * @param unitId
+     * @return
+     */
+    @Autowired
+    private KuaiShouGroupMapper groupMapper;
+
+    @Override
+    public KuaiShouGroup getUnitInfo(Long accountId, Long unitId) {
+        QueryWrapper<KuaiShouGroup> groupQueryWrapper = new QueryWrapper<>();
+        groupQueryWrapper.eq("account_id", accountId);
+        groupQueryWrapper.eq("unit_id", unitId);
+        groupQueryWrapper.orderByDesc("create_time");
+        groupQueryWrapper.last("limit 1");
+        KuaiShouGroup group = groupMapper.selectOne(groupQueryWrapper);
+        return group;
+    }
+
 
 }
 

+ 13 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouUpdateServiceImpl.java

@@ -222,6 +222,8 @@ public class KuaiShouUpdateServiceImpl implements IKuaiShouUpdateService {
                     }
                     // 重新请求数据
                     interfaceService.getGroup(token, advertiserId, unitId);
+                    returnMap.put("code", 0);
+                    returnMap.put("success", true);
                 } else {
                     log.error("修改广告组出价失败,advertiserId:{},unitId:{},返回信息:{}", advertiserId, unitId, resultJson);
                     returnMap.put("code", -1);
@@ -335,7 +337,7 @@ public class KuaiShouUpdateServiceImpl implements IKuaiShouUpdateService {
 
     /**
      * TODO
-     * 修广告组状态
+     * 修广告组状态
      *
      * @param token
      * @param advertiserId
@@ -363,6 +365,16 @@ public class KuaiShouUpdateServiceImpl implements IKuaiShouUpdateService {
                     returnMap.put("code", 0);
                     returnMap.put("success", true);
                     returnMap.put("message", "修改成功");
+                    if (putStatus == 3) {
+                        Map<String, Object> deleteMap = new HashMap<>();
+                        deleteMap.put("account_id", advertiserId);
+                        deleteMap.put("unit_id", unitId);
+                        groupMapper.deleteByMap(deleteMap);
+                    } else {
+                        interfaceService.getGroup(token, advertiserId, unitId);
+                    }
+
+
                 } else {
                     log.error("修改广告组状态失败,advertiserId:{},unitId:{},返回信息:{}", advertiserId, unitId, resultJson);
                     returnMap.put("code", -1);

+ 20 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java

@@ -109,6 +109,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         getAdvertiserReportHourlyByPage(token, startDate, endDate, 1);
     }
 
+
     private void getAdvertiserReportHourlyByPage(CtopOauthToken token, Date startDate, Date endDate, int page) {
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.ACCOUNT_REPORT;
         Map<String, String> headers = new HashMap<>();
@@ -1659,17 +1660,34 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                 KuaiShouCreative creative = new KuaiShouCreative();
                 creative.setId("" + advertiserId + detailJson.getLong("creative_id"));
                 creative.setAccountId(advertiserId);
-                creative.setStatus(detailJson.getInteger("status"));
                 creative.setCampaignId(detailJson.getLong("campaign_id"));
                 creative.setUnitId(detailJson.getLong("unit_id"));
                 creative.setCreativeId(detailJson.getLong("creative_id"));
                 creative.setCreativeName(detailJson.getString("creative_name"));
+                creative.setCreativeMaterialType(detailJson.getInteger("creative_material_type"));
                 creative.setPhotoId(detailJson.getString("photo_id"));
+                if (!Check.isNull(detailJson.getJSONArray("material_url"))) {
+                    creative.setMaterialUrl(detailJson.getJSONArray("material_url").toJSONString());
+                }
+
+                if (!Check.isNull(detailJson.getJSONArray("image_tokens"))) {
+                    creative.setImageTokens(detailJson.getJSONArray("image_tokens").toJSONString());
+                }
+                creative.setStatus(detailJson.getInteger("status"));
+                creative.setPutStatus(detailJson.getInteger("put_status"));
+                creative.setCreateChannel(detailJson.getInteger("create_channel"));
                 creative.setReviewDetail(detailJson.getString("review_detail"));
                 creative.setCoverUrl(detailJson.getString("cover_url"));
-                creative.setCoverHeight(detailJson.getString("cover_height"));
+                creative.setImageToken(detailJson.getString("image_token"));
                 creative.setCoverWidth(detailJson.getString("cover_width"));
+                creative.setCoverHeight(detailJson.getString("cover_height"));
+                creative.setOverlayBgUrl(detailJson.getString("overlay_bg_url"));
+                creative.setOverlayBgImageToken(detailJson.getString("overlay_bg_image_token"));
+                creative.setStickerTitle(detailJson.getString("sticker_title"));
+                creative.setOverlayType(detailJson.getString("overlay_type"));
                 creative.setClickTrackUrl(detailJson.getString("click_track_url"));
+                creative.setImpressionUrl(detailJson.getString("impression_url"));
+                creative.setAdPhotoPlayedT3sUrl(detailJson.getString("ad_photo_played_t3s_url"));
                 JSONObject displayInfoJson = detailJson.getJSONObject("display_info");
                 if (!Check.isNull(displayInfoJson)) {
                     creative.setDescription(displayInfoJson.getString("description"));