Browse Source

广告数据时报

zhaoxian 1 year ago
parent
commit
0a1406bc28

+ 6 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceV3PromotionProjectReportDaily.java

@@ -25,6 +25,12 @@ public class BytedanceV3PromotionProjectReportDaily {
     @ApiModelProperty(value = "账户ID")
     @ApiModelProperty(value = "账户ID")
     private Long advertiserId;
     private Long advertiserId;
     /**
     /**
+     * 小时
+     */
+    @Excel(name = "小时", width = 15)
+    @ApiModelProperty(value = "小时")
+    private Integer hour;
+    /**
      * 项目ID
      * 项目ID
      */
      */
     @Excel(name = "项目ID", width = 15)
     @Excel(name = "项目ID", width = 15)

+ 2 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdvertiserReportDailyMapper.java

@@ -23,4 +23,6 @@ public interface BytedanceAdvertiserReportDailyMapper {
     void insertV3PromotionProjectImage(@Param("list") List<ByteDanceNewMaterialReport> imageList);
     void insertV3PromotionProjectImage(@Param("list") List<ByteDanceNewMaterialReport> imageList);
 
 
     void insertPosition(@Param("list") List<BytedanceAdvertiserReportDaily> list);
     void insertPosition(@Param("list") List<BytedanceAdvertiserReportDaily> list);
+
+    void insertV3PromotionProjectHour(@Param("list") List<BytedanceV3PromotionProjectReportDaily> hourlyList);
 }
 }

+ 484 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdvertiserReportDailyMapper.xml

@@ -1497,6 +1497,490 @@
     </insert>
     </insert>
 
 
 
 
