|
@@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.jeecg.common.util.DateUtils;
|
|
import org.jeecg.common.util.DateUtils;
|
|
|
|
+import org.jeecg.common.util.RedisUtil;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -126,8 +127,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
}
|
|
}
|
|
unitCnt++;
|
|
unitCnt++;
|
|
//开始创建组+创意
|
|
//开始创建组+创意
|
|
- String timestamp = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss");
|
|
|
|
- String unitName = getName(strategy.getGroupName(), strategy, createType, appInfo, timestamp, unitCnt, videoItem.getPhotoName());
|
|
|
|
|
|
+ String unitName = getName(strategy.getGroupName(), strategy, createType, appInfo, videoItem.getPhotoName(), "unit", newCampaignId);
|
|
JSONObject unitParams = createUnitParams(token, newCampaignId, strategy, unitName, appInfo.getAppId());
|
|
JSONObject unitParams = createUnitParams(token, newCampaignId, strategy, unitName, appInfo.getAppId());
|
|
Map<String, Object> unitCreateResult = kuaishouInterfaceService.adUnitCreate(token.getAccessToken(), token.getAccountId(), unitParams, 1);
|
|
Map<String, Object> unitCreateResult = kuaishouInterfaceService.adUnitCreate(token.getAccessToken(), token.getAccountId(), unitParams, 1);
|
|
Integer unitCode = (Integer) unitCreateResult.get("code");
|
|
Integer unitCode = (Integer) unitCreateResult.get("code");
|
|
@@ -184,8 +184,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
unitCnt++;
|
|
unitCnt++;
|
|
- String timestamp = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss");
|
|
|
|
- String unitName = getName(strategy.getGroupName(), strategy, createType, null, timestamp, unitCnt, videoItem.getPhotoName());
|
|
|
|
|
|
+ String unitName = getName(strategy.getGroupName(), strategy, createType, null, videoItem.getPhotoName(), "unit", newCampaignId);
|
|
|
|
|
|
Long appId = null;
|
|
Long appId = null;
|
|
if (strategy.getCampaignType() == 2 || strategy.getCampaignType() == 7) {
|
|
if (strategy.getCampaignType() == 2 || strategy.getCampaignType() == 7) {
|
|
@@ -199,6 +198,12 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
AiKuaishouUnitLevelOperationRecord unitLevelOperationRecord = new AiKuaishouUnitLevelOperationRecord();
|
|
AiKuaishouUnitLevelOperationRecord unitLevelOperationRecord = new AiKuaishouUnitLevelOperationRecord();
|
|
BeanUtils.copyProperties(strategy, unitLevelOperationRecord);
|
|
BeanUtils.copyProperties(strategy, unitLevelOperationRecord);
|
|
unitLevelOperationRecord.setGroupName(unitName);
|
|
unitLevelOperationRecord.setGroupName(unitName);
|
|
|
|
+ if (!Check.isNull(strategy.getCpaBid())) {
|
|
|
|
+ unitLevelOperationRecord.setCpaBid(Integer.valueOf(strategy.getCpaBid() + ""));
|
|
|
|
+ }
|
|
|
|
+ if (!Check.isNull(strategy.getBid())) {
|
|
|
|
+ unitLevelOperationRecord.setBid(Integer.valueOf(strategy.getBid() + ""));
|
|
|
|
+ }
|
|
unitLevelOperationRecord.setCreateTime(new Date());
|
|
unitLevelOperationRecord.setCreateTime(new Date());
|
|
unitLevelOperationRecord.setStatus(unitCode);
|
|
unitLevelOperationRecord.setStatus(unitCode);
|
|
unitLevelOperationRecord.setMessage(unitMessage);
|
|
unitLevelOperationRecord.setMessage(unitMessage);
|
|
@@ -294,8 +299,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
List<List<KuaiShouVideoGet>> splitVideos = Lists.partition(allVideos, 5);
|
|
List<List<KuaiShouVideoGet>> splitVideos = Lists.partition(allVideos, 5);
|
|
for (int j = 1; j < splitVideos.size() + 1; j++) {
|
|
for (int j = 1; j < splitVideos.size() + 1; j++) {
|
|
//创建组
|
|
//创建组
|
|
- String timestamp = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss");
|
|
|
|
- String unitName = getName(strategy.getGroupName(), strategy, createType, appInfo, timestamp, null, null);
|
|
|
|
|
|
+ String unitName = getName(strategy.getGroupName(), strategy, createType, appInfo, null, "unit", newCampaignId);
|
|
JSONObject unitParams = createUnitParams(token, newCampaignId, strategy, unitName, appInfo.getAppId());
|
|
JSONObject unitParams = createUnitParams(token, newCampaignId, strategy, unitName, appInfo.getAppId());
|
|
Map<String, Object> unitCreateResult = kuaishouInterfaceService.adUnitCreate(token.getAccessToken(), token.getAccountId(), unitParams, 1);
|
|
Map<String, Object> unitCreateResult = kuaishouInterfaceService.adUnitCreate(token.getAccessToken(), token.getAccountId(), unitParams, 1);
|
|
Integer unitCode = (Integer) unitCreateResult.get("code");
|
|
Integer unitCode = (Integer) unitCreateResult.get("code");
|
|
@@ -337,8 +341,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
List<List<KuaiShouVideoGet>> splitVideos = Lists.partition(allVideos, 5);
|
|
List<List<KuaiShouVideoGet>> splitVideos = Lists.partition(allVideos, 5);
|
|
for (int j = 1; j < splitVideos.size() + 1; j++) {
|
|
for (int j = 1; j < splitVideos.size() + 1; j++) {
|
|
//创建组
|
|
//创建组
|
|
- String timestamp = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss");
|
|
|
|
- String unitName = getName(strategy.getGroupName(), strategy, createType, null, timestamp, null, null);
|
|
|
|
|
|
+ String unitName = getName(strategy.getGroupName(), strategy, createType, null, null, "unit", newCampaignId);
|
|
String appIdString = strategy.getAppIdArray();
|
|
String appIdString = strategy.getAppIdArray();
|
|
Long appId = null;
|
|
Long appId = null;
|
|
if (strategy.getCampaignType() == 2 || strategy.getCampaignType() == 7) {
|
|
if (strategy.getCampaignType() == 2 || strategy.getCampaignType() == 7) {
|
|
@@ -374,7 +377,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void customCreativeSupplement(AiKuaishouAdvertiserStrategy strategy, Integer hour) throws ParseException {
|
|
public void customCreativeSupplement(AiKuaishouAdvertiserStrategy strategy, Integer hour) throws ParseException {
|
|
-
|
|
|
|
Long customUnitCnt = strategy.getCustomUnitCnt();
|
|
Long customUnitCnt = strategy.getCustomUnitCnt();
|
|
if (Check.isNull(customUnitCnt)) {
|
|
if (Check.isNull(customUnitCnt)) {
|
|
Integer imageCnt = strategy.getImageCnt();
|
|
Integer imageCnt = strategy.getImageCnt();
|
|
@@ -614,23 +616,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
|
|
|
|
|
|
|
|
private Long getCampaignId(AiKuaishouAdvertiserStrategy strategy, CtopOauthToken token, String replaceString, String checkType, Integer createType, AiKuaiShouAppInfo appInfo, String uuid) {
|
|
private Long getCampaignId(AiKuaishouAdvertiserStrategy strategy, CtopOauthToken token, String replaceString, String checkType, Integer createType, AiKuaiShouAppInfo appInfo, String uuid) {
|
|
- // JSONArray campaignList;
|
|
|
|
- String timestamp = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss");
|
|
|
|
- /*if ("ALL_CAMPAIGN".equals(checkType)) {
|
|
|
|
- campaignList = kuaishouInterfaceService.getCampaignList(token, null, null, 1);
|
|
|
|
- } else {
|
|
|
|
- timestamp = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss");
|
|
|
|
- campaignList = kuaishouInterfaceService.getCampaignList(token, new Date(), new Date(), 1);
|
|
|
|
- }*/
|
|
|
|
-
|
|
|
|
- /* if (!Check.isNull(campaignList)){
|
|
|
|
- for (int i = 0; i < campaignList.size(); i++) {
|
|
|
|
- JSONObject jsonObject = campaignList.getJSONObject(i);
|
|
|
|
- if (jsonObject.getString("campaign_name").contains(replaceString)) {
|
|
|
|
- return jsonObject.getLong("campaign_id");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }*/
|
|
|
|
Long campaignId = null;
|
|
Long campaignId = null;
|
|
if ("ALL_CAMPAIGN".equals(checkType)) {
|
|
if ("ALL_CAMPAIGN".equals(checkType)) {
|
|
campaignId = campaignService.getCampaignIdByAccountAndName(strategy.getAccountId(), replaceString);
|
|
campaignId = campaignService.getCampaignIdByAccountAndName(strategy.getAccountId(), replaceString);
|
|
@@ -645,7 +630,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
// 不存在“上新”计划,则创建一个计划
|
|
// 不存在“上新”计划,则创建一个计划
|
|
JSONObject campaignParams = new JSONObject();
|
|
JSONObject campaignParams = new JSONObject();
|
|
campaignParams.put("advertiser_id", token.getAccountId());
|
|
campaignParams.put("advertiser_id", token.getAccountId());
|
|
- String campaignName = getName(strategy.getCampaignName(), strategy, createType, appInfo, timestamp, null, null);
|
|
|
|
|
|
+ String campaignName = getName(strategy.getCampaignName(), strategy, createType, appInfo, null, "plan", null);
|
|
campaignParams.put("campaign_name", campaignName);
|
|
campaignParams.put("campaign_name", campaignName);
|
|
campaignParams.put("type", strategy.getCampaignType());
|
|
campaignParams.put("type", strategy.getCampaignType());
|
|
if (null != strategy.getCampaignDayBudget() && strategy.getCampaignDayBudget() != 0) {
|
|
if (null != strategy.getCampaignDayBudget() && strategy.getCampaignDayBudget() != 0) {
|
|
@@ -674,8 +659,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
// 拼装创建组的入参 json
|
|
// 拼装创建组的入参 json
|
|
JSONObject unitParams = new JSONObject();
|
|
JSONObject unitParams = new JSONObject();
|
|
Integer unitType = strategy.getUnitType();
|
|
Integer unitType = strategy.getUnitType();
|
|
-
|
|
|
|
-
|
|
|
|
//创意制作方式
|
|
//创意制作方式
|
|
unitParams.put("unit_type", unitType);
|
|
unitParams.put("unit_type", unitType);
|
|
unitParams.put("advertiser_id", token.getAccountId());
|
|
unitParams.put("advertiser_id", token.getAccountId());
|
|
@@ -691,9 +674,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
unitParams.put("day_budget", 0);
|
|
unitParams.put("day_budget", 0);
|
|
}
|
|
}
|
|
//应用商店列表
|
|
//应用商店列表
|
|
-
|
|
|
|
unitParams.put("ocpx_action_type", strategy.getOcpxActionType());
|
|
unitParams.put("ocpx_action_type", strategy.getOcpxActionType());
|
|
-
|
|
|
|
//出价
|
|
//出价
|
|
if (null != strategy.getBid() && strategy.getBid() != 0) {
|
|
if (null != strategy.getBid() && strategy.getBid() != 0) {
|
|
unitParams.put("bid", strategy.getBid());
|
|
unitParams.put("bid", strategy.getBid());
|
|
@@ -721,7 +702,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
if (!Check.isNull(strategy.getDeepConversionBid())) {
|
|
if (!Check.isNull(strategy.getDeepConversionBid())) {
|
|
unitParams.put("deep_conversion_bid", strategy.getDeepConversionBid());
|
|
unitParams.put("deep_conversion_bid", strategy.getDeepConversionBid());
|
|
}
|
|
}
|
|
-
|
|
|
|
Integer sceneId = null;
|
|
Integer sceneId = null;
|
|
String scenceIdString = strategy.getSceneId();
|
|
String scenceIdString = strategy.getSceneId();
|
|
|
|
|
|
@@ -730,13 +710,16 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
sceneId = scenceArray.getInteger(0);
|
|
sceneId = scenceArray.getInteger(0);
|
|
unitParams.put("scene_id", scenceArray);
|
|
unitParams.put("scene_id", scenceArray);
|
|
}
|
|
}
|
|
-
|
|
|
|
Integer campaignType = strategy.getCampaignType();
|
|
Integer campaignType = strategy.getCampaignType();
|
|
if (campaignType == 2) { // 提升应用安装
|
|
if (campaignType == 2) { // 提升应用安装
|
|
//应用ID
|
|
//应用ID
|
|
if (!Check.isNull(appId)) {
|
|
if (!Check.isNull(appId)) {
|
|
unitParams.put("app_id", appId);
|
|
unitParams.put("app_id", appId);
|
|
}
|
|
}
|
|
|
|
+ // 直达链接
|
|
|
|
+ if (!Check.isNull(strategy.getSchemaUri())) {
|
|
|
|
+ unitParams.put("schema_uri", strategy.getSchemaUri());
|
|
|
|
+ }
|
|
// 优先从系统应用商店下载
|
|
// 优先从系统应用商店下载
|
|
if (null != strategy.getUseAppMarket()) {
|
|
if (null != strategy.getUseAppMarket()) {
|
|
unitParams.put("use_app_market", strategy.getUseAppMarket());
|
|
unitParams.put("use_app_market", strategy.getUseAppMarket());
|
|
@@ -745,16 +728,13 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
unitParams.put("app_store", JSON.parseArray(strategy.getAppStore()));
|
|
unitParams.put("app_store", JSON.parseArray(strategy.getAppStore()));
|
|
}
|
|
}
|
|
} else if (campaignType == 3) { // 获取电商下单
|
|
} else if (campaignType == 3) { // 获取电商下单
|
|
-
|
|
|
|
//url类型
|
|
//url类型
|
|
if (!Check.isNull(strategy.getUrlType())) {
|
|
if (!Check.isNull(strategy.getUrlType())) {
|
|
unitParams.put("url_type", strategy.getUrlType());
|
|
unitParams.put("url_type", strategy.getUrlType());
|
|
}
|
|
}
|
|
-
|
|
|
|
if (!Check.isNull(strategy.getUrl())) {
|
|
if (!Check.isNull(strategy.getUrl())) {
|
|
unitParams.put("url", strategy.getUrl());
|
|
unitParams.put("url", strategy.getUrl());
|
|
}
|
|
}
|
|
-
|
|
|
|
} else if (campaignType == 5) { //收集销售线索
|
|
} else if (campaignType == 5) { //收集销售线索
|
|
//url类型
|
|
//url类型
|
|
if (!Check.isNull(strategy.getWebUriType())) {
|
|
if (!Check.isNull(strategy.getWebUriType())) {
|
|
@@ -764,7 +744,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
if (!Check.isNull(strategy.getUrl())) {
|
|
if (!Check.isNull(strategy.getUrl())) {
|
|
unitParams.put("url", strategy.getUrl());
|
|
unitParams.put("url", strategy.getUrl());
|
|
}
|
|
}
|
|
-
|
|
|
|
} else if (campaignType == 7) { // 提高应用活跃
|
|
} else if (campaignType == 7) { // 提高应用活跃
|
|
// appId
|
|
// appId
|
|
if (!Check.isNull(appId)) {
|
|
if (!Check.isNull(appId)) {
|
|
@@ -780,7 +759,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
unitParams.put("schema_uri", strategy.getSchemaUri());
|
|
unitParams.put("schema_uri", strategy.getSchemaUri());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
//投放开始时间
|
|
//投放开始时间
|
|
if (!Check.isNull(strategy.getBeginTime())) {
|
|
if (!Check.isNull(strategy.getBeginTime())) {
|
|
unitParams.put("begin_time", strategy.getBeginTime());
|
|
unitParams.put("begin_time", strategy.getBeginTime());
|
|
@@ -799,8 +777,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
if (!Check.isNull(strategy.getConvertId())) {
|
|
if (!Check.isNull(strategy.getConvertId())) {
|
|
unitParams.put("convert_id", strategy.getConvertId());
|
|
unitParams.put("convert_id", strategy.getConvertId());
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
//创意展现方式
|
|
//创意展现方式
|
|
if (!Check.isNull(strategy.getShowMode())) {
|
|
if (!Check.isNull(strategy.getShowMode())) {
|
|
unitParams.put("show_mode", strategy.getShowMode());
|
|
unitParams.put("show_mode", strategy.getShowMode());
|
|
@@ -821,7 +797,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
if (!Check.isNull(strategy.getAutoCreatePhoto())) {
|
|
if (!Check.isNull(strategy.getAutoCreatePhoto())) {
|
|
unitParams.put("auto_create_photo", strategy.getAutoCreatePhoto());
|
|
unitParams.put("auto_create_photo", strategy.getAutoCreatePhoto());
|
|
}
|
|
}
|
|
-
|
|
|
|
if (unitType == 7) {
|
|
if (unitType == 7) {
|
|
//是否开启智能抽帧
|
|
//是否开启智能抽帧
|
|
if (!Check.isNull(strategy.getSmartCover())) {
|
|
if (!Check.isNull(strategy.getSmartCover())) {
|
|
@@ -851,8 +826,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
// 定向数据
|
|
// 定向数据
|
|
unitParams.put("target", target);
|
|
unitParams.put("target", target);
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
// 设置定向内容
|
|
// 设置定向内容
|
|
JSONObject targetJsonObject = new JSONObject();
|
|
JSONObject targetJsonObject = new JSONObject();
|
|
if (null != strategy.getRegion() && !"".equals(strategy.getRegion())) {
|
|
if (null != strategy.getRegion() && !"".equals(strategy.getRegion())) {
|
|
@@ -882,31 +855,53 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
if (null != strategy.getDevicePrice() && !"".equals(strategy.getDevicePrice()) && !"[]".equals(strategy.getDevicePrice())) {
|
|
if (null != strategy.getDevicePrice() && !"".equals(strategy.getDevicePrice()) && !"[]".equals(strategy.getDevicePrice())) {
|
|
targetJsonObject.put("device_price", JSON.parseArray(strategy.getDevicePrice()));
|
|
targetJsonObject.put("device_price", JSON.parseArray(strategy.getDevicePrice()));
|
|
}
|
|
}
|
|
- if (null != strategy.getPopulation() && !"".equals(strategy.getPopulation())) {
|
|
|
|
- JSONArray population = JSON.parseArray(strategy.getPopulation());
|
|
|
|
- targetJsonObject.put("population", population);
|
|
|
|
|
|
+ if (sceneId != 5) {
|
|
|
|
+ if (null != strategy.getFilterConvertedLevel() && strategy.getFilterConvertedLevel() != 0) {
|
|
|
|
+ targetJsonObject.put("filter_converted_level", strategy.getFilterConvertedLevel());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ JSONArray appInterest = JSONArray.parseArray(strategy.getAppInterest());
|
|
|
|
+ if (!Check.isNull(appInterest)) {
|
|
|
|
+ targetJsonObject.put("app_interest", appInterest);
|
|
}
|
|
}
|
|
- if (null != strategy.getFilterConvertedLevel() && strategy.getFilterConvertedLevel() != 0) {
|
|
|
|
- targetJsonObject.put("filter_converted_level", strategy.getFilterConvertedLevel());
|
|
|
|
|
|
+ // APP行为-按APP名称
|
|
|
|
+ JSONArray appIds = JSONArray.parseArray(strategy.getAppIds());
|
|
|
|
+ if (!Check.isNull(appIds)) {
|
|
|
|
+ targetJsonObject.put("app_ids", appIds);
|
|
}
|
|
}
|
|
- if (null != strategy.getExcludePopulation() && !"".equals(strategy.getExcludePopulation())) {
|
|
|
|
- JSONArray excludePopulation = JSON.parseArray(strategy.getExcludePopulation());
|
|
|
|
- targetJsonObject.put("exclude_population", excludePopulation);
|
|
|
|
|
|
+ // 人群包定向
|
|
|
|
+ JSONArray populationString = JSONArray.parseArray(strategy.getPopulation());
|
|
|
|
+ if (!Check.isNull(populationString)) {
|
|
|
|
+ targetJsonObject.put("population", populationString);
|
|
}
|
|
}
|
|
|
|
+ // 人群包排除
|
|
|
|
+ JSONArray excludePopulationString = JSONArray.parseArray(strategy.getExcludePopulation());
|
|
|
|
+ if (!Check.isNull(excludePopulationString)) {
|
|
|
|
+ targetJsonObject.put("exclude_population", excludePopulationString);
|
|
|
|
+ }
|
|
|
|
+ // 付费人群包id
|
|
|
|
+ JSONArray paidAudienceString = JSONArray.parseArray(strategy.getPaidAudience());
|
|
|
|
+ if (!Check.isNull(paidAudienceString)) {
|
|
|
|
+ targetJsonObject.put("paid_audience", paidAudienceString);
|
|
|
|
+ }
|
|
|
|
+
|
|
//是否开启智能扩量
|
|
//是否开启智能扩量
|
|
- if (null != strategy.getIsOpen() && strategy.getIsOpen().equals(1)) {
|
|
|
|
- JSONObject intelliExtend = new JSONObject();
|
|
|
|
- intelliExtend.put("is_open", 1);
|
|
|
|
- if (null != strategy.getNoAgeBreak() && strategy.getNoAgeBreak().equals(1)) {
|
|
|
|
- intelliExtend.put("no_age_break", 1);
|
|
|
|
- }
|
|
|
|
- if (null != strategy.getNoGenderBreak() && strategy.getNoGenderBreak().equals(1)) {
|
|
|
|
- intelliExtend.put("no_gender_break", 1);
|
|
|
|
- }
|
|
|
|
- if (null != strategy.getNoAreaBreak() && strategy.getNoAreaBreak().equals(1)) {
|
|
|
|
- intelliExtend.put("no_area_break", 1);
|
|
|
|
|
|
+ if (sceneId != 5) {
|
|
|
|
+ if (null != strategy.getIsOpen() && strategy.getIsOpen().equals(1)) {
|
|
|
|
+ JSONObject intelliExtend = new JSONObject();
|
|
|
|
+ intelliExtend.put("is_open", 1);
|
|
|
|
+ if (null != strategy.getNoAgeBreak() && strategy.getNoAgeBreak().equals(1)) {
|
|
|
|
+ intelliExtend.put("no_age_break", 1);
|
|
|
|
+ }
|
|
|
|
+ if (null != strategy.getNoGenderBreak() && strategy.getNoGenderBreak().equals(1)) {
|
|
|
|
+ intelliExtend.put("no_gender_break", 1);
|
|
|
|
+ }
|
|
|
|
+ if (null != strategy.getNoAreaBreak() && strategy.getNoAreaBreak().equals(1)) {
|
|
|
|
+ intelliExtend.put("no_area_break", 1);
|
|
|
|
+ }
|
|
|
|
+ targetJsonObject.put("intelli_extend", intelliExtend);
|
|
}
|
|
}
|
|
- targetJsonObject.put("intelli_extend", intelliExtend);
|
|
|
|
}
|
|
}
|
|
unitParams.put("target", targetJsonObject);
|
|
unitParams.put("target", targetJsonObject);
|
|
log.info("广告组创建参数:{}", unitParams.toJSONString());
|
|
log.info("广告组创建参数:{}", unitParams.toJSONString());
|
|
@@ -1039,30 +1034,30 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
|
|
|
|
}
|
|
}
|
|
// APP行为-按分类
|
|
// APP行为-按分类
|
|
- String appInterestString = strategy.getAppInterest();
|
|
|
|
- if (null != appInterestString && !"".equals(appInterestString.trim())) {
|
|
|
|
- target.put("app_interest", JSON.parseArray(appInterestString));
|
|
|
|
|
|
+ JSONArray appInterest = JSONArray.parseArray(strategy.getAppInterest());
|
|
|
|
+ if (!Check.isNull(appInterest)) {
|
|
|
|
+ target.put("app_interest", appInterest);
|
|
}
|
|
}
|
|
// APP行为-按APP名称
|
|
// APP行为-按APP名称
|
|
- String appIdsString = strategy.getAppIds();
|
|
|
|
- if (null != appIdsString && !"".equals(appIdsString.trim())) {
|
|
|
|
- target.put("app_ids", JSON.parseArray(appIdsString));
|
|
|
|
|
|
+ JSONArray appIds = JSONArray.parseArray(strategy.getAppIds());
|
|
|
|
+ if (!Check.isNull(appIds)) {
|
|
|
|
+ target.put("app_ids", appIds);
|
|
}
|
|
}
|
|
|
|
|
|
// 人群包定向
|
|
// 人群包定向
|
|
- String populationString = strategy.getPopulation();
|
|
|
|
- if (null != populationString && !"".equals(populationString.trim())) {
|
|
|
|
- target.put("population", JSON.parseArray(populationString));
|
|
|
|
|
|
+ JSONArray populationString = JSONArray.parseArray(strategy.getPopulation());
|
|
|
|
+ if (!Check.isNull(populationString)) {
|
|
|
|
+ target.put("population", populationString);
|
|
}
|
|
}
|
|
// 人群包排除
|
|
// 人群包排除
|
|
- String excludePopulationString = strategy.getExcludePopulation();
|
|
|
|
- if (null != excludePopulationString && !"".equals(excludePopulationString.trim())) {
|
|
|
|
- target.put("exclude_population", JSON.parseArray(excludePopulationString));
|
|
|
|
|
|
+ JSONArray excludePopulationString = JSONArray.parseArray(strategy.getExcludePopulation());
|
|
|
|
+ if (!Check.isNull(excludePopulationString)) {
|
|
|
|
+ target.put("exclude_population", excludePopulationString);
|
|
}
|
|
}
|
|
// 付费人群包id
|
|
// 付费人群包id
|
|
- String paidAudienceString = strategy.getPaidAudience();
|
|
|
|
- if (null != paidAudienceString && !"".equals(paidAudienceString.trim())) {
|
|
|
|
- target.put("paid_audience", JSON.parseArray(paidAudienceString));
|
|
|
|
|
|
+ JSONArray paidAudienceString = JSONArray.parseArray(strategy.getPaidAudience());
|
|
|
|
+ if (!Check.isNull(paidAudienceString)) {
|
|
|
|
+ target.put("paid_audience", paidAudienceString);
|
|
}
|
|
}
|
|
if (Check.isNull(strategy.getBehaviorInterest())) {
|
|
if (Check.isNull(strategy.getBehaviorInterest())) {
|
|
target.put("behavior_interest", JSON.parseObject(strategy.getBehaviorInterest()));
|
|
target.put("behavior_interest", JSON.parseObject(strategy.getBehaviorInterest()));
|
|
@@ -1187,7 +1182,10 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
* @param strategy 账户id
|
|
* @param strategy 账户id
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- private String getName(String wildcard, AiKuaishouAdvertiserStrategy strategy, Integer createType, AiKuaiShouAppInfo appInfo, String timestamp, Integer cnt, String materialName) {
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private RedisUtil redisUtil;
|
|
|
|
+
|
|
|
|
+ private String getName(String wildcard, AiKuaishouAdvertiserStrategy strategy, Integer createType, AiKuaiShouAppInfo appInfo, String materialName, String type, Long campaignId) {
|
|
if (wildcard.contains("{{应用包名}}")) {
|
|
if (wildcard.contains("{{应用包名}}")) {
|
|
String appName = "";
|
|
String appName = "";
|
|
if (null != appInfo) {
|
|
if (null != appInfo) {
|
|
@@ -1196,8 +1194,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
wildcard = wildcard.replace("{{应用包名}}", appName);
|
|
wildcard = wildcard.replace("{{应用包名}}", appName);
|
|
}
|
|
}
|
|
if (wildcard.contains("{{创意制作方式}}")) {
|
|
if (wildcard.contains("{{创意制作方式}}")) {
|
|
-// String creatype = KuaishouCreativeCreateTypeEnum.getNameByType(strategy.getOpenProgramCreate());
|
|
|
|
-// wildcard = wildcard.replace("{{创意制作方式}}",creatype);
|
|
|
|
if (strategy.getUnitType() == 4) {
|
|
if (strategy.getUnitType() == 4) {
|
|
wildcard = wildcard.replace("{{创意制作方式}}", "自定义");
|
|
wildcard = wildcard.replace("{{创意制作方式}}", "自定义");
|
|
} else if (strategy.getUnitType() == 7) {
|
|
} else if (strategy.getUnitType() == 7) {
|
|
@@ -1215,22 +1211,52 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
} else {
|
|
} else {
|
|
wildcard = wildcard.replace("{{素材名称}}", materialName);
|
|
wildcard = wildcard.replace("{{素材名称}}", materialName);
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
if (!wildcard.contains("{{自定义}}")) {
|
|
if (!wildcard.contains("{{自定义}}")) {
|
|
wildcard = wildcard + "{{自定义}}";
|
|
wildcard = wildcard + "{{自定义}}";
|
|
}
|
|
}
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ String nowDate = DateUtils.formatDate(date, "yy-MMdd");
|
|
|
|
+ if (type.equals("plan")) {
|
|
|
|
+ if (wildcard.contains("{{日期}}")) {
|
|
|
|
+ wildcard = wildcard.replace("{{日期}}", nowDate);
|
|
|
|
+ } else {
|
|
|
|
+ wildcard = wildcard + "-" + nowDate;
|
|
|
|
+ }
|
|
|
|
+ } else if ("unit".equals(type)) {
|
|
|
|
+ wildcard = wildcard.replace("{{日期}}", nowDate);
|
|
|
|
+ }
|
|
|
|
+
|
|
String targetName = KuaishouCreativeMatTypeEnum.getNameByType(strategy.getUnitType().toString() + createType.toString());
|
|
String targetName = KuaishouCreativeMatTypeEnum.getNameByType(strategy.getUnitType().toString() + createType.toString());
|
|
if (null != appInfo) {
|
|
if (null != appInfo) {
|
|
targetName = appInfo.getAppVersion() + "-" + targetName;
|
|
targetName = appInfo.getAppVersion() + "-" + targetName;
|
|
}
|
|
}
|
|
wildcard = wildcard.replace("{{自定义}}", targetName);
|
|
wildcard = wildcard.replace("{{自定义}}", targetName);
|
|
|
|
|
|
- if (null != timestamp && !"".equals(timestamp.trim())) {
|
|
|
|
- wildcard = wildcard + "-" + timestamp;
|
|
|
|
- }
|
|
|
|
- if (null != cnt) {
|
|
|
|
- wildcard = wildcard + "-" + cnt.toString();
|
|
|
|
|
|
+ if (!Check.isNull(campaignId)) {
|
|
|
|
+ Integer count = null;
|
|
|
|
+ if (null != strategy.getSingleAppid() && strategy.getSingleAppid() == 0) {
|
|
|
|
+ String redisKey = strategy.getAccountId() + "_" + campaignId;
|
|
|
|
+ Object redisValue = redisUtil.get(redisKey);
|
|
|
|
+ if (Check.isNull(redisValue)) {
|
|
|
|
+ count = 1;
|
|
|
|
+ redisUtil.set(redisKey, count);
|
|
|
|
+ } else {
|
|
|
|
+ count = (Integer) redisValue + 1;
|
|
|
|
+ redisUtil.set(redisKey, count);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ String redisKey = strategy.getAccountId() + "_" + campaignId + nowDate;
|
|
|
|
+ Object redisValue = redisUtil.get(redisKey);
|
|
|
|
+ if (Check.isNull(redisValue)) {
|
|
|
|
+ count = 1;
|
|
|
|
+ redisUtil.set(redisKey, count, 100000L);
|
|
|
|
+ } else {
|
|
|
|
+ count = (Integer) redisValue + 1;
|
|
|
|
+ redisUtil.set(redisKey, count, 100000L);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ wildcard = wildcard + "-" + count;
|
|
}
|
|
}
|
|
wildcard = wildcard.replace("--", "-");
|
|
wildcard = wildcard.replace("--", "-");
|
|
if (wildcard.startsWith("-")) {
|
|
if (wildcard.startsWith("-")) {
|
|
@@ -1256,4 +1282,14 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
|
|
}
|
|
}
|
|
return adsence.substring(0, adsence.length() - 1);
|
|
return adsence.substring(0, adsence.length() - 1);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ String s = DateUtils.formatDate(date, "yy-MMdd");
|
|
|
|
+ String timestamp = DateUtils.formatDate(new Date(), "HHmmss");
|
|
|
|
+ System.err.println(timestamp);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|