feat(server): 归因v2——paid_social渠道与fb+付费medium优先规则

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-18 22:41:58 +08:00
parent be0b53bce4
commit 52a8a72e3a
4 changed files with 66 additions and 10 deletions
+8 -3
View File
@@ -45,10 +45,12 @@ EXTENDED_ENV_KEYS = { # SDK 扩展环境键白名单(Visitor.env_
}
# ---------------------------------------------------------------------------
# 来源归因规则库 v1(tracker/services/attribution.py 消费)。改规则必须 bump 版本号
# 来源归因规则库 v2(tracker/services/attribution.py 消费)。改规则必须 bump 版本号
# 并跑 recompute_attribution 重算历史——已落库分类带 rule_version 可追溯。
# v2:新增 paid_social 渠道——fbclid 点击参数与 fb 家族+付费 medium(实测主导模式
# utm_medium=paid&utm_source=fb)不再混入 paid_search。
# ---------------------------------------------------------------------------
ATTRIBUTION_RULE_VERSION = "v1"
ATTRIBUTION_RULE_VERSION = "v2"
AI_REFERRAL_DOMAINS = { # AI 平台 → 显示名
"chatgpt.com": "ChatGPT", "perplexity.ai": "Perplexity",
"copilot.microsoft.com": "Copilot", "gemini.google.com": "Gemini",
@@ -65,6 +67,9 @@ SEARCH_TERM_PARAMS = { # 引擎 → referrer URL 里的搜索词参数名(白
} # 注:Google 不提供,绝不虚构
PAID_CLICK_PARAMS = {"gclid": "Google Ads", "fbclid": "Meta Ads",
"msclkid": "Bing Ads", "yclid": "Yandex Ads"}
PAID_MEDIUMS = {"cpc", "ppc", "paidsearch", "paid", "social", "paid_social",
"social_ads", "paidsocial"} # utm_medium 付费判定集(含社交系——仅 fb 家族配社交 medium 判付费)
SOCIAL_MEDIUMS = {"social", "paid_social", "social_ads", "paidsocial"} # 社交系 medium:非 fb 来源不判付费(防误伤自然社交)
SOCIAL_DOMAINS = {
"t.co": "Twitter/X", "twitter.com": "Twitter/X", "x.com": "Twitter/X",
"facebook.com": "Facebook", "linkedin.com": "LinkedIn", "instagram.com": "Instagram",
@@ -73,5 +78,5 @@ SOCIAL_DOMAINS = {
}
INAPP_UA_MARKERS = {"MicroMessenger": "微信", "Line/": "Line", "FBAN": "Facebook",
"FBAV": "Facebook", "Instagram": "Instagram", "WhatsApp": "WhatsApp"}
CHANNELS = ("natural_search", "paid_search", "ai_referral", "social",
CHANNELS = ("natural_search", "paid_search", "paid_social", "ai_referral", "social",
"in_app", "referral", "direct", "unknown")