import WidthEllipsis from "@/components/widthEllipsis" import { Badge, Progress, Space, Statistic, Tag } from "antd" import React from "react" import { ADGROUP_STATUS, BID_MODE_ENUM, MARKETING_GOAL_ENUM, MARKETING_TARGET_TYPE_ENUM, OPTIMIZATIONGOAL_ENUM, PRODUCT_TYPE_ENUM, SMART_BID_TYPE_ENUM } from "../../../const" import SwitchStatus from "./switchStatus" import CreativePreview from "../../../components/CreativePreview" import TimeSeriesLook from "@/pages/iaaData/components/TimeSeriesLook" import { AUTO_ACQUISTION_STATUS } from "./const" function columns12(dayHandle: (data: any) => void, onChange?: () => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[], bcColor?: string }[] { return [ { label: '广告基本信息', data: [ { title: '广告账号', dataIndex: 'accountId', label: '广告基本信息', align: 'center', width: 80, default: 2, render: (a: string) => () }, { title: '腾讯备注', dataIndex: 'memo', label: '广告基本信息', width: 80, default: 3, render: (a: string) => () }, { title: '本地备注', dataIndex: 'remark', label: '广告基本信息', width: 80, default: 4, render: (a: string) => () }, { title: '业务类型', dataIndex: 'productType', label: '广告基本信息', align: 'center', width: 80, default: 5, render: (a: string) => () }, { title: '应用', dataIndex: 'appName', label: '广告基本信息', align: 'center', width: 100, default: 6, render: (a: string) => () }, { title: '小程序ID', dataIndex: 'mpId', label: '广告基本信息', align: 'center', width: 100, render: (a: string, b: any) => () }, { title: '广告ID', dataIndex: 'adgroupId', label: '广告基本信息', align: 'center', width: 80, default: 7, render: (a: string) => () }, { title: '统计日', dataIndex: 'day', label: '广告基本信息', width: 100, render: (a: string) => () }, { title: '公司ID', dataIndex: 'companyId', label: '广告基本信息', width: 100, render: (a: string) => () }, { title: '投手', dataIndex: 'pitcherName', label: '广告基本信息', align: 'center', width: 60, default: 8, render: (a: string) => () }, { title: '广告名称', dataIndex: 'adgroupName', label: '广告基本信息', align: 'center', width: 120, default: 9, render: (a: string) => () }, { title: '投放日期', dataIndex: 'beginDate', label: '广告基本信息', align: 'center', width: 180, default: 10, render: (a: string, b: any) => () }, { title: '投放时间', dataIndex: 'timeSeries', label: '广告基本信息', align: 'center', width: 180, default: 11, render: (a: string, b: any) => { if (b?.accountId === '总计') return '--'; return } }, { title: '首日开始投放时间', dataIndex: 'firstDayBeginTime', label: '广告基本信息', align: 'center', width: 70, default: 12, render: (a: string) => () }, { title: '出价', dataIndex: 'bidAmount', label: '广告基本信息', align: 'right', width: 140, default: 13, render: (a: string, b: { bidMode: string, optimizationGoal: string, accountId: any }) => { if (b?.accountId === '总计') return '--'; return `${b?.bidMode ? BID_MODE_ENUM[b?.bidMode as keyof typeof BID_MODE_ENUM] : ''} ${a}元/${b?.bidMode === 'BID_MODE_CPM' ? '千次曝光' : b?.bidMode === 'BID_MODE_CPC' ? '点击' : OPTIMIZATIONGOAL_ENUM[b?.optimizationGoal as keyof typeof OPTIMIZATIONGOAL_ENUM]}` } }, { title: '一键起量', dataIndex: 'autoAcquisitionEnabled', label: '广告基本信息', width: 200, default: 14, render: (a: boolean, b: any) => { if (b?.accountId === '总计') return '--'; return {a ? <> 开启 : 关闭} {b?.autoAcquisitionStatus &&
}
} }, { title: '深度优化出价', dataIndex: 'deepConversionWorthRate', label: '广告基本信息', align: 'center', width: 70, default: 15, render: (a: string, b: { accountId: any }) => { if (b?.accountId === '总计') return '--'; return } }, { title: '出价类型', dataIndex: 'smartBidType', label: '广告基本信息', align: 'center', width: 80, default: 16, render: (a: string, b: any) => { if (b?.accountId === '总计') return '--'; return SMART_BID_TYPE_ENUM[a as keyof typeof SMART_BID_TYPE_ENUM] } }, { title: '广告组日预算(元)', dataIndex: 'dailyBudget', label: '广告基本信息', align: 'right', width: 70, sorter: true, default: 17, render: (a: string, b: any) => { if (b?.accountId === '总计') return '--'; return } }, { title: '是否开启自动版位功能', dataIndex: 'automaticSiteEnabled', label: '广告基本信息', align: 'center', width: 80, default: 18, render: (a: string, b: any) => { if (b?.accountId === '总计') return '--'; return } }, { title: '定向条件描述', dataIndex: 'targetingTranslation', label: '广告基本信息', align: 'center', width: 120, render: (a: string) => () }, { title: '是否已删除', dataIndex: 'isDeleted', label: '广告基本信息', align: 'center', width: 60, default: 19, render: (a: any, b: any) => { if (b?.accountId === '总计') return '--'; return } }, { title: '广告状态', dataIndex: 'systemStatus', label: '广告基本信息', align: 'center', width: 100, default: 20, render: (a: string, b: any) => { if (b?.accountId === '总计') return '--'; return ADGROUP_STATUS[a as keyof typeof ADGROUP_STATUS] } }, { title: '营销目的', dataIndex: 'marketingGoal', label: '广告基本信息', align: 'center', width: 85, default: 21, render: (a: string) => () }, { title: '推广内容资产类型', dataIndex: 'marketingTargetType', label: '广告基本信息', align: 'center', width: 85, default: 22, render: (a: string) => () }, { title: '书名', dataIndex: 'bookName', label: '广告基本信息', align: 'center', width: 110, default: 23, render: (a: string) => () }, { title: '标记备注', dataIndex: 'tagRemark', label: '广告基本信息', align: 'center', width: 80, default: 24, render: (a: string) => () }, { title: '创意预览', dataIndex: 'dynamicCreativeVOList', label: '腾讯广告列表', width: 150, default: 33, render: (a: any, b: any) => { if (b?.accountId === '总计') { return '--' } if (a?.length) { let deliveryMode: string[] = [] let creativePreview = a?.map((item: { creativeComponents: any, deliveryMode: string }) => { deliveryMode.push(item.deliveryMode) return { ...item?.creativeComponents } }) return } return null } } ] }, { label: '广告消耗信息', data: [ { title: '消耗', dataIndex: 'cost', label: '广告消耗信息', align: 'center', width: 85, default: 25, sorter: true, className: 'padding_0', render: (a: number) =>
= 20000 ? { color: '#000', fontWeight: 500 } : { fontWeight: 500 }} />
}, { title: '曝光量', dataIndex: 'viewCount', label: '广告消耗信息', align: 'center', width: 70, default: 26, sorter: true, render: (a: string) => }, { title: '千次曝光成本', dataIndex: 'thousandDisplayPrice', label: '广告消耗信息', align: 'right', width: 65, default: 27, sorter: true, render: (a: string) => }, { title: '点击量', dataIndex: 'clickCount', label: '广告消耗信息', align: 'center', width: 70, default: 28, sorter: true, render: (a: string) => }, { title: '点击率', dataIndex: 'ctr', label: '广告消耗信息', align: 'center', width: 70, default: 29, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '点击均价', dataIndex: 'cpc', label: '广告消耗信息', align: 'center', width: 65, default: 30, sorter: true, render: (a: string) => }, { title: '不感兴趣点击次数', dataIndex: 'noInterestCount', label: '广告消耗信息', align: 'center', width: 65, default: 31, sorter: true, render: (a: string) => }, { title: '朋友圈视频播放次数', dataIndex: 'videoPlayCount', label: '广告消耗信息', align: 'center', width: 65, default: 32, sorter: true, render: (a: string) => }, ] }, { label: '广告转化信息', data: [ { title: '下载次数', dataIndex: 'downloadCount', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '安装次数', dataIndex: 'installCount', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '激活次数', dataIndex: 'activatedCount', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '公众号关注人数', dataIndex: 'followUv', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '公众号关注成本', dataIndex: 'followCost', label: '广告转化信息', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '公众号关注率', dataIndex: 'followRate', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '公众号关注次数', dataIndex: 'bizFollowCount', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '公众号关注次数成本', dataIndex: 'bizFollowCost', label: '广告转化信息', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '快应用添加次数', dataIndex: 'addDesktopPv', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '快应用添加成本', dataIndex: 'addDesktopCost', label: '广告转化信息', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '快应用添加率', dataIndex: 'addDesktopRate', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '加企业微信客服人数', dataIndex: 'scanFollowUserCount', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '加企业微信客服成本', dataIndex: 'scanFollowCost', label: '广告转化信息', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '加企业微信客服率', dataIndex: 'scanFollowRate', label: '广告转化信息', align: 'center', width: 80, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, ] }, { label: '商品转化', data: [ { title: '首日新增下单量', dataIndex: 'firstDayOrderCount', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '首日新增下单金额', dataIndex: 'firstDayOrderAmount', label: '商品转化', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '首日新增下单ROI', dataIndex: 'firstDayOrderRoi', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '订单量', dataIndex: 'orderCount', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '订单金额', dataIndex: 'orderAmount', label: '商品转化', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '下单成本', dataIndex: 'orderCost', label: '商品转化', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '下单率', dataIndex: 'orderRate', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '下单ROI', dataIndex: 'orderRoi', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '客单价', dataIndex: 'atv', label: '商品转化', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '转化量', dataIndex: 'conversionsCount', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '转化成本', dataIndex: 'conversionsCost', label: '商品转化', align: 'right', width: 80, sorter: true, render: (a: string) => }, { title: '深度转化', dataIndex: 'deepConversionsCount', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '转化率', dataIndex: 'conversionsRate', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '加粉数', dataIndex: 'addFansCount', label: '商品转化', align: 'center', width: 80, sorter: true, render: (a: string) => }, { title: '加粉成本', dataIndex: 'addFansCost', label: '商品转化', align: 'right', width: 80, sorter: true, render: (a: string) => }, ] }, { label: '其他业务(平台上报指标)', bcColor: '#f6ffed', data: [ { title: '激活首24小时广告变现ARPPU(平台上报)', dataIndex: 'firstDayAdPurArppuCost24hPla', label: '其他业务(平台上报指标)', width: 130, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活首24小时广告变现ROI(平台上报)', dataIndex: 'incomeRoi124hPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: number) => = 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '激活首24小时广告变现次数(平台上报)', dataIndex: 'incomePv24hPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活首日广告变现次数(平台上报)', dataIndex: 'incomePv1dPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活3日广告变现次数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive3dPv', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活7日广告变现次数(平台上报)', dataIndex: 'minigame7dIncomeCount', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '注册3日广告变现次数(平台上报)', dataIndex: 'minigame3dIncomeCount', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活首24小时广告变现金额(平台上报)', dataIndex: 'incomeVal24hPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '注册首日广告变现金额(平台上报)', dataIndex: 'miniGameFirstDayAdMonetizationAmount', label: '其他业务(平台上报指标)', width: 120, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '注册7日广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmountD7', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活14日广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmountD14', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmount', label: '其他业务(平台上报指标)', width: 100, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活首24小时广告变现人数(平台上报)', dataIndex: 'adPayingUsers24hPla', label: '其他业务(平台上报指标)', width: 115, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活首日广告变现人数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive1dPv', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => }, { title: '激活7日变现人数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive7dPv', label: '其他业务(平台上报指标)', width: 100, align: 'center', sorter: true, className: 'green2ColorClass', render: (a: string) => } ] }, { label: '其他业务(其他指标)', bcColor: '#fff2e8', data: [ { title: '激活首24小时广告变现ARPPU', dataIndex: 'firstDayAdPurArppuCost24h', label: '其他业务(其他指标)', width: 100, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活首日广告变现ARPPU', dataIndex: 'firstDayAdPurArppuCost', label: '其他业务(其他指标)', width: 90, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '广告变现ARPPU', dataIndex: 'adMonetizationArppu', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活首24小时广告变现ROI', dataIndex: 'incomeRoi124h', label: '其他业务(其他指标)', width: 90, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.8 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '激活首日广告变现ROI', dataIndex: 'incomeRoi1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.75 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '激活3日广告变现ROI', dataIndex: 'incomeRoi3', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.84 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '激活7日广告变现ROI', dataIndex: 'incomeRoi7', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '激活14日广告变现ROI', dataIndex: 'incomeRoi14', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '广告变现ROI', dataIndex: 'adMonetizationRoi', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '激活首日广告变现成本(人数)', dataIndex: 'adPayingCostD1', label: '其他业务(其他指标)', width: 100, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '广告变现成本', dataIndex: 'adMonetizationCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活3日广告变现次数', dataIndex: 'adMonetizationActive3dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活7日广告变现次数', dataIndex: 'adMonetizationActive7dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '广告变现次数(平台上报)', dataIndex: 'incomePvPla', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活首24小时广告变现金额', dataIndex: 'incomeVal24h', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活首日广告变现金额', dataIndex: 'incomeVal1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活3日广告变现金额', dataIndex: 'incomeVal3', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活7日广告变现金额', dataIndex: 'incomeVal7', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活14日广告变现金额', dataIndex: 'incomeVal14', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '广告变现人数', dataIndex: 'appAdPayingUsers', label: '其他业务(其他指标)', width: 90, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '广告变现金额', dataIndex: 'adMonetizationAmount', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活首24小时广告变现人数', dataIndex: 'adPayingUsers24h', label: '其他业务(其他指标)', width: 90, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活首日广告变现人数', dataIndex: 'adPayingUsersD1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活3日广告变现人数', dataIndex: 'adMonetizationDedupActive3dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '激活7日广告变现人数', dataIndex: 'adMonetizationDedupActive7dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '注册次数', dataIndex: 'regPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '注册人数', dataIndex: 'regDedupPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '注册成本', dataIndex: 'regCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '注册次数成本', dataIndex: 'regPvCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '注册率', dataIndex: 'regRate', label: '其他业务(其他指标)', width: 110, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '激活注册率', dataIndex: 'activateRegisterRate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '次日留存次数', dataIndex: 'retentionCount', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '次日留存人数', dataIndex: 'miniGameRetentionD1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '次日留存率', dataIndex: 'retentionRate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '次日留存成本', dataIndex: 'retentionCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => }, { title: '关键页面次日留存率', dataIndex: 'appKeyPageRetentionRate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '小游戏次日留存率', dataIndex: 'miniGameRetentionD1Rate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '小游戏次日留存成本', dataIndex: 'miniGameRetentionD1Cost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass', render: (a: string) => } ] }, { label: '小游戏(平台上报)', bcColor: '#f9f0ff', data: [ { title: '小游戏注册首日广告变现ARPU(平台上报)', dataIndex: 'miniGameFirstDayAdPayingArpu', label: '小游戏(平台上报)', width: 130, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏广告变现ARPU(平台上报)', dataIndex: 'miniGameAdMonetizationArpu', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏注册首日广告变现ROI(平台上报)', dataIndex: 'miniGame1dIncomeRoi', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '小游戏注册3日广告变现ROI(平台上报)', dataIndex: 'minigame3dIncomeRoi', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '小游戏注册7日广告变现ROI(平台上报)', dataIndex: 'minigame7dIncomeRoi', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '小游戏广告变现ROI(平台上报)', dataIndex: 'miniGameAdMonetizationRoi', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '小游戏注册首日广告变现成本(平台上报)', dataIndex: 'miniGameFirstDayAdPayingCost', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏广告变现成本(平台上报)', dataIndex: 'miniGameAdMonetizationCost', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏注册3日广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmountD3', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏注册首日广告变现人数(平台上报)', dataIndex: 'miniGameFirstDayAdMonetizationUsers', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏注册3日广告变现人数(平台上报)', dataIndex: 'minigame3dIncomeUv', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏注册7日广告变现人数(平台上报)', dataIndex: 'minigame7dIncomeUv', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '小游戏广告变现人数(平台上报)', dataIndex: 'miniGameAdMonetizationUsers', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '注册次数(平台上报)', dataIndex: 'regPlaPv', label: '小游戏(平台上报)', width: 90, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '注册人数(平台上报+广告主上报)', dataIndex: 'regAllDedupPv', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '注册成本(平台上报+广告主上报)', dataIndex: 'regCostPla', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: string) => }, { title: '注册率(平台上报+广告主上报)', dataIndex: 'regClickRatePla', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass', render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, ] }, { label: 'App相关字段', data: [ { title: '回流率', dataIndex: 'miniGameRate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '回流次日留存人数', dataIndex: 'retentionPlaDedupPv', label: 'App相关字段', width: 80, align: 'center', sorter: true, render: (a: string) => }, { title: '回流次日留存率', dataIndex: 'retentionPlaDedupRate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '回流人数(平台上报)', dataIndex: 'miniGameBfUv', label: 'App相关字段', width: 80, align: 'center', sorter: true, render: (a: string) => }, { title: '回流成本(平台上报)', dataIndex: 'miniGameBfCost', label: 'App相关字段', width: 80, align: 'center', sorter: true, render: (a: string) => }, { title: '广告变现人数(平台上报)', dataIndex: 'adMonetizationPlaDedupPv', label: 'App相关字段', width: 90, align: 'center', sorter: true, render: (a: string) => }, { title: '回流广告变现金额(平台上报)', dataIndex: 'miniGameBfIncomeAmount', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: string) => }, { title: '回流首日广告变现金额(平台上报)', dataIndex: 'miniGameBfIncomeD1Amount', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: string) => }, { title: '回流广告变现人数(平台上报)', dataIndex: 'adMonetizationBkPlaDedupPv', label: 'App相关字段', width: 90, align: 'center', sorter: true, render: (a: string) => }, { title: '回流广告变现ROI(平台上报)', dataIndex: 'miniGameBfIncomePlaRoi', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '回流广告变现ARPU(平台上报)', dataIndex: 'miniGameBfIncomePlaArpu', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: string) => }, { title: '回流广告变现成本(平台上报)', dataIndex: 'adMonetizationBkPlaCost', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: string) => }, { title: '回流首日广告变现人数(平台上报)', dataIndex: 'adMonetizationBkPlaDedupActive1dPv', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: string) => }, { title: '回流首24小时广告变现金额(平台上报)', dataIndex: 'adMonetizationBkPlaActive24hAmount', label: 'App相关字段', width: 110, align: 'center', sorter: true, render: (a: string) => }, { title: '回流首24小时广告变现人数(平台上报)', dataIndex: 'adMonetizationBkPlaDedupActive24hPv', label: 'App相关字段', width: 110, align: 'center', sorter: true, render: (a: string) => }, { title: '回流首24小时广告变现ROI(平台上报)', dataIndex: 'adMonetizationBkPlaDedupActive24hRoi', label: 'App相关字段', width: 110, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '回流首24小时广告变现ARPU(平台上报)', dataIndex: 'adMonetizationBkPlaDedupActive24hArpu', label: 'App相关字段', width: 120, align: 'center', sorter: true, render: (a: string) => }, { title: '回流首24小时广告变现成本(平台上报)', dataIndex: 'adMonetizationBkPlaDedupActive24hCost', label: 'App相关字段', width: 110, align: 'center', sorter: true, render: (a: string) => }, { title: '回流3日广告变现金额(平台上报)', dataIndex: 'adMonetizationBkPlaActive3dAmount', label: 'App相关字段', width: 95, align: 'center', sorter: true, render: (a: string) => }, { title: '回流3日广告变现ROI(平台上报)', dataIndex: 'adMonetizationBkPlaActive3dRoi', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '回流7日广告变现金额(平台上报)', dataIndex: 'adMonetizationBkPlaActive7dAmount', label: 'App相关字段', width: 95, align: 'center', sorter: true, render: (a: string) => }, { title: '回流7日广告变现ROI(平台上报)', dataIndex: 'adMonetizationBkPlaActive7dRoi', label: 'App相关字段', width: 100, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '回流14日广告变现金额(平台上报)', dataIndex: 'adMonetizationBkPlaActive14dAmount', label: 'App相关字段', width: 95, align: 'center', sorter: true, render: (a: string) => }, { title: '回流14日广告变现ROI(平台上报)', dataIndex: 'adMonetizationBkPlaActive14dRoi', label: 'App相关字段', width: 110, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: 'APP下载激活率', dataIndex: 'activatedRate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: 'APP下载率', dataIndex: 'downloadRate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: 'APP下载成本', dataIndex: 'downloadCost', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: 'APP安装率', dataIndex: 'installRate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: 'APP安装成本', dataIndex: 'installCost', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: 'APP激活成本', dataIndex: 'activatedCost', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: 'APP点击激活率', dataIndex: 'clickActivatedRate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '次日留存率', dataIndex: 'retentionRate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '3日留存人数', dataIndex: 'appRetentionD3Uv', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: '3日留存成本(人数)', dataIndex: 'appRetentionD3Cost', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: '3日留存率(人数)', dataIndex: 'appRetentionD3Rate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '5日留存人数', dataIndex: 'appRetentionD5Uv', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: '5日留存成本(人数)', dataIndex: 'appRetentionD5Cost', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: '5日留存率(人数)', dataIndex: 'appRetentionD5Rate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }, { title: '7日留存人数', dataIndex: 'appRetentionD7Uv', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: '7日留存成本(人数)', dataIndex: 'appRetentionD7Cost', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: string) => }, { title: '7日留存率(人数)', dataIndex: 'appRetentionD7Rate', label: 'App相关字段', width: 70, align: 'center', sorter: true, render: (a: number) => = 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> } ] }, { label: '操作', data: [ { title: '操作', dataIndex: 'cz', label: '操作', align: 'center', width: 150, default: 34, render: (_: number, b: any) => { if (b?.accountId === '总计') return '--' return dayHandle(b)} style={{ fontSize: 12 }}>广告每日监控 { window.open(`https://ad.qq.com/atlas/${b?.accountId}/admanage/adgroup?tab=adgroup&query={%22operation_status%22:[%22CALCULATE_STATUS_EXCLUDE_DEL%22],%22system_status%22:[],%22search_name%22:%22${b.adgroupId}%22}`) }} style={{ fontSize: 12 }}>腾讯广告 } }, { title: '启停', dataIndex: 'configuredStatus', label: '操作', align: 'center', width: 45, default: 1, render: (a: string, b: any) => { if (b?.accountId === '总计') { return '--' } return } } ] } ] } export default columns12