Normalize Kwai experiment adping data

This commit is contained in:
Codex
2026-09-14 16:14:18 +08:00
parent 436f08a988
commit 308fe9d5e9
2 changed files with 11 additions and 2 deletions
+10 -1
View File
@@ -60,6 +60,12 @@ experiment = {}
for r in config:
if r['group'] == '实验组':
experiment.setdefault((r['pkg'], r['channel'].lower()), []).append((str(r['adping_id']), r))
# Kwai can occasionally return GEO in the pkg column for an experimental campaign.
# An adping ID is unique to the experiment, so use it as a guarded fallback and
# normalize the emitted pkg to the Campaign info configuration.
experiment_by_source = {}
for (_, source), items in experiment.items():
experiment_by_source.setdefault(source, []).extend(items)
scopes = {}
for r in config:
scopes.setdefault((r['pkg'], r['channel'].lower(), r['geo'].upper()), r)
@@ -79,8 +85,11 @@ for raw_row in matrix[1:] if has_header else matrix:
if not pkg or not source or not campaign: continue
exp = next((meta for adping, meta in experiment.get((pkg, source), [])
if re.search(r'(?<!\d)' + re.escape(adping) + r'(?!\d)', campaign)), None)
if not exp:
exp = next((meta for adping, meta in experiment_by_source.get(source, [])
if re.search(r'(?<!\d)' + re.escape(adping) + r'(?!\d)', campaign)), None)
if exp:
meta, group, shown, adping = exp, '实验组', campaign, str(exp['adping_id'])
meta, group, shown, adping, pkg = exp, '实验组', campaign, str(exp['adping_id']), exp['pkg']
else:
geo = resolve_geo(pkg, source, campaign)
meta = scopes.get((pkg, source, geo)) if geo else None