Jelajahi Sumber

头条-创建计划修改对接方式为'事件管理'(废弃convert_id)

yangzian 3 tahun lalu
induk
melakukan
6d466cff8e

+ 4 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/dockapi/MarketingService.java

@@ -83,4 +83,8 @@ public interface MarketingService {
 
     Result getEventAssets(CtopOauthToken token,String landingType);
 
+    Result getConvertOptimized(CtopOauthToken token,String landingType,String marketingPurpose,String assetType,String appType,String packageName);
+
+    Result getOptimizedTrackUrl(CtopOauthToken token,Long assetId,String downloadUrl);
+
 }

+ 93 - 2
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/dockapi/MarketingServiceImpl.java

@@ -1294,7 +1294,7 @@ public class MarketingServiceImpl implements MarketingService{
         //params = Check.jsonRemoveEmpty(params);
         log.info("params======{}",params);
         JSONObject jsonObject = HttpUtils.bytedanceGetRequest(token.getAccessToken(),
-                urlPath+ PropertiesUtils.getValue("bytedance_config", "bytedance_v2_event_assets")+"?advertiser_id="+1700992275550222L+"&asset_type="+landingType,params);
+                urlPath+ PropertiesUtils.getValue("bytedance_config", "bytedance_v2_event_assets")+"?advertiser_id="+token.getAccountId()+"&asset_type="+landingType,params);
         log.info("result======{}",jsonObject);
         Integer code = jsonObject.getInteger("code");
         String message = jsonObject.getString("message");
@@ -1308,10 +1308,101 @@ public class MarketingServiceImpl implements MarketingService{
             return Result.error("查询资产列表不存在");
         }
 
+        return Result.successMsg("查询资产列表成功",dataList);
+    }
 
 
 
-        return Result.successMsg("查询资产列表成功",dataList);
+
+    /**
+     * Author: zianY
+     * Description: 资产-获取优化目标列表
+     *------------
+     * @param
+     * @param landingType 广告组推广目的,允许值:LINK 销售线索收集、LIVE 直播间推广、SHOP电商店铺推广、APP 应用、QUICK_APP 快应用
+     * @param marketingPurpose 营销目的,允许值:CONVERSION 行动转化、INTENTION 用户意向、ACKNOWLEDGE 品牌认知
+     * @param assetType 资产类型,允许值:THIRD_EXTERNAL 三方落地页、TETRIS_EXTERNAL 建站、APP 应用、QUICK_APP 快应用
+     * @param appType 应用类型,当asset_type为应用APP时必填 可选值:ANDROID 、IOS
+     * @param packageName 应用类型,当asset_type为应用APP时必填 可选值:ANDROID 、IOS
+     *------------
+     * Return org.jeecg.common.api.vo.Result
+     */
+    @Override
+    public Result getConvertOptimized(CtopOauthToken token, String landingType,String marketingPurpose,String assetType,String appType,String packageName) {
+
+        JSONObject params = new JSONObject();
+        //params.put("page", 1);
+        //params.put("page_size", 30);
+        log.info("params======{}",params);
+
+        String str = "?advertiser_id="+token.getAccountId()+
+                    "&landing_type="+landingType+
+                    "&marketing_purpose="+marketingPurpose+
+                    "&asset_type="+assetType+
+                    "&app_type="+appType+
+                    "&package_name="+packageName;
+
+
+        JSONObject jsonObject = HttpUtils.bytedanceGetRequest(token.getAccessToken(),
+                    urlPath+ PropertiesUtils.getValue("bytedance_config", "bytedance_v2_event_convert_optimized")+str,params);
+        log.info("result======{}",jsonObject);
+        Integer code = jsonObject.getInteger("code");
+        String message = jsonObject.getString("message");
+        if (null == code || !code.equals(0)) {
+            log.info("查询资产-优化目标列表接口异常==》accountId:{},message:{}", token.getAccountId(), message);
+            return Result.error(message);
+        }
+        JSONObject dataList = jsonObject.getJSONObject("data");
+        if (null == dataList || dataList.isEmpty()) {
+            log.info("查询资产-优化目标不存在==》accountId:{},message:{}", token.getAccountId(), message);
+            return Result.error("查询资产-优化目标不存在");
+        }
+
+        return Result.successMsg("资产-优化目标",dataList);
+
+    }
+
+
+
+    /**
+     * Author: zianY
+     * Description: 查询事件资产下的监测链接
+     *------------
+     * @param token
+     * @param assetId 资产ID
+     *------------
+     * Return org.jeecg.common.api.vo.Result
+     */
+    @Override
+    public Result getOptimizedTrackUrl(CtopOauthToken token, Long assetId,String downloadUrl) {
+
+
+        JSONObject params = new JSONObject();
+        //params.put("page", 1);
+        //params.put("page_size", 30);
+        //log.info("params======{}",params);
+
+        String str = "?advertiser_id="+token.getAccountId()+
+                    "&asset_id="+assetId+
+                    "&download_url="+downloadUrl;
+
+
+        JSONObject jsonObject = HttpUtils.bytedanceGetRequest(token.getAccessToken(),
+                    urlPath+ PropertiesUtils.getValue("bytedance_config", "bytedance_v2_event_track_url")+str,params);
+        log.info("result======{}",jsonObject);
+        Integer code = jsonObject.getInteger("code");
+        String message = jsonObject.getString("message");
+        if (null == code || !code.equals(0)) {
+            log.info("查询事件资产下的监测链接接口异常==》accountId:{},message:{}", token.getAccountId(), message);
+            return Result.error(message);
+        }
+        JSONObject dataList = jsonObject.getJSONObject("data");
+        if (null == dataList || dataList.isEmpty()) {
+            log.info("查询事件资产下的监测链接不存在==》accountId:{},message:{}", token.getAccountId(), message);
+            return Result.error("查询事件资产下的监测链接不存在");
+        }
+
+        return Result.successMsg("获取事件资产下的监测链接",dataList);
     }
 
 

