[深度]OpenClaw用户分层与再营销:DMP标签体系、RFM模型与人群包投放实战

阿里云推广

广告用户分层与再营销深度实战

精准投放的本质是把合适的广告推给合适的人。本文从DMP标签体系设计,到RFM用户分层模型,再到再营销人群包的构建与投放,系统讲解用户分层的完整链路。

一、DMP标签体系设计

DMP(Data Management Platform)是广告系统的用户数据大脑,核心是多维度标签体系

标签维度 标签示例 数据来源 更新频率
人口属性 年龄/性别/城市级别 注册信息/运营商 低频
设备信息 iOS/Android/机型/价格段 SDK上报 低频
行为偏好 游戏玩家/购物达人/旅行爱好者 App内行为 每日
消费能力 高/中/低消费人群 订单数据/设备价格 每周
活跃度 日活/周活/月活/沉默用户 登录行为 实时
广告行为 曾点击XX类广告/转化用户 广告事件 实时

二、RFM模型:找出高价值用户

import pandas as pd
import numpy as np

def rfm_segmentation(orders_df, analysis_date=None):
    """
    RFM用户分层
    R(Recency): 最近购买距今天数(越小越好)
    F(Frequency): 购买频次(越大越好)
    M(Monetary): 购买金额(越大越好)
    """
    if analysis_date is None:
        analysis_date = pd.Timestamp.now()

    rfm = orders_df.groupby('user_id').agg(
        recency=('order_date', lambda x: (analysis_date - x.max()).days),
        frequency=('order_id', 'count'),
        monetary=('amount', 'sum')
    ).reset_index()

    # 打分: 1-5分
    rfm['R_score'] = pd.qcut(rfm['recency'], 5, labels=[5,4,3,2,1])
    rfm['F_score'] = pd.qcut(rfm['frequency'].rank(method='first'), 5, labels=[1,2,3,4,5])
    rfm['M_score'] = pd.qcut(rfm['monetary'].rank(method='first'), 5, labels=[1,2,3,4,5])

    rfm['RFM_score'] = rfm['R_score'].astype(int) + rfm['F_score'].astype(int) + rfm['M_score'].astype(int)

    # 分层
    def segment(row):
        if row['RFM_score'] >= 12:
            return '重要价值客户'
        elif row['R_score'] >= 4:
            return '潜力新客'
        elif row['F_score'] >= 4 and row['R_score'] < 3:
            return '忠诚但流失风险'
        elif row['RFM_score'] <= 6:
            return '流失用户'
        else:
            return '一般维系客户'

    rfm['segment'] = rfm.apply(segment, axis=1)
    return rfm

三、再营销人群包构建与投放

# 人群包API - 上传自定义用户群
import hashlib, json, requests

def create_audience(name, user_ids, id_type='device_id'):
    """
    创建再营销人群包
    id_type: 'device_id'/'phone'/'email'
    """
    # 隐私保护: 手机号/邮箱需要先SHA256
    if id_type in ('phone', 'email'):
        hashed_ids = [hashlib.sha256(uid.lower().encode()).hexdigest()
                      for uid in user_ids]
    else:
        hashed_ids = user_ids

    payload = {
        'name': name,
        'type': 'custom_audience',
        'id_type': id_type,
        'ids': hashed_ids,
        'description': f'RFM模型生成,{len(user_ids)}用户'
    }

    resp = requests.post(
        'https://your-openclaw.com/api/v1/audiences',
        json=payload,
        headers={'Authorization': 'Bearer YOUR_TOKEN'}
    )
    audience_id = resp.json()['audience_id']
    print(f'人群包创建成功: {audience_id}, 估算覆盖: {resp.json()["estimated_size"]}人')
    return audience_id

# 使用RFM分层结果创建人群包
high_value_users = rfm[rfm['segment'] == '重要价值客户']['user_id'].tolist()
audience_id = create_audience('高价值用户再营销', high_value_users)

四、LAL相似扩量:从种子用户找相似用户

# Lookalike Audience(LAL)扩量原理
#
# 种子用户 (Seed Audience)
#   ↓ 提取特征分布
# 特征向量 {年龄段: 25-35占60%, 兴趣: 购物+游戏, 设备: iPhone高端机}
#   ↓ 在全量用户中召回相似用户
# 相似用户池 (2%~10%相似度)

# API配置
POST /api/v1/audiences/lookalike
{
    'seed_audience_id': audience_id,
    'similarity_ratio': 0.05,   # 5%相似度,约覆盖总用户5%
    'country': 'CN',
    'optimization_goal': 'purchase'  # 按转化优化
}

总结:精准投放的核心链路是:数据采集 → 标签计算 → 用户分层 → 人群包创建 → 定向投放 → 效果归因。RFM模型简单实用,是入门用户分层的最佳选择。

发表评论