Normalize Kwai experiment adping data
This commit is contained in:
+10
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user