|
|
@@ -759,6 +759,124 @@ public class AccountReportConstants {
|
|
|
" \"comment\": \"投放场景\"\n" +
|
|
|
" }\n" +
|
|
|
"}";
|
|
|
+ public static final String TENCENT_VIDEO_REPORT_FILED_MAPPING_JSON = "{\n" +
|
|
|
+ " \"cost\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(cost),0) as cost \",\n" +
|
|
|
+ " \"comment\": \"消耗\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"photoShow\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(view_count),0) as photoShow \",\n" +
|
|
|
+ " \"comment\": \"曝光数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"photoClick\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(valid_click_count),0) as photoClick \",\n" +
|
|
|
+ " \"comment\": \"点击数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"aClick\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(view_count),0) as aClick \",\n" +
|
|
|
+ " \"comment\": \"素材曝光数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"bClick\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(conversions_count),0) as bClick \",\n" +
|
|
|
+ " \"comment\": \"转化数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"clickRate\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(view_count) != 0 THEN ROUND(sum(valid_click_count) / sum(view_count),4) ELSE 0 END AS clickRate \",\n" +
|
|
|
+ " \"comment\": \"点击率\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"bClickRate\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(view_count) != 0 THEN ROUND(sum(conversions_count) / sum(view_count),4) ELSE 0 END AS bClickRate \",\n" +
|
|
|
+ " \"comment\": \"转化率\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"cpm\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(view_count) != 0 THEN ROUND(sum(cost) / sum(view_count) * 1000,3) ELSE 0 END AS cpm \",\n" +
|
|
|
+ " \"comment\": \"平均千次曝光花费\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"cpc\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(valid_click_count) != 0 THEN ROUND(sum(cost) / sum(valid_click_count),3) ELSE 0 END AS cpc \",\n" +
|
|
|
+ " \"comment\": \"平均点击单价\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"cpb\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(conversions_count) != 0 THEN ROUND(sum(cost) / sum(conversions_count),3) ELSE 0 END AS cpb \",\n" +
|
|
|
+ " \"comment\": \"平均转化成本\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"active\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(activated_count),0) as active \",\n" +
|
|
|
+ " \"comment\": \"激活数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"activeCost\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(activated_count) != 0 THEN ROUND(sum(cost) / sum(activated_count),3) ELSE 0 END AS activeCost \",\n" +
|
|
|
+ " \"comment\": \"激活成本\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"activeRate\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(valid_click_count) != 0 THEN ROUND(sum(activated_count) / sum(valid_click_count),4) ELSE 0 END AS activeRate \",\n" +
|
|
|
+ " \"comment\": \"激活率\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"register\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(reg_pv),0) as register \",\n" +
|
|
|
+ " \"comment\": \"注册数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"activeRegisterCost\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(reg_pv) != 0 THEN ROUND(sum(cost) / sum(reg_pv),3) ELSE 0 END AS activeRegisterCost \",\n" +
|
|
|
+ " \"comment\": \"注册成本\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"activeRegisterRate\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(activated_count) != 0 THEN ROUND(sum(reg_pv) / sum(activated_count),4) ELSE 0 END AS activeRegisterRate \",\n" +
|
|
|
+ " \"comment\": \"注册率\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"nextDayOpen\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(retention_count),0) as nextDayOpen \",\n" +
|
|
|
+ " \"comment\": \"次留数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"nextDayOpenCost\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(retention_count) != 0 THEN ROUND(sum(cost) / sum(retention_count),3) ELSE 0 END AS nextDayOpenCost \",\n" +
|
|
|
+ " \"comment\": \"次留成本\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"nextDayOpenRate\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(activated_count) != 0 THEN ROUND(sum(retention_count) / sum(activated_count),4) ELSE 0 END AS nextDayOpenRate \",\n" +
|
|
|
+ " \"comment\": \"次留率\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"play3sCount\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(play_3s_count),0) as play3sCount \",\n" +
|
|
|
+ " \"comment\": \"3s播放数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"play3sRate\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(view_count) != 0 THEN ROUND(sum(play_3s_count) / sum(view_count),4) ELSE 0 END AS play3sRate \",\n" +
|
|
|
+ " \"comment\": \"3s播放率\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"convertMaterial\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(conversions_count),0) as convertMaterial \",\n" +
|
|
|
+ " \"comment\": \"转化数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"convertRate\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(valid_click_count) != 0 THEN ROUND(sum(conversions_count) / sum(valid_click_count),4) ELSE 0 END AS convertRate \",\n" +
|
|
|
+ " \"comment\": \"转化率\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"convertCost\": {\n" +
|
|
|
+ " \"filed\": \"CASE WHEN sum(conversions_count) != 0 THEN ROUND(sum(cost) / sum(conversions_count),3) ELSE 0 END AS convertCost \",\n" +
|
|
|
+ " \"comment\": \"转化成本\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"deepConvert\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(deep_conversions_count),0) as deepConvert \",\n" +
|
|
|
+ " \"comment\": \"深度转化数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"purchasePv\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(purchase_pv),0) as purchasePv \",\n" +
|
|
|
+ " \"comment\": \"付费次数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"purchaseAmount\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(purchase_amount),0) as purchaseAmount \",\n" +
|
|
|
+ " \"comment\": \"付费金额\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"firstDayPay\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(first_pay_count),0) as firstDayPay \",\n" +
|
|
|
+ " \"comment\": \"首日付费次数\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"videoPlay100Count\": {\n" +
|
|
|
+ " \"filed\": \"IFNULL(sum(video_outer_play100_count),0) as videoPlay100Count \",\n" +
|
|
|
+ " \"comment\": \"100%播放数\"\n" +
|
|
|
+ " }\n" +
|
|
|
+ "}";
|
|
|
|
|
|
public static final String BYTEDANCE_VIDEO_REPORT_FILED = "{\n" +
|
|
|
" \"materialName\": {\n" +
|
|
|
@@ -1401,6 +1519,11 @@ public class AccountReportConstants {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ public static Map<String, Map<String, Object>> getTencentVideoReportMap() {
|
|
|
+ Object tencentVideoJson = JSON.parseObject(TENCENT_VIDEO_REPORT_FILED_MAPPING_JSON);
|
|
|
+ return JsonResourceUtil.jsonToMap(tencentVideoJson);
|
|
|
+ }
|
|
|
+
|
|
|
public static Map<String, Map<String, Object>> getBytedanceVideoFiled() {
|
|
|
Object bytedanceVideoJson = JSON.parseObject(BYTEDANCE_VIDEO_REPORT_FILED);
|
|
|
return JsonResourceUtil.jsonToMap(bytedanceVideoJson);
|