KOL 效果衡量与合同管理
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read451 words

KOL 效果衡量与合同管理

KOL 合作不是"发一条帖子"那么简单——选号、定价、合同、效果追踪、结算,每个环节都可能踩坑。

KOL 合作全流程

graph LR A[需求定义] --> B[KOL 筛选] B --> C[报价谈判] C --> D[合同签署] D --> E[内容创作] E --> F[发布上线] F --> G[效果追踪] G --> H[结算复盘] style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px style G fill:#fff9c4,stroke:#f9a825,stroke-width:2px style H fill:#c8e6c9,stroke:#43a047,stroke-width:2px

KOL 评估打分系统

from dataclasses import dataclass
from enum import Enum
class KOLTier(Enum):
MEGA = "mega"       # 100万+ 粉丝
MACRO = "macro"     # 10-100万
MID = "mid"         # 1-10万
MICRO = "micro"     # 1000-1万
NANO = "nano"       # < 1000
@dataclass
class KOLProfile:
name: str
platform: str
followers: int
avg_engagement_rate: float   # 互动率 %
avg_views: int
category: str                # 美妆/科技/美食...
price_per_post: float
@property
def tier(self) -> KOLTier:
if self.followers >= 1_000_000:
return KOLTier.MEGA
elif self.followers >= 100_000:
return KOLTier.MACRO
elif self.followers >= 10_000:
return KOLTier.MID
elif self.followers >= 1_000:
return KOLTier.MICRO
return KOLTier.NANO
@property
def cpe(self) -> float:
"""Cost Per Engagement 每互动成本"""
engagements = self.avg_views * (self.avg_engagement_rate / 100)
return self.price_per_post / engagements if engagements > 0 else 0
@property
def cpv(self) -> float:
"""Cost Per View 每观看成本"""
return self.price_per_post / self.avg_views if self.avg_views > 0 else 0
class KOLRanker:
"""KOL 综合评分排名"""
WEIGHTS = {
"engagement_rate": 0.30,
"cpe_score": 0.25,
"reach_score": 0.20,
"category_fit": 0.15,
"price_score": 0.10,
}
def score(
self, kol: KOLProfile, target_category: str
) -> dict:
# 互动率评分 (0-10)
er_score = min(10, kol.avg_engagement_rate * 2)
# CPE 评分 (越低越好)
cpe_score = max(0, 10 - kol.cpe * 5) if kol.cpe > 0 else 0
# 粉丝量评分 (对数尺度)
import math
reach_score = min(10, math.log10(max(1, kol.followers)) - 2)
# 类别匹配
category_fit = 10.0 if kol.category == target_category else 3.0
# 价格评分 (越便宜越好, 10万以下满分)
price_score = max(0, 10 - kol.price_per_post / 10000)
scores = {
"engagement_rate": er_score,
"cpe_score": cpe_score,
"reach_score": reach_score,
"category_fit": category_fit,
"price_score": price_score,
}
total = sum(
scores[k] * self.WEIGHTS[k] for k in self.WEIGHTS
)
return {
"kol": kol.name,
"tier": kol.tier.value,
"total_score": round(total, 2),
"detail": {k: round(v, 2) for k, v in scores.items()},
"cpe": f"¥{kol.cpe:.2f}",
}
def rank(
self, kols: list[KOLProfile], target_category: str
) -> list[dict]:
scored = [self.score(k, target_category) for k in kols]
return sorted(scored, key=lambda x: x["total_score"], reverse=True)

KOL 合同核心条款

条款 要点 常见坑
内容数量 几条帖子、几个平台 未约定 Story/短视频差异
审核权 品牌方可审核修改 未约定修改次数上限
独占期 发布后 N 天不接竞品 独占期太短,竞品紧随
数据共享 阅读/互动/转化数据 KOL 不愿分享后台数据
使用权 品牌可二次使用内容 未约定使用期限和渠道
付款条件 发布后 N 天付款 效果不达标无退款条款
违约条款 延期/删帖的处理 无明确赔偿标准

KOL 层级投放策略

graph TB A[KOL 投放金字塔] --> B[Mega 1-2个] A --> C[Macro 5-10个] A --> D[Mid 20-50个] A --> E[Micro 100+个] B --> B1[品牌背书 + 声量] C --> C1[品类教育 + 种草] D --> D1[场景覆盖 + 口碑] E --> E1[长尾铺量 + 转化] style B fill:#ffecb3,stroke:#ff8f00,stroke-width:2px style E fill:#c8e6c9,stroke:#43a047,stroke-width:2px
KOL 层级 粉丝量 CPE 基准 适合目标 预算占比
Mega 100万+ ¥2-5 声量爆发 30%
Macro 10-100万 ¥0.5-2 品类教育 25%
Mid 1-10万 ¥0.2-0.8 场景种草 25%
Micro <1万 ¥0.05-0.3 铺量转化 20%

本章小结

下一章:创意框架与 A/B 测试