paper2skills Playbook

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%
业务痛点
ROAS 好看但利润没有涨不知道哪个素材真的有效归因窗口期不同数据打架TikTok/Meta/Amazon 广告数据整合不了

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