From ef86d383f8cf76762cd487d9c62b79df3857a9c0 Mon Sep 17 00:00:00 2001 From: FANGKK Date: Mon, 31 Aug 2026 10:43:53 +0800 Subject: [PATCH] Add permanent Adpingid-level exclusions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit exclude.json gains an "adpings" map (18 ids, value = package for reference) alongside the existing package list. build_data.py drops those Adpingids from both the 投手 ownership counts and the spend rows. Co-Authored-By: Claude Opus 5 --- build_data.py | 12 +++++++++--- data.json | 17 ++++++----------- exclude.json | 26 +++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/build_data.py b/build_data.py index 35f4e89..f0de9f4 100644 --- a/build_data.py +++ b/build_data.py @@ -2,13 +2,16 @@ # 从 xlsx 重算 data.json。 # 平台消耗统计: B=Date, C=Adpingid, D=包名, E=地区, I=花费 # 投手: B=Adpingid, D=pkg, L=Media Buyer投放人 -# 规则:@某某 == 某某;未填投放人的 Adpingid 丢弃;exclude.json 里的包名永久剔除(精确匹配)。 +# 规则:@某某 == 某某;未填投放人的 Adpingid 丢弃; +# exclude.json 的 packages(按包名)与 adpings(按 Adpingid)永久剔除,均为精确匹配。 # 每个 package 明细:Geo 后缀 = 该 package 花费最高的地区;Adpingid = 该地区内花费最高的 Adping。 import openpyxl, collections, json, datetime, os, sys HERE = os.path.dirname(os.path.abspath(__file__)) SRC = os.path.join(HERE, '2608每日数据-武汉萌奇熊.xlsx') -EXCL = set(json.load(open(os.path.join(HERE, 'exclude.json')))['packages']) +_cfg = json.load(open(os.path.join(HERE, 'exclude.json'))) +EXCL = set(_cfg['packages']) # 按包名剔除 +EXCL_ADP = set(_cfg.get('adpings', {})) # 按 Adpingid 剔除 NON_BUYER = {'GP下架'} WINDOW_DAYS = 3 @@ -20,12 +23,15 @@ def key(v): wb = openpyxl.load_workbook(SRC, data_only=True) # --- 投手表:Adpingid -> 投放人 --- -amap, dropped_ids = {}, set() +amap = {} +dropped_ids = set(EXCL_ADP) # 先纳入按 Adpingid 剔除的,再补上按包名命中的 for r in wb['投手'].iter_rows(min_row=2, values_only=True): adp, pkg, buyer, status = r[1], r[3], r[11], r[0] if adp is None or str(status).strip() == '示例': continue k = key(adp) + if k in EXCL_ADP: + continue if pkg is not None and str(pkg).strip() in EXCL: # 精确匹配,避免误伤 in.swiggy.android dropped_ids.add(k) continue diff --git a/data.json b/data.json index f54af66..5108b30 100644 --- a/data.json +++ b/data.json @@ -2,12 +2,12 @@ "meta": { "week": "Last 3 Days: 8/25-8/27", "source": "数据已处理(平台消耗统计 × 投手表匹配,已剔除未填写投放人的 Adpingid 及排除包名)", - "generated_at": "2026-08-28", + "generated_at": "2026-08-31", "date_range": "2026/08/25-2026/08/27", "note": "投放人以「投手」表 Media Buyer 列为准,@某某 已与某某合并计算;未填写投放人的 Adpingid 不计入;exclude.json 所列包名已排除。Package 后缀为该 Package 花费最高的投放地区,Adpingid 为该地区内花费最高的 Adping。" }, - "grand_total": 12114.2664, - "week34_id_count": 123, + "grand_total": 12022.4358, + "week34_id_count": 120, "buyers": [ { "name": "黄政", @@ -188,9 +188,9 @@ { "name": "詹涵粤", "@name": "詹涵粤", - "total": 1720.3579, - "active_ids": 20, - "owned_ids": 148, + "total": 1628.5273, + "active_ids": 17, + "owned_ids": 143, "pkgs": [ { "pkg": "com.king.candycrushsaga", @@ -231,11 +231,6 @@ } ], "unmatched": [ - { - "adping": "91551415", - "pkg": "com.ddup.zombiewaves.zw", - "spend": 4.0 - }, { "adping": "91538334", "pkg": "cn.com.vtmarkets", diff --git a/exclude.json b/exclude.json index f2ad10e..b13ede9 100644 --- a/exclude.json +++ b/exclude.json @@ -1,5 +1,5 @@ { - "_comment": "永久排除的包名(精确匹配,不做子串匹配)。用户 2026-08-26 指定,以后每次生成报告都不计入。", + "_comment": "永久排除项,每次生成报告都不计入。packages=按包名精确匹配剔除;adpings=按 Adpingid 精确剔除(值为包名,仅作备注)。用户 2026-08-26 / 2026-08-28 指定。", "packages": [ "com.levelinfinite.sgameGlobal", "com.igg.android.lordsmobile", @@ -13,5 +13,25 @@ "id891130066", "id886443637", "id1014949597" - ] -} + ], + "adpings": { + "91513416": "org.megapari.client", + "91513572": "org.megapari.client", + "91544865": "com.qookkagames.xczyw.gp.hk", + "91544866": "com.sialiagames.xczyw.gp.tw", + "91544867": "net.mbc.shahid", + "91544868": "com.igg.android.lordsmobile", + "91545518": "com.cathayholdings.vdrf", + "91545519": "com.vuclip.viu", + "91546637": "com.igg.android.lordsmobile", + "91546638": "net.mbc.shahid", + "91546639": "com.sialiagames.xczyw.gp.tw", + "91546640": "com.qookkagames.xczyw.gp.hk", + "91550106": "com.sialiagames.xczyw.gp.tw", + "91550107": "net.mbc.shahid", + "91551412": "com.ddup.zombiewaves.zw", + "91551415": "com.ddup.zombiewaves.zw", + "91551606": "com.ddup.zombiewaves.zw", + "91552556": "com.ddup.zombiewaves.zw" + } +} \ No newline at end of file