TikTok Shop Content Attribution — 短视频带货兴趣图谱归因
Skill-TikTok-Shop-Content-Attribution · 13-广告分析
causalexperimentrecommendationpricingvisual_generation广告与投放推荐与搜索数据采集与治理定价与利润视觉内容生成WF-B 广告优化WF-E Review监控WF-F 动态定价WF-G Listing内容优化
实现难度⭐⭐⭐☆☆
业务视角
适用角色广告优化师 / 投放负责人 · CMO · 运营负责人
适用平台Amazon PPC(SP/SB/SD)· TikTok Ads · Meta 广告 · 多平台归因
什么情况下用广告账户几十个系列,不知道哪个在真正赚钱;ROAS 看起来好看但实际利润没有提升;预算有限想集中打高价值用户
成功是什么样的每分广告预算有明确 ROI 追踪,砍掉低效渠道后同等预算 ROAS 提升 30-50%
业务痛点
1. 解决的问题
TikTok Shop 的归因困境与传统广告归因有本质差异
2. 核心算法逻辑
TikTok Shop 的归因困境与传统广告归因有本质差异:
3. 业务应用场景
业务背景:某母婴品牌在 TikTok US 投放 3 支 KOL 带货视频(A/B/C),均实现销售,但品牌无法区分哪类内容元素效率最高,无法指导下一期视频制作方向。
量化 ROI:基于帧级归因重新分配内容制作预算,测算 3 个月视频 ROAS 从 3.8x→4.9x(+29%),增量 GMV $112,500/月(假设 $50,000 投放预算)。
业务背景:母婴大件商品(婴儿车、儿童安全座椅)决策周期长,买家常在 TikTok 看完视频后 3-7 天才购买,现有 24h 归因窗口漏判大量转化,导致高质量内容 ROI 被低估,投放预算向短决策周期品类转移。
4. 输入数据要求
- TikTok 后台导出:曝光用户 ID、视频 ID、时间戳、互动行为
- 帧级标注:使用 CV 模型(CLIP)对视频帧自动标注内容元素类型
- 转化事件:TikTok Shop 后台的订单数据与用户 ID 关联
5. 输出结果
- TikTok 后台导出:曝光用户 ID、视频 ID、时间戳、互动行为
- 帧级标注:使用 CV 模型(CLIP)对视频帧自动标注内容元素类型
- 转化事件:TikTok Shop 后台的订单数据与用户 ID 关联
6. 业务价值 / ROI
未自动抽取;请查看原始 Skill 卡片。
7. 代码模板
代码块数量:5 · 路径:未检测到
"""
TikTok Shop 短视频内容归因系统
整合 TICA(兴趣图谱归因)+ VideoAttr(帧级元素归因)+ MICE(延迟归因)
使用 mock 数据,无需真实模型权重即可运行
"""
from __future__ import annotations
import numpy as np
from dataclasses import dataclass, field
from typing import Dict, List, Optional, Tuple
from enum import Enum
# ── 数据结构 ─────────────────────────────────────────────────────────────────
class ContentElementType(Enum):
PRODUCT_CLOSEUP = "product_closeup" # 产品特写
USE_SCENARIO = "use_scenario" # 使用场景
KOL_RECOMMENDATION = "kol_recommendation" # KOL推荐口播
PRICE_PROMO = "price_promo" # 价格/促销信息
SAFETY_SPEC = "safety_spec" # 安全/规格说明
BEFORE_AFTER = "before_after" # 使用前后对比
@dataclass
class VideoContent:
"""TikTok 视频内容"""
video_id: str
duration_seconds: int
completion_rate: float # 完播率 [0, 1]
interaction_rate: float # 互动率(点赞+评论+分享)/ 曝光 [0, 1]
frames: List[Dict] = field(default_factory=list) # 帧数据列表
# 每帧格式: {"timestamp": float, "element_type": ContentElementType, "visual_embedding": np.ndarray}
@property
def content_quality(self) -> float:
"""内容质量分"""
return self.completion_rate * 0.6 + self.interaction_rate * 0.4
@property
def adaptive_attribution_window_hours(self) -> float:
"""MICE: 自适应归因窗口(小时)"""
sigma0 = 36.0 # 基础窗口 36h
beta = 0.8 # 内容质量放大系数
return sigma0 + beta * self.content_quality * 72.0
@dataclass
class UserInterestNode:
"""用户兴趣图谱节点"""
node_id: str
name: str # 兴趣名称(如"母婴安全关注")
activation_threshold: float = 0.5 # 激活阈值
conversion_weight: float = 0.0 # 对购买转化的贡献权重(从历史数据学习)
@dataclass
class ContentExposure:
"""用户接触内容事件"""
video_id: str
8. 论文来源
- 2311.16817
- 2406.13234
- 2501.09876