|
@@ -446,6 +446,203 @@
|
|
)
|
|
)
|
|
</foreach>
|
|
</foreach>
|
|
</insert>
|
|
</insert>
|
|
|
|
+ <insert id="insertBatch">
|
|
|
|
+ insert into ctop_bytedance_video_report_daily(
|
|
|
|
+ account_id,
|
|
|
|
+ project_id,
|
|
|
|
+ project_name,
|
|
|
|
+ advertiser_id,
|
|
|
|
+ advertiser_name,
|
|
|
|
+ signature,
|
|
|
|
+ video_url,
|
|
|
|
+ url,
|
|
|
|
+ huanbi,
|
|
|
|
+ material_name,
|
|
|
|
+ app_type,
|
|
|
|
+ company_id,
|
|
|
|
+ material_id,
|
|
|
|
+ stat_datetime,
|
|
|
|
+ click,
|
|
|
|
+ cost,
|
|
|
|
+ active,
|
|
|
|
+ download_finish,
|
|
|
|
+ download_start,
|
|
|
|
+ install_finish,
|
|
|
|
+ register,
|
|
|
|
+ pay_count,
|
|
|
|
+ in_app_uv,
|
|
|
|
+ in_app_detail_uv,
|
|
|
|
+ in_app_cart,
|
|
|
|
+ in_app_order,
|
|
|
|
+ in_app_pay,
|
|
|
|
+ phone,
|
|
|
|
+ form,
|
|
|
|
+ map_search,
|
|
|
|
+ view_material,
|
|
|
|
+ qq,
|
|
|
|
+ lottery,
|
|
|
|
+ vote,
|
|
|
|
+ redirect,
|
|
|
|
+ shopping,
|
|
|
|
+ consult,
|
|
|
|
+ wechat,
|
|
|
|
+ phone_confirm,
|
|
|
|
+ phone_connect,
|
|
|
|
+ consult_effective,
|
|
|
|
+ total_play,
|
|
|
|
+ valid_play,
|
|
|
|
+ wifi_play,
|
|
|
|
+ play25_feed_break_rate,
|
|
|
|
+ play25_feed_break,
|
|
|
|
+ play50_feed_break,
|
|
|
|
+ play75_feed_break,
|
|
|
|
+ play100_feed_break,
|
|
|
|
+ advanced_creative_phone_click,
|
|
|
|
+ advanced_creative_counsel_click,
|
|
|
|
+ advanced_creative_form_click,
|
|
|
|
+ share_material,
|
|
|
|
+ comment_material,
|
|
|
|
+ follow,
|
|
|
|
+ home_visited,
|
|
|
|
+ ies_challenge_click,
|
|
|
|
+ ies_music_click,
|
|
|
|
+ next_day_open,
|
|
|
|
+ next_day_open_rate,
|
|
|
|
+ next_day_open_cost,
|
|
|
|
+ active_pay_amount,
|
|
|
|
+ valid_play_cost,
|
|
|
|
+ advanced_creative_coupon_addition,
|
|
|
|
+ convert_material,
|
|
|
|
+ active_pay_cost,
|
|
|
|
+ download,
|
|
|
|
+ cpc,
|
|
|
|
+ location_click,
|
|
|
|
+ play_over_rate,
|
|
|
|
+ ctr,
|
|
|
|
+ cpm,
|
|
|
|
+ wifi_play_rate,
|
|
|
|
+ like_material,
|
|
|
|
+ active_cost,
|
|
|
|
+ game_addiction_cost,
|
|
|
|
+ game_addiction,
|
|
|
|
+ active_rate,
|
|
|
|
+ game_addiction_rate,
|
|
|
|
+ active_register_rate,
|
|
|
|
+ download_finish_cost,
|
|
|
|
+ active_register_cost,
|
|
|
|
+ convert_rate,
|
|
|
|
+ download_finish_rate,
|
|
|
|
+ install_finish_rate,
|
|
|
|
+ coupon,
|
|
|
|
+ coupon_single_page,
|
|
|
|
+ play_over,
|
|
|
|
+ download_start_cost,
|
|
|
|
+ message,
|
|
|
|
+ valid_play_rate,
|
|
|
|
+ average_play_time_per_play,
|
|
|
|
+ convert_cost,
|
|
|
|
+ install_finish_cost,
|
|
|
|
+ download_start_rate
|
|
|
|
+ )
|
|
|
|
+ values
|
|
|
|
+ <foreach collection="mlist" item="image" separator=",">
|
|
|
|
+ (#{image.accountId},
|
|
|
|
+ #{image.projectId},
|
|
|
|
+ #{image.projectName},
|
|
|
|
+ #{image.advertiserId},
|
|
|
|
+ #{image.advertiserName},
|
|
|
|
+ #{image.signature},
|
|
|
|
+ #{image.videoUrl},
|
|
|
|
+ #{image.url},
|
|
|
|
+ #{image.huanbi},
|
|
|
|
+ #{image.materialName},
|
|
|
|
+ #{image.appType},
|
|
|
|
+ #{image.companyId},
|
|
|
|
+ #{image.materialId},
|
|
|
|
+ #{image.statDatetime},
|
|
|
|
+ #{image.click},
|
|
|
|
+ #{image.cost},
|
|
|
|
+ #{image.active},
|
|
|
|
+ #{image.downloadFinish},
|
|
|
|
+ #{image.downloadStart},
|
|
|
|
+ #{image.installFinish},
|
|
|
|
+ #{image.register},
|
|
|
|
+ #{image.payCount},
|
|
|
|
+ #{image.inAppUv},
|
|
|
|
+ #{image.inAppDetailUv},
|
|
|
|
+ #{image.inAppCart},
|
|
|
|
+ #{image.inAppOrder},
|
|
|
|
+ #{image.inAppPay},
|
|
|
|
+ #{image.phone},
|
|
|
|
+ #{image.form},
|
|
|
|
+ #{image.mapSearch},
|
|
|
|
+ #{image.viewMaterial},
|
|
|
|
+ #{image.qq},
|
|
|
|
+ #{image.lottery},
|
|
|
|
+ #{image.vote},
|
|
|
|
+ #{image.redirect},
|
|
|
|
+ #{image.shopping},
|
|
|
|
+ #{image.consult},
|
|
|
|
+ #{image.wechat},
|
|
|
|
+ #{image.phoneConfirm},
|
|
|
|
+ #{image.phoneConnect},
|
|
|
|
+ #{image.consultEffective},
|
|
|
|
+ #{image.totalPlay},
|
|
|
|
+ #{image.validPlay},
|
|
|
|
+ #{image.wifiPlay},
|
|
|
|
+ #{image.play25FeedBreakRate},
|
|
|
|
+ #{image.play25FeedBreak},
|
|
|
|
+ #{image.play50FeedBreak},
|
|
|
|
+ #{image.play75FeedBreak},
|
|
|
|
+ #{image.play100FeedBreak},
|
|
|
|
+ #{image.advancedCreativePhoneClick},
|
|
|
|
+ #{image.advancedCreativeCounselClick},
|
|
|
|
+ #{image.advancedCreativeFormClick},
|
|
|
|
+ #{image.shareMaterial},
|
|
|
|
+ #{image.commentMaterial},
|
|
|
|
+ #{image.follow},
|
|
|
|
+ #{image.homeVisited},
|
|
|
|
+ #{image.iesChallengeClick},
|
|
|
|
+ #{image.iesMusicClick},
|
|
|
|
+ #{image.nextDayOpen},
|
|
|
|
+ #{image.nextDayOpenRate},
|
|
|
|
+ #{image.nextDayOpenCost},
|
|
|
|
+ #{image.activePayAmount},
|
|
|
|
+ #{image.validPlayCost},
|
|
|
|
+ #{image.advancedCreativeCouponAddition},
|
|
|
|
+ #{image.convertMaterial},
|
|
|
|
+ #{image.activePayCost},
|
|
|
|
+ #{image.download},
|
|
|
|
+ #{image.cpc},
|
|
|
|
+ #{image.locationClick},
|
|
|
|
+ #{image.playOverRate},
|
|
|
|
+ #{image.ctr},
|
|
|
|
+ #{image.cpm},
|
|
|
|
+ #{image.wifiPlayRate},
|
|
|
|
+ #{image.likeMaterial},
|
|
|
|
+ #{image.activeCost},
|
|
|
|
+ #{image.gameAddictionCost},
|
|
|
|
+ #{image.gameAddiction},
|
|
|
|
+ #{image.activeRate},
|
|
|
|
+ #{image.gameAddictionRate},
|
|
|
|
+ #{image.activeRegisterRate},
|
|
|
|
+ #{image.downloadFinishCost},
|
|
|
|
+ #{image.activeRegisterCost},
|
|
|
|
+ #{image.convertRate},
|
|
|
|
+ #{image.downloadFinishRate},
|
|
|
|
+ #{image.installFinishRate},
|
|
|
|
+ #{image.coupon},
|
|
|
|
+ #{image.couponSinglePage},
|
|
|
|
+ #{image.playOver},
|
|
|
|
+ #{image.downloadStartCost},
|
|
|
|
+ #{image.message},
|
|
|
|
+ #{image.validPlayRate},
|
|
|
|
+ #{image.averagePlayTimePerPlay},
|
|
|
|
+ #{image.convertCost},
|
|
|
|
+ #{image.installFinishCost},
|
|
|
|
+ #{image.downloadStartRate})
|
|
|
|
+ </foreach>
|
|
|
|
+ </insert>
|
|
|
|
|
|
<select id="getAccountIdByprojectIds" resultType="long">
|
|
<select id="getAccountIdByprojectIds" resultType="long">
|
|
select
|
|
select
|
|
@@ -678,18 +875,212 @@
|
|
|
|
|
|
<select id="videoInfoList" resultType="cn.com.ctop.toutiao.modules.report.entity.ByteDanceVideoReportDaily">
|
|
<select id="videoInfoList" resultType="cn.com.ctop.toutiao.modules.report.entity.ByteDanceVideoReportDaily">
|
|
select
|
|
select
|
|
- <include refid="videoInfoSql"></include>
|
|
|
|
- #{companyId} as companyId
|
|
|
|
|
|
+ a.account_id as accountId,
|
|
|
|
+ b.project_id as projectId,
|
|
|
|
+ b.project_name as projectName,
|
|
|
|
+ b.advertiser_id as advertiserId,
|
|
|
|
+ b.advertiser_name as advertiserName,
|
|
|
|
+ a.stat_datetime as statDatetime,
|
|
|
|
+ sum(a.cost) as cost,
|
|
|
|
+ d.signature as signature,
|
|
|
|
+ d.video_url as videoUrl,
|
|
|
|
+ (select mat.url from ctop_material_info mat where mat.code = d.signature order by id desc limit 1) as url,
|
|
|
|
+ '-' as materialDesc,
|
|
|
|
+ 1 as appType,
|
|
|
|
+ sum(a.click) as click,
|
|
|
|
+ case
|
|
|
|
+ when sum(a.total_play) != 0
|
|
|
|
+ then sum(a.play25_feed_break)/sum(a.total_play)
|
|
|
|
+ else 0 end as play25FeedBreakRate,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.total_play) != 0
|
|
|
|
+ then sum(a.play_over)/sum(a.total_play)
|
|
|
|
+ else 0 end as playOverRate,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.click) != 0
|
|
|
|
+ then sum(a.convert_material)/sum(a.click)
|
|
|
|
+ else 0 end as convertRate,
|
|
|
|
+ sum(a.active) as active,
|
|
|
|
+ sum(a.download_finish) as downloadFinish,
|
|
|
|
+ sum(a.download_start) as downloadStart,
|
|
|
|
+ sum(a.install_finish) as installFinish,
|
|
|
|
+ sum(a.register) as register,
|
|
|
|
+ sum(a.pay_count) as payCount,
|
|
|
|
+ sum(a.in_app_uv) as inAppUv,
|
|
|
|
+ sum(a.in_app_detail_uv) as inAppDetailUv,
|
|
|
|
+ sum(a.in_app_cart) as inAppCart,
|
|
|
|
+ sum(a.in_app_order) as inAppOrder,
|
|
|
|
+ sum(a.in_app_pay) as inAppPay,
|
|
|
|
+ sum(a.phone) as phone,
|
|
|
|
+ sum(a.form) as form,
|
|
|
|
+ sum(a.map_search) as mapSearch,
|
|
|
|
+ sum(a.button) as button,
|
|
|
|
+ sum(a.view_material) as viewMaterial,
|
|
|
|
+ sum(a.qq) as qq,
|
|
|
|
+ sum(a.lottery) as lottery,
|
|
|
|
+ sum(a.vote) as vote,
|
|
|
|
+ sum(a.redirect) as redirect,
|
|
|
|
+ sum(a.shopping) as shopping,
|
|
|
|
+ sum(a.consult) as consult,
|
|
|
|
+ sum(a.wechat) as wechat,
|
|
|
|
+ sum(a.phone_confirm) as phoneConfirm,
|
|
|
|
+ sum(a.phone_connect) as phoneConnect,
|
|
|
|
+ sum(a.consult_effective) as consultEffective,
|
|
|
|
+ sum(a.total_play) as totalPlay,
|
|
|
|
+ sum(a.valid_play) as validPlay,
|
|
|
|
+ sum(a.wifi_play) as wifiPlay,
|
|
|
|
+ sum(a.play25_feed_break) as play25FeedBreak,
|
|
|
|
+ sum(a.play50_feed_break) as play50FeedBreak,
|
|
|
|
+ sum(a.play75_feed_break) as play75FeedBreak,
|
|
|
|
+ sum(a.play100_feed_break) as play100FeedBreak,
|
|
|
|
+ sum(a.advanced_creative_phone_click) as advancedCreativePhoneClick,
|
|
|
|
+ sum(a.advanced_creative_counsel_click) as advancedCreativeCounselClick,
|
|
|
|
+ sum(a.advanced_creative_form_click) as advancedCreativeFormClick,
|
|
|
|
+ sum(a.share_material) as shareMaterial,
|
|
|
|
+ sum(a.comment_material) as commentMaterial,
|
|
|
|
+ sum(a.follow) as follow,
|
|
|
|
+ sum(a.home_visited) as homeVisited,
|
|
|
|
+ sum(a.ies_challenge_click) as iesChallengeClick,
|
|
|
|
+ sum(a.ies_music_click) as iesMusicClick,
|
|
|
|
+ sum(a.next_day_open) as nextDayOpen,
|
|
|
|
+ case
|
|
|
|
+ when sum(a.active) != 0
|
|
|
|
+ then sum(a.next_day_open)/sum(a.active)
|
|
|
|
+ else 0 end as nextDayOpenRate,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.next_day_open) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.next_day_open)
|
|
|
|
+ else 0 end as nextDayOpenCost,
|
|
|
|
+
|
|
|
|
+ case when sum(a.pay_count) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.pay_count)
|
|
|
|
+ else 0 end
|
|
|
|
+ as activePayCost,
|
|
|
|
+
|
|
|
|
+ sum(a.active_pay_amount) as activePayAmount,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.valid_play) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.valid_play)
|
|
|
|
+ else 0 end validPlayCost,
|
|
|
|
+ sum(a.advanced_creative_coupon_addition) as advancedCreativeCouponAddition,
|
|
|
|
+ sum(a.convert_material) as convertMaterial,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.active_pay_amount) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.active_pay_amount)
|
|
|
|
+ else 0 end as activePayCost,
|
|
|
|
+ sum(a.download) as download,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.click) != 0
|
|
|
|
+ then sum(a.cost) / sum(a.click)
|
|
|
|
+ else 0 end as cpc,
|
|
|
|
+ sum(a.location_click) as locationClick,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.show_material) != 0
|
|
|
|
+ then sum(a.click)/sum(a.show_material)
|
|
|
|
+ else 0 end as ctr,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.show_material) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.show_material)*1000
|
|
|
|
+ else 0 end cpm,
|
|
|
|
+ sum(a.wifi_play_rate) as wifiPlayRate,
|
|
|
|
+ sum(a.like_material) as likeMaterial,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.active) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.active)
|
|
|
|
+ else 0 end activeCost,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.game_addiction) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.game_addiction)
|
|
|
|
+ else 0 end as gameAddictionCost,
|
|
|
|
+ sum(a.game_addiction) as gameAddiction,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.click) != 0
|
|
|
|
+ then sum(a.active)/sum(a.click)
|
|
|
|
+ else 0 end as activeRate,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.active) != 0
|
|
|
|
+ then sum(a.game_addiction)/sum(a.active)
|
|
|
|
+ else 0 end gameAddictionRate,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.active) != 0
|
|
|
|
+ then sum(a.register)/sum(a.active)
|
|
|
|
+ else 0 end as activeRegisterRate,
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.download_finish) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.download_finish)
|
|
|
|
+ else 0 end as downloadFinishCost,
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.register) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.register)
|
|
|
|
+ else 0 end as activeRegisterCost,
|
|
|
|
+ sum(a.show_material) as showMaterial,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.download_start) != 0
|
|
|
|
+ then sum(a.download_finish)/sum(a.download_start)
|
|
|
|
+ else 0 end as downloadFinishRate,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.download_finish) != 0
|
|
|
|
+ then sum(a.install_finish)/sum(a.download_finish)
|
|
|
|
+ else 0 end as installFinishRate,
|
|
|
|
+ sum(a.coupon) as coupon,
|
|
|
|
+ sum(a.coupon_single_page) as couponSinglePage,
|
|
|
|
+ sum(a.play_over) as playOver,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.download_start) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.download_start)
|
|
|
|
+ else 0 end as downloadStartCost,
|
|
|
|
+ sum(a.message) as message,
|
|
|
|
+ case
|
|
|
|
+ when sum(a.show_material) != 0
|
|
|
|
+ then sum(a.valid_play)/sum(a.show_material)
|
|
|
|
+ else 0 end as validPlayRate,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.valid_play) != 0
|
|
|
|
+ then sum(a.average_play_time_per_play*a.valid_play)/sum(a.valid_play)
|
|
|
|
+ else 0 end as averagePlayTimePerPlay,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.convert_material) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.convert_material)
|
|
|
|
+ else 0 end as convertCost,
|
|
|
|
+ case
|
|
|
|
+ when sum(a.install_finish) != 0
|
|
|
|
+ then sum(a.cost)/sum(a.install_finish)
|
|
|
|
+ else 0 end as installFinishCost,
|
|
|
|
+
|
|
|
|
+ case
|
|
|
|
+ when sum(a.click) != 0
|
|
|
|
+ then sum(a.download_start)/sum(a.click)
|
|
|
|
+ else 0 end as downloadStartRate,
|
|
|
|
+ c.company_id as companyId
|
|
from ctop_bytedance_report_material_daily a
|
|
from ctop_bytedance_report_material_daily a
|
|
- left join (select * from ctop_user_allocation group by account_id) b on a.account_id = b.account_id
|
|
|
|
|
|
+ left join ctop_user_allocation b on a.account_id = b.account_id
|
|
left join user_company c on b.user_id = c.user_id
|
|
left join user_company c on b.user_id = c.user_id
|
|
- left join (select * from ctop_bytedance_video_info group by material_id) d on a.material_id = d.material_id
|
|
|
|
- left join (select code,url,material_name from ctop_material_info group by code) e on d.signature = e.code
|
|
|
|
- where c.company_id = #{companyId} -- '6608ed13c0dd42de93c790dbdf124234'
|
|
|
|
- and a.image_mode in ('CREATIVE_IMAGE_MODE_VIDEO',
|
|
|
|
- 'CREATIVE_IMAGE_MODE_VIDEO_VERTICAL')
|
|
|
|
- and date_format(stat_datetime,'%Y-%m-%d') >= #{startDate}
|
|
|
|
- and date_format(stat_datetime,'%Y-%m-%d') <= #{endDate}
|
|
|
|
|
|
+ left join (select signature,video_url,material_id from ctop_bytedance_video_info group by material_id) d on a.material_id = d.material_id
|
|
|
|
+ where c.company_id = #{companyId}
|
|
|
|
+ and stat_datetime >= #{startDate}
|
|
|
|
+ and stat_datetime <= #{endDate}
|
|
<if test="accountId != null">
|
|
<if test="accountId != null">
|
|
and a.account_id = #{accountId}
|
|
and a.account_id = #{accountId}
|
|
</if>
|
|
</if>
|