+ 26 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/AiBytedanceAdvertiserStrategy.java

@@ -353,4 +353,30 @@ public class AiBytedanceAdvertiserStrategy{
 	/**广告文案数量*/
 	private Integer copywritingNumber;
 
+
+	/**
+	 *资产id
+	 */
+	private Long adAssetIds;
+	/**
+	 * 优化目标
+	 */
+	private String adExternalAction;
+	/**
+	 * 深度优化目标
+	 */
+	private String adDeepExternalAction;
+	/**
+	 * 监测链接类型
+	 */
+	private String adTrackUrlGroupType;
+	/**
+	 * 监测链接组
+	 */
+	private Long adTrackUrlGroupId;
+
+
+
+
+
 }

+ 33 - 2
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/impl/AiBytedanceAdvertiserStrategyServiceImpl.java

@@ -770,10 +770,41 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         if(!Check.isNull(strategy.getAdDownloadMode())){
             params.put("download_mode",strategy.getAdDownloadMode());
         }
-        if(!Check.isNull(strategy.getAdConvertId())){
-            params.put("convert_id",strategy.getAdConvertId());
+
+
+        // convert_id 对接废弃 改为 '事件管理'
+        //if(!Check.isNull(strategy.getAdConvertId())){
+        //    params.put("convert_id",strategy.getAdConvertId());
+        //}
+
+        if(!Check.isNull(strategy.getAdAssetIds())){
+            params.put("asset_ids",Arrays.asList(strategy.getAdAssetIds()));
+        }
+
+        if(!Check.isNull(strategy.getAdExternalAction())){
+            params.put("external_action",strategy.getAdExternalAction());
         }
 
+        if(!Check.isNull(strategy.getAdDeepExternalAction())){
+            params.put("deep_external_action",strategy.getAdDeepExternalAction());
+        }
+
+        if(!Check.isNull(strategy.getAdTrackUrlGroupType())){
+            params.put("track_url_group_type",strategy.getAdTrackUrlGroupType());
+        }
+
+        if(!Check.isNull(strategy.getAdTrackUrlGroupId())){
+            params.put("track_url_group_id",strategy.getAdTrackUrlGroupId());
+        }
+
+
+
+
+
+
+
+
+
         if(!Check.isNull(strategy.getAdOpenUrl())){
             params.put("open_url",strategy.getAdOpenUrl());
         }

+ 8 - 1
jeecg-boot-bytedance/src/main/resources/bytedance_config.properties

@@ -109,4 +109,11 @@ bytedance_v2_ad_creative_get=/2/report/creative/get/
 bytedance_v2_assets_get=/2/assets/creative_component/get/
 
 #\u83B7\u53D6\u5DF2\u521B\u5EFA\u7684\u8D44\u4EA7\u5217\u8868
-bytedance_v2_event_assets=/2/tools/event/assets/get/
+bytedance_v2_event_assets=/2/tools/event/assets/get/
+
+
+#资产-获取优化目标
+bytedance_v2_event_convert_optimized=/2/tools/event_convert/optimized_goal/get/
+
+#获取事件资产下的监测链接
+bytedance_v2_event_track_url=/2/event_manager/track_url/get/

+ 65 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/bytedance/advertise/controller/AiBytedanceAdvertiserStrategyController.java

@@ -402,7 +402,6 @@ public class AiBytedanceAdvertiserStrategyController {
 	}
 
 
-//通投智选--master
 	@ApiOperation(value="智能投放测试创建计划", notes="智能投放测试创建计划")
 	@GetMapping("testCreateCreativeLimit")
 	public Map<String, Object> testCreateCreativeLimit(Long accountId, Integer hour) {
@@ -658,6 +657,71 @@ public class AiBytedanceAdvertiserStrategyController {
 
 
 
+	/**
+	 * Author: zianY
+	 * Description: 资产-获取优化目标列表
+	 *------------
+	 * @param
+	 * @param landingType 广告组推广目的,允许值:LINK 销售线索收集、LIVE 直播间推广、SHOP电商店铺推广、APP 应用、QUICK_APP 快应用
+	 * @param marketingPurpose 营销目的,允许值:CONVERSION 行动转化、INTENTION 用户意向、ACKNOWLEDGE 品牌认知
+	 * @param assetType 资产类型,允许值:THIRD_EXTERNAL 三方落地页、TETRIS_EXTERNAL 建站、APP 应用、QUICK_APP 快应用
+	 * @param appType 应用类型,当asset_type为应用APP时必填 可选值:ANDROID 、IOS
+	 * @param packageName 应用类型,当asset_type为应用APP时必填 可选值:ANDROID 、IOS
+	 *------------
+	 * Return org.jeecg.common.api.vo.Result
+	 */
+	@ApiOperation(value="资产-获取优化目标列表", notes="资产-获取优化目标列表")
+	@GetMapping(value = "/getConvertOptimized")
+	public Result getEventAssetsAccount(@RequestParam("accountId") String accountId,
+								 @RequestParam("landingType") String landingType,
+								 @RequestParam("marketingPurpose") String marketingPurpose,
+								 @RequestParam("assetType") String assetType,
+								 @RequestParam("appType") String appType,
+								 @RequestParam("packageName") String packageName
+
+
+
+	) {
+		try {
+			CtopOauthToken token = tokenService.getTokenByAccountId(new Long(accountId));
+			return marketingService.getConvertOptimized(token,landingType,marketingPurpose,assetType,appType,packageName);
+		}catch (Exception e){
+			log.error("资产-获取优化目标列表异常",e);
+			return Result.error("请求失败,请联系开发人员!");
+		}
+	}
+
+
+
+	/**
+	 * Author: zianY
+	 * Description: 查询事件资产下的监测链接
+	 *------------
+	 * @param accountId
+	 * @param assetId 资产ID
+	 *------------
+	 * Return org.jeecg.common.api.vo.Result
+	 */
+	@ApiOperation(value="查询事件资产下的监测链接", notes="查询事件资产下的监测链接")
+	@GetMapping(value = "/getOptimizedTrackUrl")
+	public Result getOptimizedTrackUrl(@RequestParam("accountId") String accountId,
+								 @RequestParam("assetId") Long assetId,
+								 @RequestParam("downloadUrl") String downloadUrl
+	) {
+		try {
+			CtopOauthToken token = tokenService.getTokenByAccountId(new Long(accountId));
+			return marketingService.getOptimizedTrackUrl(token,assetId,downloadUrl);
+		}catch (Exception e){
+			log.error("查询事件资产下的监测链接异常",e);
+			return Result.error("请求失败,请联系开发人员!");
+		}
+	}
+
+
+
+
+
+