+    <insert id="insertV3PromotionProjectHour"
+            parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceV3PromotionProjectReportDaily">
+        replace into media_api.bytedance_promotion_report_hourly (
+        advertiser_id,
+        `hour`,
+        cdp_project_id,
+        cdp_project_name,
+        promotion_id,
+        promotion_name,
+        stat_time_day,
+        active,
+        active_cost,
+        active_pay,
+        active_pay_cost,
+        active_pay_intra_day_cost,
+        active_pay_intra_day_count,
+        active_pay_intra_day_rate,
+        active_pay_rate,
+        active_rate,
+        active_register,
+        active_register_cost,
+        active_register_rate,
+        ad_dislike_cnt,
+        ad_report_cnt,
+        attribution_active_pay,
+        attribution_active_pay_7d_per_count,
+        attribution_active_pay_cost,
+        attribution_active_pay_rate,
+        attribution_billing_game_in_app_ltv_1day,
+        attribution_billing_game_in_app_ltv_2days,
+        attribution_billing_game_in_app_ltv_3days,
+        attribution_billing_game_in_app_ltv_4days,
+        attribution_billing_game_in_app_ltv_5days,
+        attribution_billing_game_in_app_ltv_6days,
+        attribution_billing_game_in_app_ltv_7days,
+        attribution_billing_game_in_app_roi_1day,
+        attribution_billing_game_in_app_roi_2days,
+        attribution_billing_game_in_app_roi_3days,
+        attribution_billing_game_in_app_roi_4days,
+        attribution_billing_game_in_app_roi_5days,
+        attribution_billing_game_in_app_roi_6days,
+        attribution_billing_game_in_app_roi_7days,
+        attribution_billing_game_pay_7d_cost,
+        attribution_billing_game_pay_7d_count,
+        attribution_clue_confirm,
+        attribution_clue_confirm_cost,
+        attribution_clue_high_intention,
+        attribution_clue_high_intention_cost,
+        attribution_clue_interflow,
+        attribution_clue_interflow_cost,
+        attribution_clue_pay_succeed,
+        attribution_clue_pay_succeed_cost,
+        attribution_conversion_class_count,
+        attribution_conversion_rate,
+        attribution_convert_cnt,
+        attribution_convert_cost,
+        attribution_customer_effective,
+        attribution_customer_effective_cost,
+        attribution_day_active_pay_cost,
+        attribution_day_active_pay_count,
+        attribution_day_active_pay_rate,
+        attribution_deep_convert_cnt,
+        attribution_deep_convert_cost,
+        attribution_deep_convert_rate,
+        attribution_game_in_app_ltv_1day,
+        attribution_game_in_app_ltv_2days,
+        attribution_game_in_app_ltv_3days,
+        attribution_game_in_app_ltv_4days,
+        attribution_game_in_app_ltv_5days,
+        attribution_game_in_app_ltv_6days,
+        attribution_game_in_app_ltv_7days,
+        attribution_game_in_app_ltv_8days,
+        attribution_game_in_app_roi_1day,
+        attribution_game_in_app_roi_2days,
+        attribution_game_in_app_roi_3days,
+        attribution_game_in_app_roi_4days,
+        attribution_game_in_app_roi_5days,
+        attribution_game_in_app_roi_6days,
+        attribution_game_in_app_roi_7days,
+        attribution_game_in_app_roi_8days,
+        attribution_game_pay_7d_cost,
+        attribution_game_pay_7d_count,
+        attribution_micro_game_0d_ltv,
+        attribution_micro_game_0d_roi,
+        attribution_micro_game_3d_ltv,
+        attribution_micro_game_3d_roi,
+        attribution_micro_game_7d_ltv,
+        attribution_micro_game_7d_roi,
+        attribution_next_day_open_cnt,
+        attribution_next_day_open_cost,
+        attribution_next_day_open_rate,
+        attribution_retention_2d_cnt,
+        attribution_retention_2d_cost,
+        attribution_retention_2d_rate,
+        attribution_retention_3d_cnt,
+        attribution_retention_3d_cost,
+        attribution_retention_3d_rate,
+        attribution_retention_4d_cnt,
+        attribution_retention_4d_cost,
+        attribution_retention_4d_rate,
+        attribution_retention_5d_cnt,
+        attribution_retention_5d_cost,
+        attribution_retention_5d_rate,
+        attribution_retention_6d_cnt,
+        attribution_retention_6d_cost,
+        attribution_retention_6d_rate,
+        attribution_retention_7d_cnt,
+        attribution_retention_7d_cost,
+        attribution_retention_7d_rate,
+        attribution_retention_7d_sum_cnt,
+        attribution_retention_7d_total_cost,
+        attribution_work_wechat_added_count,
+        attribution_work_wechat_dialog_count,
+        attribution_work_wechat_unfriend_count,
+        average_play_time_per_play,
+        bankcard_information_count,
+        button,
+        card_show,
+        certification_information_count,
+        click_call_dy,
+        click_cnt,
+        click_download,
+        click_landing_page,
+        click_shopwindow,
+        click_start_cnt,
+        click_start_cost,
+        click_start_rate,
+        click_website,
+        consult,
+        consult_clue,
+        consult_effective,
+        conversion_cost,
+        conversion_rate,
+        convert_cnt,
+        coupon,
+        coupon_single_page,
+        cpc_platform,
+        cpm_platform,
+        ctr,
+        customer_effective,
+        deep_convert_cnt,
+        deep_convert_cost,
+        deep_convert_rate,
+        download_finish_cnt,
+        download_finish_cost,
+        download_finish_rate,
+        download_start,
+        dy_comment,
+        dy_follow,
+        dy_home_visited,
+        dy_like,
+        dy_share,
+        first_class_count,
+        form,
+        form_submit,
+        game_addiction,
+        game_addiction_cost,
+        game_addiction_rate,
+        game_pay_cost,
+        game_pay_count,
+        high_loan_credit_count,
+        ies_challenge_click,
+        ies_music_click,
+        in_app_cart,
+        in_app_detail_uv,
+        in_app_order,
+        in_app_order_gmv,
+        in_app_order_roi,
+        in_app_pay,
+        in_app_pay_gmv,
+        in_app_pay_roi,
+        in_app_uv,
+        in_wechat_pay_count,
+        install_finish_cnt,
+        install_finish_cost,
+        install_finish_rate,
+        insurance_lt_roi,
+        live_component_click_cost,
+        live_component_click_count,
+        live_component_click_rate,
+        live_watch_one_minute_count,
+        loan,
+        loan_completion,
+        loan_completion_cost,
+        loan_completion_rate,
+        loan_cost,
+        loan_credit,
+        loan_credit_cost,
+        loan_credit_rate,
+        loan_rate,
+        location_click,
+        lottery,
+        low_loan_credit_count,
+        luban_live_comment_cnt,
+        luban_live_enter_cnt,
+        luban_live_follow_cnt,
+        luban_live_share_cnt,
+        map,
+        message,
+        message_action,
+        next_day_open,
+        open_account_count,
+        pay_amount_roi,
+        personal_information_count,
+        phone,
+        phone_confirm,
+        phone_connect,
+        phone_effective,
+        play_25_feed_break,
+        play_50_feed_break,
+        play_75_feed_break,
+        play_99_feed_break,
+        play_duration_3s,
+        play_over_rate,
+        poi_address_click,
+        poi_collect,
+        pre_loan_credit,
+        pre_loan_credit_cost,
+        premium_payment_cost,
+        premium_payment_count,
+        qq,
+        redirect,
+        redirect_to_shop,
+        second_class_count,
+        shopping,
+        show_cnt,
+        stat_cost,
+        stat_pay_amount,
+        total_play,
+        unfollow_in_wechat_count,
+        valid_play,
+        valid_play_cost,
+        valid_play_cost_of_mille,
+        valid_play_of_mille,
+        valid_play_rate,
+        view,
+        vote,
+        wifi_play_rate,
+        withdraw_m2_count
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.hour},
+            #{item.cdpProjectId},
+            #{item.cdpProjectName},
+            #{item.promotionId},
+            #{item.promotionName},
+            #{item.statTimeDay},
+            #{item.active},
+            #{item.activeCost},
+            #{item.activePay},
+            #{item.activePayCost},
+            #{item.activePayIntraDayCost},
+            #{item.activePayIntraDayCount},
+            #{item.activePayIntraDayRate},
+            #{item.activePayRate},
+            #{item.activeRate},
+            #{item.activeRegister},
+            #{item.activeRegisterCost},
+            #{item.activeRegisterRate},
+            #{item.adDislikeCnt},
+            #{item.adReportCnt},
+            #{item.attributionActivePay},
+            #{item.attributionActivePay7dPerCount},
+            #{item.attributionActivePayCost},
+            #{item.attributionActivePayRate},
+            #{item.attributionBillingGameInAppLtv1day},
+            #{item.attributionBillingGameInAppLtv2days},
+            #{item.attributionBillingGameInAppLtv3days},
+            #{item.attributionBillingGameInAppLtv4days},
+            #{item.attributionBillingGameInAppLtv5days},
+            #{item.attributionBillingGameInAppLtv6days},
+            #{item.attributionBillingGameInAppLtv7days},
+            #{item.attributionBillingGameInAppRoi1day},
+            #{item.attributionBillingGameInAppRoi2days},
+            #{item.attributionBillingGameInAppRoi3days},
+            #{item.attributionBillingGameInAppRoi4days},
+            #{item.attributionBillingGameInAppRoi5days},
+            #{item.attributionBillingGameInAppRoi6days},
+            #{item.attributionBillingGameInAppRoi7days},
+            #{item.attributionBillingGamePay7dCost},
+            #{item.attributionBillingGamePay7dCount},
+            #{item.attributionClueConfirm},
+            #{item.attributionClueConfirmCost},
+            #{item.attributionClueHighIntention},
+            #{item.attributionClueHighIntentionCost},
+            #{item.attributionClueInterflow},
+            #{item.attributionClueInterflowCost},
+            #{item.attributionCluePaySucceed},
+            #{item.attributionCluePaySucceedCost},
+            #{item.attributionConversionClassCount},
+            #{item.attributionConversionRate},
+            #{item.attributionConvertCnt},
+            #{item.attributionConvertCost},
+            #{item.attributionCustomerEffective},
+            #{item.attributionCustomerEffectiveCost},
+            #{item.attributionDayActivePayCost},
+            #{item.attributionDayActivePayCount},
+            #{item.attributionDayActivePayRate},
+            #{item.attributionDeepConvertCnt},
+            #{item.attributionDeepConvertCost},
+            #{item.attributionDeepConvertRate},
+            #{item.attributionGameInAppLtv1day},
+            #{item.attributionGameInAppLtv2days},
+            #{item.attributionGameInAppLtv3days},
+            #{item.attributionGameInAppLtv4days},
+            #{item.attributionGameInAppLtv5days},
+            #{item.attributionGameInAppLtv6days},
+            #{item.attributionGameInAppLtv7days},
+            #{item.attributionGameInAppLtv8days},
+            #{item.attributionGameInAppRoi1day},
+            #{item.attributionGameInAppRoi2days},
+            #{item.attributionGameInAppRoi3days},
+            #{item.attributionGameInAppRoi4days},
+            #{item.attributionGameInAppRoi5days},
+            #{item.attributionGameInAppRoi6days},
+            #{item.attributionGameInAppRoi7days},
+            #{item.attributionGameInAppRoi8days},
+            #{item.attributionGamePay7dCost},
+            #{item.attributionGamePay7dCount},
+            #{item.attributionMicroGame0dLtv},
+            #{item.attributionMicroGame0dRoi},
+            #{item.attributionMicroGame3dLtv},
+            #{item.attributionMicroGame3dRoi},
+            #{item.attributionMicroGame7dLtv},
+            #{item.attributionMicroGame7dRoi},
+            #{item.attributionNextDayOpenCnt},
+            #{item.attributionNextDayOpenCost},
+            #{item.attributionNextDayOpenRate},
+            #{item.attributionRetention2dCnt},
+            #{item.attributionRetention2dCost},
+            #{item.attributionRetention2dRate},
+            #{item.attributionRetention3dCnt},
+            #{item.attributionRetention3dCost},
+            #{item.attributionRetention3dRate},
+            #{item.attributionRetention4dCnt},
+            #{item.attributionRetention4dCost},
+            #{item.attributionRetention4dRate},
+            #{item.attributionRetention5dCnt},
+            #{item.attributionRetention5dCost},
+            #{item.attributionRetention5dRate},
+            #{item.attributionRetention6dCnt},
+            #{item.attributionRetention6dCost},
+            #{item.attributionRetention6dRate},
+            #{item.attributionRetention7dCnt},
+            #{item.attributionRetention7dCost},
+            #{item.attributionRetention7dRate},
+            #{item.attributionRetention7dSumCnt},
+            #{item.attributionRetention7dTotalCost},
+            #{item.attributionWorkWechatAddedCount},
+            #{item.attributionWorkWechatDialogCount},
+            #{item.attributionWorkWechatUnfriendCount},
+            #{item.averagePlayTimePerPlay},
+            #{item.bankcardInformationCount},
+            #{item.button},
+            #{item.cardShow},
+            #{item.certificationInformationCount},
+            #{item.clickCallDy},
+            #{item.clickCnt},
+            #{item.clickDownload},
+            #{item.clickLandingPage},
+            #{item.clickShopwindow},
+            #{item.clickStartCnt},
+            #{item.clickStartCost},
+            #{item.clickStartRate},
+            #{item.clickWebsite},
+            #{item.consult},
+            #{item.consultClue},
+            #{item.consultEffective},
+            #{item.conversionCost},
+            #{item.conversionRate},
+            #{item.convertCnt},
+            #{item.coupon},
+            #{item.couponSinglePage},
+            #{item.cpcPlatform},
+            #{item.cpmPlatform},
+            #{item.ctr},
+            #{item.customerEffective},
+            #{item.deepConvertCnt},
+            #{item.deepConvertCost},
+            #{item.deepConvertRate},
+            #{item.downloadFinishCnt},
+            #{item.downloadFinishCost},
+            #{item.downloadFinishRate},
+            #{item.downloadStart},
+            #{item.dyComment},
+            #{item.dyFollow},
+            #{item.dyHomeVisited},
+            #{item.dyLike},
+            #{item.dyShare},
+            #{item.firstClassCount},
+            #{item.form},
+            #{item.formSubmit},
+            #{item.gameAddiction},
+            #{item.gameAddictionCost},
+            #{item.gameAddictionRate},
+            #{item.gamePayCost},
+            #{item.gamePayCount},
+            #{item.highLoanCreditCount},
+            #{item.iesChallengeClick},
+            #{item.iesMusicClick},
+            #{item.inAppCart},
+            #{item.inAppDetailUv},
+            #{item.inAppOrder},
+            #{item.inAppOrderGmv},
+            #{item.inAppOrderRoi},
+            #{item.inAppPay},
+            #{item.inAppPayGmv},
+            #{item.inAppPayRoi},
+            #{item.inAppUv},
+            #{item.inWechatPayCount},
+            #{item.installFinishCnt},
+            #{item.installFinishCost},
+            #{item.installFinishRate},
+            #{item.insuranceLtRoi},
+            #{item.liveComponentClickCost},
+            #{item.liveComponentClickCount},
+            #{item.liveComponentClickRate},
+            #{item.liveWatchOneMinuteCount},
+            #{item.loan},
+            #{item.loanCompletion},
+            #{item.loanCompletionCost},
+            #{item.loanCompletionRate},
+            #{item.loanCost},
+            #{item.loanCredit},
+            #{item.loanCreditCost},
+            #{item.loanCreditRate},
+            #{item.loanRate},
+            #{item.locationClick},
+            #{item.lottery},
+            #{item.lowLoanCreditCount},
+            #{item.lubanLiveCommentCnt},
+            #{item.lubanLiveEnterCnt},
+            #{item.lubanLiveFollowCnt},
+            #{item.lubanLiveShareCnt},
+            #{item.map},
+            #{item.message},
+            #{item.messageAction},
+            #{item.nextDayOpen},
+            #{item.openAccountCount},
+            #{item.payAmountRoi},
+            #{item.personalInformationCount},
+            #{item.phone},
+            #{item.phoneConfirm},
+            #{item.phoneConnect},
+            #{item.phoneEffective},
+            #{item.play25FeedBreak},
+            #{item.play50FeedBreak},
+            #{item.play75FeedBreak},
+            #{item.play99FeedBreak},
+            #{item.playDuration3s},
+            #{item.playOverRate},
+            #{item.poiAddressClick},
+            #{item.poiCollect},
+            #{item.preLoanCredit},
+            #{item.preLoanCreditCost},
+            #{item.premiumPaymentCost},
+            #{item.premiumPaymentCount},
+            #{item.qq},
+            #{item.redirect},
+            #{item.redirectToShop},
+            #{item.secondClassCount},
+            #{item.shopping},
+            #{item.showCnt},
+            #{item.statCost},
+            #{item.statPayAmount},
+            #{item.totalPlay},
+            #{item.unfollowInWechatCount},
+            #{item.validPlay},
+            #{item.validPlayCost},
+            #{item.validPlayCostOfMille},
+            #{item.validPlayOfMille},
+            #{item.validPlayRate},
+            #{item.view},
+            #{item.vote},
+            #{item.wifiPlayRate},
+            #{item.withdrawM2Count}
+            )
+        </foreach>
+    </insert>
+
+
     <insert id="insertV3PromotionProjectVideo"
     <insert id="insertV3PromotionProjectVideo"
             parameterType="cn.com.ctop.job.bytedance.data.entity.ByteDanceNewMaterialReport">
             parameterType="cn.com.ctop.job.bytedance.data.entity.ByteDanceNewMaterialReport">
         REPLACE bytedance_promotion_material_video_daily (
         REPLACE bytedance_promotion_material_video_daily (

+ 15 - 13
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/ByteDanceAdvertiserDataServiceImpl.java

@@ -976,7 +976,7 @@ public class ByteDanceAdvertiserDataServiceImpl implements IByteDanceAdvertiserD
         if (Check.isNull(rows)) {
         if (Check.isNull(rows)) {
             return;
             return;
         }
         }
-//        List<BytedanceV3ProjectReportHourly> hourlyList = new ArrayList<>();
+        List<BytedanceV3PromotionProjectReportDaily> hourlyList = new ArrayList<>();
         List<BytedanceV3PromotionProjectReportDaily> dailyList = new ArrayList<>();
         List<BytedanceV3PromotionProjectReportDaily> dailyList = new ArrayList<>();
         try {
         try {
             for (int i = 0; i < rows.size(); i++) {
             for (int i = 0; i < rows.size(); i++) {
@@ -989,15 +989,17 @@ public class ByteDanceAdvertiserDataServiceImpl implements IByteDanceAdvertiserD
                 String promotionName = dimensions.getString("cdp_promotion_name");
                 String promotionName = dimensions.getString("cdp_promotion_name");
 
 
                 if (conditions.getDimensions().contains(CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_HOURLY)) {
                 if (conditions.getDimensions().contains(CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_HOURLY)) {
-//                    String hour = dimensions.getString("stat_time_hour").substring(11, 13);
-//                    // 时报
-//                    BytedanceV3ProjectReportHourly hourlyReport = JSONObject.parseObject(metrics.toJSONString(), BytedanceV3ProjectReportHourly.class);
-//                    hourlyReport.setAdvertiserId(token.getAccountId());
-//                    hourlyReport.setStatTimeDay(dimensions.getString("stat_time_hour").substring(0, 10).replace("-", ""));
-//                    hourlyReport.setStatHour(Integer.parseInt(hour));
-//                    hourlyReport.setCdpProjectId(projectId);
-//                    hourlyReport.setCdpProjectName(projectName);
-//                    hourlyList.add(hourlyReport);
+                    String hour = dimensions.getString("stat_time_hour").substring(11, 13);
+                    // 时报
+                    BytedanceV3PromotionProjectReportDaily hourlyReport = JSONObject.parseObject(metrics.toJSONString(), BytedanceV3PromotionProjectReportDaily.class);
+                    hourlyReport.setAdvertiserId(token.getAccountId());
+                    hourlyReport.setStatTimeDay(dimensions.getString("stat_time_hour").substring(0, 10).replace("-", ""));
+                    hourlyReport.setHour(Integer.parseInt(hour));
+                    hourlyReport.setCdpProjectId(projectId);
+                    hourlyReport.setCdpProjectName(projectName);
+                    hourlyReport.setPromotionId(promotionId);
+                    hourlyReport.setPromotionName(promotionName);
+                    hourlyList.add(hourlyReport);
                 } else {
                 } else {
                     // 日报
                     // 日报
                     BytedanceV3PromotionProjectReportDaily dailyReport = JSONObject.parseObject(metrics.toJSONString(), BytedanceV3PromotionProjectReportDaily.class);
                     BytedanceV3PromotionProjectReportDaily dailyReport = JSONObject.parseObject(metrics.toJSONString(), BytedanceV3PromotionProjectReportDaily.class);
@@ -1010,9 +1012,9 @@ public class ByteDanceAdvertiserDataServiceImpl implements IByteDanceAdvertiserD
                     dailyList.add(dailyReport);
                     dailyList.add(dailyReport);
                 }
                 }
             }
             }
-//            if (hourlyList.size() > 0) {
-//                bytedanceAdvertiserReportHourlyMapper.insertV3Project(hourlyList);
-//            }
+            if (hourlyList.size() > 0) {
+                bytedanceAdvertiserReportDailyMapper.insertV3PromotionProjectHour(hourlyList);
+            }
             if (dailyList.size() > 0) {
             if (dailyList.size() > 0) {
                 bytedanceAdvertiserReportDailyMapper.insertV3PromotionProject(dailyList);
                 bytedanceAdvertiserReportDailyMapper.insertV3PromotionProject(dailyList);
             }
             }

+ 33 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceAdvertiseLoadJob.java

@@ -278,6 +278,39 @@ public class BytedanceAdvertiseLoadJob {
     }
     }
 
 
     /**
     /**
+     * 广告时报
+     *
+     * @throws Exception
+     */
+    @XxlJob("bytedanceV3PromotionProjectReportHour")
+    public void bytedanceV3PromotionProjectReportHour() throws Exception {
+        String param = XxlJobHelper.getJobParam(); // 执行参数
+        if (Check.isNull(param)) {
+            log.error("入参为空");
+            return;
+        }
+        String token = tokenService.getByAccountId(Long.valueOf(param));
+        if (Check.isNull(token)) {
+            log.error("此账户未获取到相关token,accountId:{}", param);
+            return;
+        }
+        OauthToken oauthToken = new OauthToken();
+        oauthToken.setAccessToken(token);
+        oauthToken.setAccountId(Long.parseLong(param));
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+//        String yesterda2 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
+        dailyExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        advertiserDataService.getV3PromotionProjectReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_HOURLY);
+                        advertiserDataService.getV3PromotionProjectReport(oauthToken, nowDate, nowDate, CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_HOURLY);
+                    }
+                });
+    }
+
+    /**
      * 广告主时报
      * 广告主时报
      *
      *
      * @throws Exception
      * @throws Exception