
业务背景信息流广告头条、腾讯应用商店华为、小米、OPPO网盟、DSP、地推、SEO分析目标评估各渠道 拉新规模 用户质量识别 高价值渠道为后续 预算调整、出价策略、素材优化提供依据分析框架维度指标说明获客新增用户数规模获客CAC获客成本效率激活激活率是否完成关键行为留存D1 / D7 留存率产品粘性变现ARPU / 付费率商业价值综合ROILTV / CAC是否值得长期投权重指标0.2D7留存率、ROI0.15激活率、D1留存率、付费率CAC负向指标D7 留存 ≈ 用户是否“留下来”是 LTV 的底座而次留D1波动大容易受推送 / 节假日影响。D7 更能反映产品价值是否被接受、渠道用户质量。ROI 高说明用户价值高、获客成本控制得好。SQL取数注册表 register_info用户行为表 event_log渠道成本表 channel_costSQL输出channelnew_usersactivation_rated7_retention_ratepay_ratearpucacroi华为商店85000.620.380.0815.28.52.8小米商店62000.580.350.0713.87.22.6SEO32000.710.450.1222.53.54.2头条信息流120000.350.180.059.512.81.5腾讯信息流95000.380.200.0610.811.51.8OPPO商店48000.550.320.0612.09.02.1网盟56000.180.050.012.16.50.3DSP38000.250.100.024.515.20.6Python评分import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from matplotlib import rcParams # 中文字体设置 rcParams[font.family] WenQuanYi Micro Hei rcParams[axes.unicode_minus] False plt.style.use(seaborn-v0_8) sns.set(font_scale1.1) # 读取 SQL 导出的数据 df pd.read_csv(channel_analysis.csv) print(原始数据) print(df.to_string(indexFalse)) print(f\n共 {len(df)} 个渠道) # 定义权重 score_dims { activation_rate: {weight: 0.15, direction: positive}, # 激活率 d1_retention_rate: {weight: 0.15, direction: positive}, # D1留存 d7_retention_rate: {weight: 0.20, direction: positive}, # D7留存 pay_rate: {weight: 0.15, direction: positive}, # 付费率 roi: {weight: 0.20, direction: positive}, # ROI cac: {weight: 0.15, direction: negative}, # CAC越低越好 } # 标准化Min-Max def normalize(series,directionpositive): min_val series.min() max_val series.max() if direction positive: return (series - min_val) / (max_val - min_val) else: return (max_val - series) / (max_val - min_val) -- 处理负向指标 # 计算加权得分 score_df[total_score] 0 for dim, config in score_dims.items(): score_df[total_score] score_df[f{dim}_score] * config[weight] # 等级划分 def grade(score): if score 80: return S elif score 65: return A elif score 50: return B elif score 35: return C else: return D score_df[grade] score_df[total_score].apply(grade) # 合并回主表 result df.merge(score_df, onchannel) result result.sort_values(total_score, ascendingFalse).reset_index(dropTrue) print(\n✅ 渠道质量评分结果) print(result[[channel, new_users, activation_rate, d7_retention_rate, pay_rate, cac, roi, total_score, grade]].round(2).to_string(indexFalse))代码逻辑原始指标↓ 标准化0–1↓ 乘以权重↓ 加总 渠道综合得分评分结果channel综合得分等级排名SEO88.5S1华为商店76.3A2小米商店71.2A3OPPO商店62.8B4腾讯信息流54.6B5头条信息流48.2C6DSP35.4C7网盟18.7D8业务结论等级渠道核心特征策略SSEO质量最高ROI 4.2CAC 最低加大投入扩大内容产出A华为商店、小米商店规模大质量较好维持争取商店推荐位BOPPO商店、腾讯信息流中等偏上优化素材提升激活率C头条信息流、DSP规模大但质量差降价/缩量收紧出价D网盟留存仅5%ROI 0.3立即关停QA为什么要做渠道质量分析渠道质量分析起到的作用不同渠道用户含金量差异巨大在相同预算的情况下SEO / 应用商店可能带来 高留存、高付费 用户网盟 / 低质 DSP 可能只带来 秒装秒卸、薅羊毛、假量。控制 CAC获客成本≠ 控制 ROI有些渠道 CAC 看似便宜但 LTV生命周期价值极低 → 真实亏损有些渠道 CAC 稍高但留存好、付费强 → 长期赚钱。发现假量 / 作弊流量低激活率 极低留存 无付费行为→ 典型作弊/机刷特征。为投放策略提供方向某渠道激活率低 → 落地页 / 素材与产品不符某渠道留存高但量小 → 说明受众精准可扩大相似人群投放。一句话总结→ 为了区分真增长和虚假繁荣把钱花在能带来长期价值的用户上。渠道质量分析最重要的是什么① 留存至少看 D1 留存防机刷 D7 留存真实粘性新渠道准入标准常设D1留存 ≥ 20%D7留存 ≥ 8~12%视行业② 变现价值LTV /付费率/ ARPU付费率 ARPU → 算出 LTV结合 CAC → 判断是否 LTV CAC通常要求 ≥ 3:1ROI 收入 / 渠道花费直观看赚不赚钱ARPU 总收入 / 总活跃用户数或总注册用户ARPPU 总收入 / 付费用户数LTV 平均每用户付费金额ARPU × 用户平均生命周期或 观察窗口留存LTV 付费率 × 客单价 × 平均购买次数或 1 / 流失率LTV ARPU × 平均活跃月数CAC 营销 投放总费用 / 新增付费用户数首购③ 激活率是否完成Aha Moment核心功能首次使用激活率低 → 渠道人群不匹配 或 落地页/引导有问题一句话总结→ 留存尤其 D7 留存 变现价值LTV/CAC辅以激活率来判断人群匹配度。为什么使用Min-Max标准化而不是Z-ScoreMin-Max结果固定在 [0,1]可解释性强Z-Score会出现负数权重相加不好解释。为什么不直接调包 → 因为不方便单独控制 CAC 这种反向指标from sklearn.preprocessing import MinMaxScaler scaler MinMaxScaler() df[cols] scaler.fit_transform(df[cols])