P paper2skillsPlaybook
AI 路线图 →

KOL Creator Matching — KOL/达人精准匹配与 ROI 预测

Skill-KOL-Creator-Matching · 15-营销投放分析

causalexperimentforecastingrecommendationdata_collection广告与投放推荐与搜索数据采集与治理WF-B 广告优化WF-D 选品扫描WF-E Review监控WF-G Listing内容优化WF-J DTC 独立站增长WF-L 内容营销增长
年化 ROI5-20 万元
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐☆
业务视角
适用角色CMO / 营销负责人 · 广告优化师 · CEO
适用平台Amazon + TikTok + Meta + KOL 四渠道 · Prime Day / Black Friday 预算前置
什么情况下用同时跑 Amazon 广告/TikTok/网红投放/邮件,不知道整体预算怎么分配最高效;网红投放花了大钱但不知道带来多少真实 GMV
成功是什么样的建立全渠道营销归因模型(MMM),每个渠道真实 ROI 可量化,大促前做预算优化模拟
业务痛点
多渠道预算分配靠感觉网红带货效果不知道怎么量化渠道之间互相抢功劳数据打架整体营销 ROI 算不清楚

1. 解决的问题

MCN 每月推 50 个 KOL 候选靠人工两天选 5 个,经常选到粉丝多但转化差的展示型 KOL,ROI 只有 1:2——六维精准匹配(受众/内容/互动/转化/品牌安全/性价比)30 分钟筛选,ROI 从 1:2 提升到 1:3.5+

2. 核心算法逻辑

核心思想:品牌每个月要从数百个 KOL 候选中选出 510 个合作,传统方式是看粉丝数 + 主观感觉,导致投入大但 ROI 不稳定——粉丝多不代表带货强,垂直对口才是关键。KOL 精准匹配用多维特征量化「KOL ↔ 品牌」的契合度,结合历史数据预测 ROI,把选人决策从「靠感觉」变为「靠数据」。

3. 业务应用场景

- 业务问题:MCN 每月给 50 个 KOL 候选,品牌方需要选 5 个,人工看完需要 2 天,且经常选到粉丝多但转化差的「展示型」KOL,实际带货 ROI 不到 1:2。 - 数据要求:KOL 历史帖子关键词 + 粉丝画像 + 互动率 + 报价(一般 MCN 提供)。 - 预期产出: - 每个 KOL 的六维匹配分(0-100)+ 各维度明细 - 预估 ROI(投入:报价;产出:预估带货额) - 推荐 Top-5 + 各自合作建议(主推/测试/排除) - 典型发现: - 30 万粉的「育儿专家」型 KOL 匹配分 85(受众精准),预估 ROI 1:4 - 200 万粉的「美妆博主」型 K

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI 预估:选品效率 2天→30分钟,ROI 从 1:2 提升到 1:3.5+,月节省无效投入 5-20 万元
  • 实施难度:⭐⭐☆☆☆(低,数据来自 MCN 提供 + 公开平台数据)
  • 优先级:⭐⭐⭐⭐☆(KOL 投入是品牌第二大营销支出,选人精准度直接决定 ROI)
  • 评估依据:多维匹配框架结合 influencer marketing 行业最佳实践,母婴品类历史投放数据验证

7. 代码模板

代码块数量:2 · 路径:未检测到

from dataclasses import dataclass, field
from typing import List, Dict

@dataclass
class KOLProfile:
    kol_id: str
    name: str
    platform: str
    followers: int
    engagement_rate: float
    audience_match_pct: float
    content_relevance: float
    purchase_intent_signals: int
    fee_usd: float
    has_controversy: bool = False
    competitor_collab: bool = False

def compute_kol_score(kol: KOLProfile, brand_aov_usd: float = 89.99) -> Dict:
    engagement_ok = 0.3 <= kol.engagement_rate <= 15.0
    engagement_score = kol.engagement_rate / 5.0 if engagement_ok else 0.2
    engagement_score = min(1.0, engagement_score)

    brand_safety = 0.0 if kol.has_controversy else (0.5 if kol.competitor_collab else 1.0)

    est_reach = kol.followers * kol.engagement_rate / 100
    est_clicks = est_reach * (kol.content_relevance * 0.08)
    est_sales = est_clicks * (kol.audience_match_pct / 100) * 0.05
    est_revenue = est_sales * brand_aov_usd
    roi = est_revenue / max(kol.fee_usd, 1)

    cpm = kol.fee_usd / max(est_reach / 1000, 0.1)

    score = (kol.audience_match_pct / 100 * 30 +
             kol.content_relevance * 25 +
             engagement_score * 20 +
             min(1.0, kol.purchase_intent_signals / 20) * 15 +
             brand_safety * 5 +
             min(1.0, 1 / max(cpm / 50, 0.1)) * 5)

    tier = "🥇 强烈推荐" if score >= 70 else "🥈 建议测试" if score >= 50 else "🥉 谨慎考虑" if score >= 35 else "❌ 不推荐"

    return {"kol_id": kol.kol_id, "name": kol.name, "platform": kol.platform,
            "total_score": round(score, 1), "tier": tier,
            "estimated_roi": round(roi, 2),
            "est_revenue_usd": round(est_revenue, 0),
            "cpm_usd": round(cpm, 1),
            "details": {"audience_fit": round(kol.audience_match_pct, 1),
                        "content_relevance": round(kol.content_relevance * 100, 1),
                        "engagement_rate": kol.engagement_rate,
                        "brand_safety": "✅" if brand_safety == 1.0 else "⚠️"}}

def rank_kols(kols: List[KOLProfile], brand_aov_usd: float = 89.99,
              budget_usd: float = 30000) -> List[Dict]:
    results = [compute_kol_score(k, brand_aov_usd) for k in kols]
    results.sort(key=lambda x: -x["total_score"])
    cumulative_cost = 0
    for r in results:
        kol = next(k for k in kols if k.kol_id == r["kol_id"])
        cumulative_cost += kol.fee_usd
        r["within_budget"] = cumulative_cost <= budget_usd

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。