PKG板块:按pkg/account可选呈现+pkg/account筛选+排序; 客户分类板块加排序; 数据改为pkg×account明细
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# 每小时被平台执行;UTC+8 过11点且当天未更新则补跑,查询 T-1(前一天)。
|
||||
# 产出 data.json:
|
||||
# overall/cn/international : 每天一行,持续叠加
|
||||
# pkg_midas / pkg_ms : 每个pkg按天的revenue,保留14天(前端算DoD)
|
||||
# pkg_midas / pkg_ms : {dt:{pkg:{account:rev}}} 保留14天(前端按模式聚合/算DoD)
|
||||
# cust_daily / cust_detail : 客户分类,保留14天
|
||||
# ============================================================
|
||||
set -euo pipefail
|
||||
@@ -180,17 +180,18 @@ print(f' superset T-1行={len(sup_prev)} (全部{len(sup)}) ; report行={len(re
|
||||
|
||||
# ---- 汇总:无_API account revenue (来自Superset attr_platform) ----
|
||||
sup_acc_rev=defaultdict(float) # account(小写) -> rev
|
||||
sup_pkg_rev=defaultdict(float) # pkg -> rev (Midas)
|
||||
sup_pkg_acc=defaultdict(lambda:defaultdict(float)) # pkg -> {account -> rev} (Midas, account=attr_platform)
|
||||
for r in sup_prev:
|
||||
acc=norm(r.get('attr_platform'))
|
||||
rev=float(r.get('revenue(还原前)') or 0)
|
||||
sup_acc_rev[acc]+=rev
|
||||
pkg=r.get('pkg name(EN)') or ''
|
||||
sup_pkg_rev[pkg]+=rev
|
||||
if rev:
|
||||
sup_pkg_acc[pkg][r.get('attr_platform') or acc]+=rev
|
||||
|
||||
# ---- 汇总:带_API account revenue (来自report, 按account_id映射, 排除18) ----
|
||||
rep_acc_rev=defaultdict(float) # _API名(小写) -> rev
|
||||
rep_pkg_rev=defaultdict(float) # pkg -> rev (MS, 排除account18)
|
||||
rep_pkg_acc=defaultdict(lambda:defaultdict(float)) # pkg -> {account -> rev} (MS, 排除account18)
|
||||
for r in rep:
|
||||
aid=r.get('advertiser_account_id')
|
||||
rev=float(r.get('revenues') or 0)
|
||||
@@ -200,7 +201,9 @@ for r in rep:
|
||||
if name:
|
||||
rep_acc_rev[norm(name)]+=rev
|
||||
pkg=r.get('package_name') or ''
|
||||
rep_pkg_rev[pkg]+=rev
|
||||
disp = name if name else ('acct_%s'%aid)
|
||||
if rev:
|
||||
rep_pkg_acc[pkg][disp]+=rev
|
||||
|
||||
# 统一取某 account 收入:无_API走superset,带_API走report
|
||||
def acc_rev(acc):
|
||||
@@ -225,9 +228,9 @@ intl_row['DSP international']=round(intl_total,2)
|
||||
overall_row={'dt':PREV_DATE,'DSP total revenue':round(cn_total+intl_total,2),
|
||||
'DSP CN revenue':round(cn_total,2),'DSP international':round(intl_total,2)}
|
||||
|
||||
# ============ 2.1 PKG-Midas / 2.2 PKG-MS (当天pkg->rev) ============
|
||||
pkg_midas={pkg:round(v,4) for pkg,v in sup_pkg_rev.items() if v} # Midas: superset
|
||||
pkg_ms={pkg:round(v,4) for pkg,v in rep_pkg_rev.items() if v} # MS: report(已排除18)
|
||||
# ============ 2.1 PKG-Midas / 2.2 PKG-MS (当天 pkg -> {account: rev}) ============
|
||||
pkg_midas={pkg:{a:round(v,4) for a,v in accs.items() if v} for pkg,accs in sup_pkg_acc.items() if accs}
|
||||
pkg_ms={pkg:{a:round(v,4) for a,v in accs.items() if v} for pkg,accs in rep_pkg_acc.items() if accs}
|
||||
|
||||
# ============ 3.x 客户分类 (当天) ============
|
||||
# 每个 account 的 T-1 收入
|
||||
|
||||
Reference in New Issue
Block a user