From f07c8726113b2e1ba10670580609d7325332a225 Mon Sep 17 00:00:00 2001 From: FANGKK Date: Thu, 10 Sep 2026 17:41:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=85=A8=E8=B4=A6=E6=88=B7?= =?UTF-8?q?=209=20=E4=B8=AA=E5=8C=85=EF=BC=9A=E6=95=B0=E6=8D=AE=E6=9D=A5?= =?UTF-8?q?=E8=87=AA=20tecdo=5F=E6=95=B0=E6=8D=AE.xlsx=20=E5=92=8C=20?= =?UTF-8?q?=E9=92=9B=E5=8A=A8=E9=A2=84=E4=BB=98=E6=AC=BE.xlsx=EF=BC=8C?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E6=8C=89=E5=88=B0=E8=B4=A6=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 --- .gitignore | 2 +- data.json | 1627 +++++++++++++++++++++++++++++++++++++++++++++++++-- index.html | 415 ++++++++----- manual.json | 8 - 4 files changed, 1842 insertions(+), 210 deletions(-) delete mode 100644 manual.json diff --git a/.gitignore b/.gitignore index 8412632..68a9926 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ push.sh -fetch_midas.js +build_data.py .DS_Store diff --git a/data.json b/data.json index 187a4c8..e37d399 100644 --- a/data.json +++ b/data.json @@ -1,42 +1,1589 @@ { - "updated_at": "2026-09-10T17:14:00+08:00", - "source": "data_report/list,按日期+订单", - "account": { "id": 11535, "name": "C00000196_TECDO HONG KONG LIMITED" }, - "range": { "start": "2026-09-03", "end": "2026-09-09" }, - "campaigns": [ - { - "id": "3202606240007", - "name": "[Pending]PendingC00000196_Tecdo_Agc_ArionPlay_APK_PH_CPI_MIX_20260624", - "app": "ArionPlay", - "start": "2026-06-24", - "bid": 0.65, - "daily_budget": 150, - "lifetime_spend": 3770 - }, - { - "id": "3202608110004", - "name": "C00000196_Tecdo_Agc_PTGaming_APK_PH_CPI_MIX_20260811", - "app": "PTGaming", - "start": "2026-08-11", - "bid": 0.65, - "daily_budget": 50, - "lifetime_spend": 5.2 - } - ], - "daily": [ - { "dt": "2026-09-03", "campaign_id": "3202606240007", "spend": 40.95, "installs": 63, "clicks": 28436, "ecpi": 0.65 }, - { "dt": "2026-09-03", "campaign_id": "3202608110004", "spend": 0, "installs": 0, "clicks": 6123, "ecpi": 0 }, - { "dt": "2026-09-04", "campaign_id": "3202606240007", "spend": 46.8, "installs": 72, "clicks": 30193, "ecpi": 0.65 }, - { "dt": "2026-09-04", "campaign_id": "3202608110004", "spend": 0, "installs": 0, "clicks": 8263, "ecpi": 0 }, - { "dt": "2026-09-05", "campaign_id": "3202606240007", "spend": 45.5, "installs": 70, "clicks": 29587, "ecpi": 0.65 }, - { "dt": "2026-09-05", "campaign_id": "3202608110004", "spend": 0, "installs": 0, "clicks": 6176, "ecpi": 0 }, - { "dt": "2026-09-06", "campaign_id": "3202606240007", "spend": 46.8, "installs": 72, "clicks": 30822, "ecpi": 0.65 }, - { "dt": "2026-09-06", "campaign_id": "3202608110004", "spend": 0, "installs": 0, "clicks": 7574, "ecpi": 0 }, - { "dt": "2026-09-07", "campaign_id": "3202606240007", "spend": 42.25, "installs": 65, "clicks": 31475, "ecpi": 0.65 }, - { "dt": "2026-09-07", "campaign_id": "3202608110004", "spend": 0, "installs": 0, "clicks": 8234, "ecpi": 0 }, - { "dt": "2026-09-08", "campaign_id": "3202606240007", "spend": 40.3, "installs": 62, "clicks": 28810, "ecpi": 0.65 }, - { "dt": "2026-09-08", "campaign_id": "3202608110004", "spend": 0, "installs": 0, "clicks": 3481, "ecpi": 0 }, - { "dt": "2026-09-09", "campaign_id": "3202606240007", "spend": 42.25, "installs": 65, "clicks": 27030, "ecpi": 0.65 }, - { "dt": "2026-09-09", "campaign_id": "3202608110004", "spend": 0, "installs": 0, "clicks": 4208, "ecpi": 0 } - ] + "updated_at": "2026-09-10T17:24+08:00", + "source": "tecdo_数据.xlsx(分天)+ 钛动预付款.xlsx", + "range": { + "start": "2026-06-17", + "end": "2026-09-08" + }, + "daily": [ + { + "dt": "2026-06-17", + "pkg": "com.ic.sv777_81", + "installs": 3, + "reg": 2, + "ftd": 0, + "spend": 1.2 + }, + { + "dt": "2026-06-17", + "pkg": "com.shiluoshazhou.uasdfjasf", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-06-18", + "pkg": "com.ic.sv777_81", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-06-18", + "pkg": "com.shiluoshazhou.uasdfjasf", + "installs": 2, + "reg": 0, + "ftd": 0, + "spend": 0.8 + }, + { + "dt": "2026-06-19", + "pkg": "com.ic.sv777_81", + "installs": 8, + "reg": 8, + "ftd": 0, + "spend": 3.2 + }, + { + "dt": "2026-06-19", + "pkg": "com.shiluoshazhou.uasdfjasf", + "installs": 1, + "reg": 0, + "ftd": 0, + "spend": 0.4 + }, + { + "dt": "2026-06-20", + "pkg": "com.ic.sv777_81", + "installs": 9, + "reg": 6, + "ftd": 0, + "spend": 3.6 + }, + { + "dt": "2026-06-20", + "pkg": "com.shiluoshazhou.uasdfjasf", + "installs": 3, + "reg": 0, + "ftd": 0, + "spend": 1.2 + }, + { + "dt": "2026-06-21", + "pkg": "com.ic.sv777_81", + "installs": 5, + "reg": 5, + "ftd": 1, + "spend": 2 + }, + { + "dt": "2026-06-21", + "pkg": "com.shiluoshazhou.uasdfjasf", + "installs": 3, + "reg": 0, + "ftd": 0, + "spend": 1.2 + }, + { + "dt": "2026-06-22", + "pkg": "com.ic.sv777_81", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-06-22", + "pkg": "com.shiluoshazhou.uasdfjasf", + "installs": 2, + "reg": 0, + "ftd": 0, + "spend": 0.8 + }, + { + "dt": "2026-06-23", + "pkg": "com.ic.sv777_81", + "installs": 1, + "reg": 1, + "ftd": 0, + "spend": 0.4 + }, + { + "dt": "2026-06-23", + "pkg": "com.shiluoshazhou.uasdfjasf", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-06-24", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-06-25", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-06-28", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 8, + "reg": 0, + "ftd": 0, + "spend": 5.2 + }, + { + "dt": "2026-06-29", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 16, + "reg": 0, + "ftd": 2, + "spend": 10.4 + }, + { + "dt": "2026-06-30", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 86, + "reg": 4, + "ftd": 17, + "spend": 55.9 + }, + { + "dt": "2026-07-01", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 86, + "reg": 3, + "ftd": 13, + "spend": 55.9 + }, + { + "dt": "2026-07-02", + "pkg": "com.f111.kk222", + "installs": 45, + "reg": 3, + "ftd": 0, + "spend": 27 + }, + { + "dt": "2026-07-02", + "pkg": "com.ic.ek77_85", + "installs": 33, + "reg": 10, + "ftd": 0, + "spend": 16.5 + }, + { + "dt": "2026-07-02", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 96, + "reg": 7, + "ftd": 15, + "spend": 62.4 + }, + { + "dt": "2026-07-03", + "pkg": "com.f111.kk222", + "installs": 115, + "reg": 18, + "ftd": 2, + "spend": 69 + }, + { + "dt": "2026-07-03", + "pkg": "com.ic.ek77_85", + "installs": 91, + "reg": 35, + "ftd": 4, + "spend": 45.5 + }, + { + "dt": "2026-07-03", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 79, + "reg": 1, + "ftd": 10, + "spend": 51.35 + }, + { + "dt": "2026-07-04", + "pkg": "com.f111.kk222", + "installs": 111, + "reg": 21, + "ftd": 2, + "spend": 66.6 + }, + { + "dt": "2026-07-04", + "pkg": "com.ic.ek77_85", + "installs": 60, + "reg": 18, + "ftd": 5, + "spend": 30 + }, + { + "dt": "2026-07-04", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 80, + "reg": 2, + "ftd": 9, + "spend": 52 + }, + { + "dt": "2026-07-05", + "pkg": "com.f111.kk222", + "installs": 110, + "reg": 11, + "ftd": 3, + "spend": 66 + }, + { + "dt": "2026-07-05", + "pkg": "com.ic.ek77_85", + "installs": 53, + "reg": 20, + "ftd": 2, + "spend": 26.5 + }, + { + "dt": "2026-07-05", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 66, + "reg": 2, + "ftd": 3, + "spend": 42.9 + }, + { + "dt": "2026-07-06", + "pkg": "com.f111.kk222", + "installs": 60, + "reg": 12, + "ftd": 1, + "spend": 36 + }, + { + "dt": "2026-07-06", + "pkg": "com.ic.ek77_85", + "installs": 94, + "reg": 37, + "ftd": 6, + "spend": 47 + }, + { + "dt": "2026-07-06", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 62, + "reg": 3, + "ftd": 6, + "spend": 40.3 + }, + { + "dt": "2026-07-07", + "pkg": "com.ic.ek77_85", + "installs": 161, + "reg": 85, + "ftd": 9, + "spend": 80.5 + }, + { + "dt": "2026-07-07", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 71, + "reg": 2, + "ftd": 10, + "spend": 46.15 + }, + { + "dt": "2026-07-08", + "pkg": "com.ic.ek77_85", + "installs": 148, + "reg": 80, + "ftd": 16, + "spend": 74 + }, + { + "dt": "2026-07-08", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 69, + "reg": 1, + "ftd": 7, + "spend": 44.85 + }, + { + "dt": "2026-07-09", + "pkg": "com.ic.ek77_85", + "installs": 138, + "reg": 75, + "ftd": 10, + "spend": 69 + }, + { + "dt": "2026-07-09", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 77, + "reg": 5, + "ftd": 10, + "spend": 50.05 + }, + { + "dt": "2026-07-10", + "pkg": "com.ic.ek77_85", + "installs": 135, + "reg": 78, + "ftd": 11, + "spend": 67.5 + }, + { + "dt": "2026-07-10", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 87, + "reg": 2, + "ftd": 8, + "spend": 56.55 + }, + { + "dt": "2026-07-11", + "pkg": "com.ic.ek77_85", + "installs": 152, + "reg": 84, + "ftd": 13, + "spend": 76 + }, + { + "dt": "2026-07-11", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 86, + "reg": 5, + "ftd": 12, + "spend": 55.9 + }, + { + "dt": "2026-07-12", + "pkg": "com.ic.ek77_85", + "installs": 153, + "reg": 90, + "ftd": 14, + "spend": 76.5 + }, + { + "dt": "2026-07-12", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 73, + "reg": 2, + "ftd": 4, + "spend": 47.45 + }, + { + "dt": "2026-07-13", + "pkg": "com.f111.kk444", + "installs": 4, + "reg": 0, + "ftd": 0, + "spend": 2.4 + }, + { + "dt": "2026-07-13", + "pkg": "com.ic.ek77_85", + "installs": 5, + "reg": 6, + "ftd": 2, + "spend": 2.5 + }, + { + "dt": "2026-07-13", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 60, + "reg": 1, + "ftd": 2, + "spend": 39 + }, + { + "dt": "2026-07-14", + "pkg": "com.f111.kk444", + "installs": 129, + "reg": 0, + "ftd": 2, + "spend": 77.4 + }, + { + "dt": "2026-07-14", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 60, + "reg": 0, + "ftd": 5, + "spend": 39 + }, + { + "dt": "2026-07-15", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 69, + "reg": 2, + "ftd": 6, + "spend": 44.85 + }, + { + "dt": "2026-07-16", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 85, + "reg": 5, + "ftd": 16, + "spend": 55.25 + }, + { + "dt": "2026-07-17", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 51, + "reg": 5, + "ftd": 13, + "spend": 33.15 + }, + { + "dt": "2026-07-18", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 65, + "reg": 6, + "ftd": 22, + "spend": 42.25 + }, + { + "dt": "2026-07-19", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 61, + "reg": 7, + "ftd": 19, + "spend": 39.65 + }, + { + "dt": "2026-07-20", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 68, + "reg": 3, + "ftd": 20, + "spend": 44.2 + }, + { + "dt": "2026-07-21", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 76, + "reg": 10, + "ftd": 18, + "spend": 49.4 + }, + { + "dt": "2026-07-22", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 76, + "reg": 17, + "ftd": 27, + "spend": 49.4 + }, + { + "dt": "2026-07-23", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 55, + "reg": 6, + "ftd": 18, + "spend": 35.75 + }, + { + "dt": "2026-07-24", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 63, + "reg": 7, + "ftd": 16, + "spend": 40.95 + }, + { + "dt": "2026-07-25", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 79, + "reg": 14, + "ftd": 28, + "spend": 51.35 + }, + { + "dt": "2026-07-26", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 70, + "reg": 12, + "ftd": 31, + "spend": 45.5 + }, + { + "dt": "2026-07-27", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 54, + "reg": 7, + "ftd": 18, + "spend": 35.1 + }, + { + "dt": "2026-07-28", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 46, + "reg": 7, + "ftd": 17, + "spend": 29.9 + }, + { + "dt": "2026-07-29", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 64, + "reg": 8, + "ftd": 25, + "spend": 41.6 + }, + { + "dt": "2026-07-30", + "pkg": "com.ic.ek77_85", + "installs": 16, + "reg": 6, + "ftd": 0, + "spend": 8 + }, + { + "dt": "2026-07-30", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 82, + "reg": 9, + "ftd": 22, + "spend": 53.3 + }, + { + "dt": "2026-07-31", + "pkg": "com.ic.ek77_85", + "installs": 1, + "reg": 0, + "ftd": 0, + "spend": 0.5 + }, + { + "dt": "2026-07-31", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 109, + "reg": 8, + "ftd": 28, + "spend": 70.85 + }, + { + "dt": "2026-08-01", + "pkg": "com.ic.ek77_85", + "installs": 1, + "reg": 0, + "ftd": 0, + "spend": 0.5 + }, + { + "dt": "2026-08-01", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 98, + "reg": 9, + "ftd": 25, + "spend": 63.7 + }, + { + "dt": "2026-08-02", + "pkg": "com.ic.ek77_85", + "installs": 4, + "reg": 0, + "ftd": 0, + "spend": 2 + }, + { + "dt": "2026-08-02", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 73, + "reg": 12, + "ftd": 30, + "spend": 47.45 + }, + { + "dt": "2026-08-03", + "pkg": "com.ic.ek77_85", + "installs": 3, + "reg": 0, + "ftd": 0, + "spend": 1.5 + }, + { + "dt": "2026-08-03", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 113, + "reg": 13, + "ftd": 36, + "spend": 73.45 + }, + { + "dt": "2026-08-04", + "pkg": "com.ic.ek77_85", + "installs": 9, + "reg": 3, + "ftd": 0, + "spend": 4.5 + }, + { + "dt": "2026-08-04", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 82, + "reg": 5, + "ftd": 26, + "spend": 53.3 + }, + { + "dt": "2026-08-05", + "pkg": "com.ic.ek77_85", + "installs": 44, + "reg": 26, + "ftd": 4, + "spend": 22 + }, + { + "dt": "2026-08-05", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 116, + "reg": 8, + "ftd": 32, + "spend": 75.4 + }, + { + "dt": "2026-08-06", + "pkg": "com.ic.ek77_85", + "installs": 20, + "reg": 10, + "ftd": 0, + "spend": 10 + }, + { + "dt": "2026-08-06", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 134, + "reg": 13, + "ftd": 37, + "spend": 87.1 + }, + { + "dt": "2026-08-07", + "pkg": "com.ic.ek77_85", + "installs": 42, + "reg": 22, + "ftd": 2, + "spend": 21 + }, + { + "dt": "2026-08-07", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 129, + "reg": 21, + "ftd": 36, + "spend": 83.85 + }, + { + "dt": "2026-08-08", + "pkg": "com.ic.ek77_85", + "installs": 22, + "reg": 12, + "ftd": 1, + "spend": 11 + }, + { + "dt": "2026-08-08", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 121, + "reg": 11, + "ftd": 28, + "spend": 78.65 + }, + { + "dt": "2026-08-09", + "pkg": "com.ic.ek77_85", + "installs": 42, + "reg": 23, + "ftd": 0, + "spend": 21 + }, + { + "dt": "2026-08-09", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 110, + "reg": 13, + "ftd": 27, + "spend": 71.5 + }, + { + "dt": "2026-08-10", + "pkg": "com.ic.ek77_85", + "installs": 23, + "reg": 12, + "ftd": 2, + "spend": 11.5 + }, + { + "dt": "2026-08-10", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 64, + "reg": 8, + "ftd": 19, + "spend": 41.6 + }, + { + "dt": "2026-08-10", + "pkg": "com.yogame.com", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-11", + "pkg": "com.ic.ek77_85", + "installs": 38, + "reg": 23, + "ftd": 1, + "spend": 19 + }, + { + "dt": "2026-08-11", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 68, + "reg": 10, + "ftd": 13, + "spend": 44.2 + }, + { + "dt": "2026-08-11", + "pkg": "com.yogame.com", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-12", + "pkg": "com.ic.ek77_85", + "installs": 38, + "reg": 27, + "ftd": 4, + "spend": 19 + }, + { + "dt": "2026-08-12", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 72, + "reg": 10, + "ftd": 16, + "spend": 46.8 + }, + { + "dt": "2026-08-12", + "pkg": "com.yogame.com", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-13", + "pkg": "com.ic.ek77_85", + "installs": 49, + "reg": 36, + "ftd": 4, + "spend": 24.5 + }, + { + "dt": "2026-08-13", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-13", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 83, + "reg": 9, + "ftd": 21, + "spend": 53.95 + }, + { + "dt": "2026-08-13", + "pkg": "com.yogame.com", + "installs": 27, + "reg": 7, + "ftd": 1, + "spend": 13.5 + }, + { + "dt": "2026-08-14", + "pkg": "com.ic.ek77_85", + "installs": 73, + "reg": 51, + "ftd": 5, + "spend": 36.5 + }, + { + "dt": "2026-08-14", + "pkg": "com.playmate.playzone", + "installs": 2, + "reg": 2, + "ftd": 0, + "spend": 1.3 + }, + { + "dt": "2026-08-14", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 58, + "reg": 9, + "ftd": 15, + "spend": 37.7 + }, + { + "dt": "2026-08-14", + "pkg": "com.yogame.com", + "installs": 41, + "reg": 12, + "ftd": 3, + "spend": 20.5 + }, + { + "dt": "2026-08-15", + "pkg": "com.ic.ek77_85", + "installs": 60, + "reg": 48, + "ftd": 1, + "spend": 30 + }, + { + "dt": "2026-08-15", + "pkg": "com.playmate.playzone", + "installs": 1, + "reg": 0, + "ftd": 0, + "spend": 0.65 + }, + { + "dt": "2026-08-15", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 59, + "reg": 13, + "ftd": 15, + "spend": 38.35 + }, + { + "dt": "2026-08-15", + "pkg": "com.yogame.com", + "installs": 18, + "reg": 5, + "ftd": 3, + "spend": 9 + }, + { + "dt": "2026-08-16", + "pkg": "com.ic.ek77_85", + "installs": 83, + "reg": 56, + "ftd": 6, + "spend": 41.5 + }, + { + "dt": "2026-08-16", + "pkg": "com.playmate.playzone", + "installs": 1, + "reg": 1, + "ftd": 1, + "spend": 0.65 + }, + { + "dt": "2026-08-16", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 56, + "reg": 6, + "ftd": 17, + "spend": 36.4 + }, + { + "dt": "2026-08-16", + "pkg": "com.yogame.com", + "installs": 75, + "reg": 21, + "ftd": 1, + "spend": 37.5 + }, + { + "dt": "2026-08-17", + "pkg": "com.ic.ek77_85", + "installs": 74, + "reg": 50, + "ftd": 7, + "spend": 37 + }, + { + "dt": "2026-08-17", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 1, + "spend": 0 + }, + { + "dt": "2026-08-17", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 93, + "reg": 12, + "ftd": 25, + "spend": 60.45 + }, + { + "dt": "2026-08-17", + "pkg": "com.yogame.com", + "installs": 97, + "reg": 28, + "ftd": 3, + "spend": 48.5 + }, + { + "dt": "2026-08-18", + "pkg": "com.ic.ek77_85", + "installs": 90, + "reg": 54, + "ftd": 3, + "spend": 45 + }, + { + "dt": "2026-08-18", + "pkg": "com.playmate.playzone", + "installs": 1, + "reg": 1, + "ftd": 0, + "spend": 0.65 + }, + { + "dt": "2026-08-18", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 110, + "reg": 7, + "ftd": 21, + "spend": 71.5 + }, + { + "dt": "2026-08-18", + "pkg": "com.yogame.com", + "installs": 95, + "reg": 26, + "ftd": 7, + "spend": 47.5 + }, + { + "dt": "2026-08-19", + "pkg": "com.ic.ek77_85", + "installs": 72, + "reg": 45, + "ftd": 4, + "spend": 36 + }, + { + "dt": "2026-08-19", + "pkg": "com.playmate.playzone", + "installs": 1, + "reg": 1, + "ftd": 1, + "spend": 0.65 + }, + { + "dt": "2026-08-19", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 96, + "reg": 16, + "ftd": 28, + "spend": 62.4 + }, + { + "dt": "2026-08-19", + "pkg": "com.yogame.com", + "installs": 96, + "reg": 34, + "ftd": 5, + "spend": 48 + }, + { + "dt": "2026-08-20", + "pkg": "com.ic.ek77_85", + "installs": 44, + "reg": 25, + "ftd": 4, + "spend": 22 + }, + { + "dt": "2026-08-20", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-20", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 111, + "reg": 9, + "ftd": 31, + "spend": 72.15 + }, + { + "dt": "2026-08-20", + "pkg": "com.yogame.com", + "installs": 100, + "reg": 31, + "ftd": 9, + "spend": 50 + }, + { + "dt": "2026-08-21", + "pkg": "com.ic.ek77_85", + "installs": 102, + "reg": 71, + "ftd": 7, + "spend": 51 + }, + { + "dt": "2026-08-21", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-21", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 110, + "reg": 11, + "ftd": 35, + "spend": 71.5 + }, + { + "dt": "2026-08-21", + "pkg": "com.yogame.com", + "installs": 192, + "reg": 51, + "ftd": 12, + "spend": 96 + }, + { + "dt": "2026-08-22", + "pkg": "com.ic.ek77_85", + "installs": 123, + "reg": 92, + "ftd": 12, + "spend": 61.5 + }, + { + "dt": "2026-08-22", + "pkg": "com.playmate.playzone", + "installs": 1, + "reg": 0, + "ftd": 0, + "spend": 0.65 + }, + { + "dt": "2026-08-22", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 131, + "reg": 19, + "ftd": 23, + "spend": 85.15 + }, + { + "dt": "2026-08-22", + "pkg": "com.yogame.com", + "installs": 195, + "reg": 74, + "ftd": 15, + "spend": 97.5 + }, + { + "dt": "2026-08-23", + "pkg": "com.ic.ek77_85", + "installs": 116, + "reg": 83, + "ftd": 9, + "spend": 58 + }, + { + "dt": "2026-08-23", + "pkg": "com.playmate.playzone", + "installs": 1, + "reg": 0, + "ftd": 0, + "spend": 0.65 + }, + { + "dt": "2026-08-23", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 124, + "reg": 13, + "ftd": 34, + "spend": 80.6 + }, + { + "dt": "2026-08-23", + "pkg": "com.yogame.com", + "installs": 197, + "reg": 52, + "ftd": 14, + "spend": 98.5 + }, + { + "dt": "2026-08-24", + "pkg": "com.ic.ek77_85", + "installs": 146, + "reg": 111, + "ftd": 11, + "spend": 73 + }, + { + "dt": "2026-08-24", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-24", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 94, + "reg": 7, + "ftd": 28, + "spend": 61.1 + }, + { + "dt": "2026-08-24", + "pkg": "com.yogame.com", + "installs": 184, + "reg": 47, + "ftd": 7, + "spend": 92 + }, + { + "dt": "2026-08-25", + "pkg": "com.ic.ek77_85", + "installs": 89, + "reg": 58, + "ftd": 5, + "spend": 44.5 + }, + { + "dt": "2026-08-25", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-25", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 107, + "reg": 14, + "ftd": 36, + "spend": 69.55 + }, + { + "dt": "2026-08-25", + "pkg": "com.yogame.com", + "installs": 214, + "reg": 57, + "ftd": 6, + "spend": 107 + }, + { + "dt": "2026-08-26", + "pkg": "com.ic.ek77_85", + "installs": 96, + "reg": 63, + "ftd": 7, + "spend": 48 + }, + { + "dt": "2026-08-26", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-26", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 96, + "reg": 8, + "ftd": 32, + "spend": 62.4 + }, + { + "dt": "2026-08-26", + "pkg": "com.yogame.com", + "installs": 35, + "reg": 12, + "ftd": 5, + "spend": 17.5 + }, + { + "dt": "2026-08-27", + "pkg": "com.ic.ek77_85", + "installs": 71, + "reg": 45, + "ftd": 6, + "spend": 35.5 + }, + { + "dt": "2026-08-27", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-27", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 71, + "reg": 6, + "ftd": 18, + "spend": 46.15 + }, + { + "dt": "2026-08-28", + "pkg": "com.ic.ek77_85", + "installs": 97, + "reg": 59, + "ftd": 10, + "spend": 48.5 + }, + { + "dt": "2026-08-28", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-28", + "pkg": "com.rkgg.com2", + "installs": 3, + "reg": 1, + "ftd": 0, + "spend": 2.4 + }, + { + "dt": "2026-08-28", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 58, + "reg": 11, + "ftd": 20, + "spend": 37.7 + }, + { + "dt": "2026-08-29", + "pkg": "com.ic.ek77_85", + "installs": 102, + "reg": 71, + "ftd": 12, + "spend": 51 + }, + { + "dt": "2026-08-29", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-29", + "pkg": "com.rkgg.com2", + "installs": 1, + "reg": 0, + "ftd": 0, + "spend": 0.8 + }, + { + "dt": "2026-08-29", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 82, + "reg": 7, + "ftd": 20, + "spend": 53.3 + }, + { + "dt": "2026-08-30", + "pkg": "com.ic.ek77_85", + "installs": 152, + "reg": 102, + "ftd": 13, + "spend": 76 + }, + { + "dt": "2026-08-30", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-30", + "pkg": "com.rkgg.com2", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-30", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 63, + "reg": 4, + "ftd": 13, + "spend": 40.95 + }, + { + "dt": "2026-08-31", + "pkg": "com.ic.ek77_85", + "installs": 125, + "reg": 89, + "ftd": 13, + "spend": 62.5 + }, + { + "dt": "2026-08-31", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-31", + "pkg": "com.rkgg.com2", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-08-31", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 61, + "reg": 6, + "ftd": 14, + "spend": 39.65 + }, + { + "dt": "2026-09-01", + "pkg": "com.ic.ek77_85", + "installs": 110, + "reg": 66, + "ftd": 7, + "spend": 55 + }, + { + "dt": "2026-09-01", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-01", + "pkg": "com.rkgg.com2", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-01", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 68, + "reg": 10, + "ftd": 4, + "spend": 44.2 + }, + { + "dt": "2026-09-02", + "pkg": "com.ic.ek77_85", + "installs": 120, + "reg": 65, + "ftd": 11, + "spend": 60 + }, + { + "dt": "2026-09-02", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-02", + "pkg": "com.rkgg.com2", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-02", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 62, + "reg": 4, + "ftd": 20, + "spend": 40.3 + }, + { + "dt": "2026-09-03", + "pkg": "com.ic.ek77_85", + "installs": 19, + "reg": 18, + "ftd": 8, + "spend": 9.5 + }, + { + "dt": "2026-09-03", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 1, + "ftd": 1, + "spend": 0 + }, + { + "dt": "2026-09-03", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 63, + "reg": 9, + "ftd": 18, + "spend": 40.95 + }, + { + "dt": "2026-09-04", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-04", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 72, + "reg": 5, + "ftd": 13, + "spend": 46.8 + }, + { + "dt": "2026-09-05", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-05", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 70, + "reg": 3, + "ftd": 16, + "spend": 45.5 + }, + { + "dt": "2026-09-06", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-06", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 72, + "reg": 7, + "ftd": 17, + "spend": 46.8 + }, + { + "dt": "2026-09-07", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-07", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 65, + "reg": 7, + "ftd": 16, + "spend": 42.25 + }, + { + "dt": "2026-09-08", + "pkg": "com.playmate.playzone", + "installs": 0, + "reg": 0, + "ftd": 0, + "spend": 0 + }, + { + "dt": "2026-09-08", + "pkg": "com.winaxis.arionplayandroidapp", + "installs": 62, + "reg": 6, + "ftd": 24, + "spend": 40.3 + } + ], + "recharges": [ + { + "date": "2026-06-12", + "paid": 1000, + "amount": 975 + }, + { + "date": "2026-07-14", + "paid": 1000, + "amount": 975 + }, + { + "date": "2026-07-22", + "paid": 3000, + "amount": 2975 + }, + { + "date": "2026-08-13", + "paid": 3000, + "amount": 2975 + }, + { + "date": "2026-08-27", + "paid": 3000, + "amount": 2975 + } + ] } diff --git a/index.html b/index.html index f4dd5ef..ce15256 100644 --- a/index.html +++ b/index.html @@ -10,21 +10,22 @@ color-scheme: light; --page: #f9f9f7; --surface: #fcfcfb; --ink: #0b0b0b; --ink-2: #52514e; --muted: #898781; --grid: #e1e0d9; --axis: #c3c2b7; --border: rgba(11,11,11,.10); - --s1: #2a78d6; --s2: #eb6834; --warn: #fab219; --crit: #d03b3b; + --s1: #2a78d6; --s2: #eb6834; --s3: #1baf7a; --s4: #eda100; --s5: #e87ba4; --other: #a3a29b; + --warn: #fab219; --crit: #d03b3b; } @media (prefers-color-scheme: dark) { :root:where(:not([data-theme="light"])) { color-scheme: dark; --page: #0d0d0d; --surface: #1a1a19; --ink: #ffffff; --ink-2: #c3c2b7; --muted: #898781; --grid: #2c2c2a; --axis: #383835; --border: rgba(255,255,255,.10); - --s1: #3987e5; --s2: #d95926; + --s1: #3987e5; --s2: #d95926; --s3: #199e70; --s4: #c98500; --s5: #d55181; --other: #6b6a65; } } :root[data-theme="dark"] { color-scheme: dark; --page: #0d0d0d; --surface: #1a1a19; --ink: #ffffff; --ink-2: #c3c2b7; --muted: #898781; --grid: #2c2c2a; --axis: #383835; --border: rgba(255,255,255,.10); - --s1: #3987e5; --s2: #d95926; + --s1: #3987e5; --s2: #d95926; --s3: #199e70; --s4: #c98500; --s5: #d55181; --other: #6b6a65; } * { box-sizing: border-box; } body { margin: 0; background: var(--page); color: var(--ink); font: 14px/1.5 system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; } @@ -39,7 +40,13 @@ h1 { font-size: 22px; font-weight: 600; margin: 0 0 4px; } .tile-sub { color: var(--muted); font-size: 12px; margin-top: 4px; } .card { padding: 16px 18px; margin-bottom: 16px; } .card h2 { font-size: 15px; font-weight: 600; margin: 0; } +.card-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 16px; } .desc { color: var(--ink-2); font-size: 12px; margin: 2px 0 12px; } +.seg { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; } +.seg button { font: inherit; font-size: 12px; border: 0; background: transparent; color: var(--ink-2); padding: 4px 10px; cursor: pointer; } +.seg button + button { border-left: 1px solid var(--border); } +.seg button[aria-pressed="true"] { background: var(--ink); color: var(--surface); } +select { font: inherit; font-size: 12px; color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 4px 8px; max-width: 100%; } .legend { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 12px; color: var(--ink-2); margin-bottom: 4px; } .sw { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; flex: none; } .chart { position: relative; } @@ -52,20 +59,19 @@ h1 { font-size: 22px; font-weight: 600; margin: 0 0 4px; } .line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; } .dot { stroke: var(--surface); stroke-width: 2; } .cross { stroke: var(--axis); stroke-width: 1; } -.tip { position: absolute; z-index: 2; pointer-events: none; min-width: 170px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.14); padding: 8px 10px; font-size: 12px; } +.tip { position: absolute; z-index: 2; pointer-events: none; min-width: 180px; max-width: 340px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.14); padding: 8px 10px; font-size: 12px; } .tip-title { font-weight: 600; margin-bottom: 4px; } .tip-row { display: flex; align-items: center; gap: 6px; } -.tip-name { flex: 1; color: var(--ink-2); } +.tip-name { flex: 1; color: var(--ink-2); overflow-wrap: anywhere; } .tip-val { font-weight: 600; font-variant-numeric: tabular-nums; } .tip-sub { color: var(--muted); padding-left: 16px; margin-bottom: 2px; } .tip-total { border-top: 1px solid var(--grid); margin-top: 4px; padding-top: 4px; } -.empty { color: var(--ink-2); border: 1px dashed var(--axis); border-radius: 8px; padding: 18px; font-size: 13px; } .table-wrap { overflow-x: auto; } table { border-collapse: collapse; width: 100%; font-size: 13px; white-space: nowrap; } th { text-align: left; color: var(--muted); font-weight: 500; font-size: 12px; padding: 6px 10px; border-bottom: 1px solid var(--axis); } td { padding: 7px 10px; border-bottom: 1px solid var(--grid); } th.num, td.num { text-align: right; font-variant-numeric: tabular-nums; } -td.muted { color: var(--muted); } +tr.sub td { font-weight: 600; border-top: 1px solid var(--axis); } tfoot td { font-weight: 600; border-bottom: none; } .badge { display: inline-flex; align-items: center; gap: 5px; color: var(--ink); } .badge-icon { display: inline-grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; font-size: 10px; font-weight: 700; color: #0b0b0b; } @@ -78,7 +84,7 @@ footer { color: var(--muted); font-size: 12px; margin-top: 8px; }
-

Tecdo 客户消耗与余额

+

Tecdo(钛动)消耗与余额

加载中…
@@ -86,45 +92,71 @@ footer { color: var(--muted); font-size: 12px; margin-top: 8px; }
-

近 7 天每日消耗

-

两个订单按天堆叠,悬停查看每个订单的消耗、安装和点击

+
+
+

每日消耗

+

按包堆叠,悬停查看当天每个包的消耗、注册和首充

+
+
+ + + +
+

余额走势

-

每天日终余额 = 截至当天的累计充值 − 累计消耗

- +

每天日终余额 = 截至当天的累计到账 − 累计消耗,圆点是到账日

-

每日明细

-

按日期倒序,每个订单一行

+

分包汇总

+

全部历史,按消耗从高到低;成本 = 消耗 ÷ 首充

- - +
日期订单Apppkg name消耗安装点击eCPI
+
产品名投放日期安装注册首充消耗成本
-

订单信息

+

分月汇总

+

每月先列合计,再列当月有数据的包

- - +
订单订单名Apppkg name开始日期出价日预算累计消耗
+
月份产品名安装注册首充消耗成本
-