本技能基于明日DMP开放平台API,提供RTQ投放订单管理功能,帮助您将圈选的人群包投放到广告平台进行精准投放。
⚠️ 重要声明:
使用本技能前,您需要先获取明日DMP API凭证和RTQ投放凭证:
📧 申请方式(二选一):
方式一:邮件申请
方式二:在线表单申请
🔒 凭证格式:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx💡 温馨提示:首次使用时,我会自动引导您完成凭证配置,无需担心!
当您发起请求时,系统会自动识别请求类型并进入相应流程:
1. 技能咨询请求("有哪些功能"、"能做什么")
2. 查询订单请求("查询投放订单123456")
3. 修改订单请求("修改投放订单123456")
4. 创建投放请求(包含"投放"、"订单"、"RTQ"等关键词)
流程执行规则:
第一步:请求类型识别 [必须执行]
系统会根据您的需求关键词,识别出请求类型。
识别规则:
第二步:鉴权技能检查与凭证配置 [必须执行]
确认请求类型后,系统会立即检查鉴权技能是否已安装,并配置API凭证:
完整检查流程:
步骤2.1:检查鉴权技能是否已安装
系统会自动检查鉴权技能(mingdata-dmp-auth,skill_id: 9164)是否已安装:
bash
检查路径:~/.skills/9164/ 或通过技能列表查询
如果已安装 → 继续步骤2.2(检查凭证)
如果未安装 → 展示以下内容,等待用户选择:
text
💡 检测到您尚未安装【明日DMP鉴权技能】
该技能是使用人群投放功能的必需组件,负责管理API访问凭证和签名生成。
功能包括:
- 安全存储API访问凭证(Access Key和Secret Key)
- 自动生成API请求签名
- 统一管理所有明日DMP API调用
是否需要自动下载并安装鉴权技能?
1. 是 - 自动下载并启用鉴权功能
2. 否 - 取消本次操作(不安装无法使用投放功能)
请回复:是/否
用户回复处理:
使用 terminal 工具执行: openclaw skills install mingdata-dmp-auth
等待命令执行完成
安装成功:提示 ✅ 鉴权技能安装成功 → 继续步骤2.2
安装失败:展示以下内容,等待用户选择: text
❌ 鉴权技能自动安装失败
请选择处理方式:
A. 手动安装 - 前往 ClawHub 安装后告诉我"已安装完成":
👉 https://clawhub.ai/mingri26/dmp-auth
步骤:① 打开链接 → ② 点击「Download」→ ③ 回复"已安装完成"
B. 取消操作 - 终止本次投放订单创建
请回复:A/B
用户回复 A:等待用户确认安装完成 → 继续步骤2.2
用户回复 B:提示 已取消操作 → 终止流程
已取消操作,不安装鉴权技能无法使用投放功能。步骤2.2:检查凭证配置
鉴权技能安装成功后,检查是否已配置API凭证:
bash
检查路径:~/.mingdata_dmp_credentials
如果凭证已配置 → 继续第三步(参数完整性检查)
如果凭证未配置 → 展示凭证获取指引:
text
🔑 明日DMP API凭证获取指南
您需要先获取明日DMP的API访问凭证和RTQ投放凭证,才能使用人群投放功能。
📧 申请方式(二选一):
方式一:邮件申请
- 发送开通申请至:product@mingdata.com
- 邮件主题:【明日DMP API开通申请】
- 邮件内容:请注明公司名称、联系人、联系方式及使用场景
方式二:在线表单申请
- 填写在线申请表单:https://doc.weixin.qq.com/forms/ANEAJwfLAAoADMAHwbhAPICNUE0vDRd8f#/fill
- 提交后等待审核通过(通常1-3个工作日)
🔒 需要的凭证信息:
- Access Key:API访问密钥
- Secret Key:API密钥
- RTQ机房名称:如"明日RTQ机房"
- RTQ Access Key:RTQ投放密钥
获取凭证后,请按以下格式提供给我:
Access Key: xxxxxxxxxxxxxxxxxxxx
Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
RTQ机房名称: 明日RTQ机房
RTQ Access Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
凭证配置后:
第三步:参数完整性检查 [必须执行]
凭证检查通过后,系统会检查必填参数是否齐全。
RTQ投放订单必填参数:
第三步之一:人群ID验证 [使用人群包时必须执行]
⚠️ 强制人群验证机制(v1.1.0新增)
当用户提供人群ID时,系统会 强制执行 人群验证,获取真实的人群名称和量级, 禁止使用默认值:
验证流程:
/audience/manage/taskList 接口查询人群状态验证结果处理:
✅ 人群状态为"成功"(audienceStatus=1)且量级>0
text
✅ 人群验证成功!
- 人群ID:125621
- 人群名称:测试一下1
- 人群量级:5,043,357
- 人群状态:成功
- 创建时间:2025-10-14 19:01:25
继续创建订单...
❌ 人群量级为0(数据错误)
text
⚠️ 警告:人群量级为0,可能导致投放数据不准确
⚠️ 请确认人群ID 125621 是否正确
❌ 错误:人群量级为0,禁止创建订单
❌ 这可能是数据错误,请检查人群ID或重新圈选人群
❌ 人群不存在或ID无效
text
❌ 人群ID 13216 不存在或无效
❌ 人群验证失败,无法创建订单
⚠️ 不能自动改用属性定向,请用户明确选择:
选项1:使用属性定向(性别+年龄)创建订单
- 需要提供性别和年龄参数
- 不使用人群包,仅基于基础属性定向
选项2:检查人群ID是否正确,或等待人群计算完成后重试
选项3:查询可用的人群列表,选择正确的人群ID
请告知用户选择哪个选项,不要自动决定。
⏳ 人群正在计算中(audienceStatus=2或3)
text
⏳ 人群ID 125621 正在计算中
- 人群名称:美妆女性人群
- 当前状态:计算中
- 创建时间:2025-07-15 15:35:39
建议:
1. 等待人群计算完成后再创建订单
2. 或者先使用属性定向创建订单
请用户明确选择,不要自动决定。
❌ 人群创建失败(audienceStatus=0)
text
❌ 人群ID 125621 创建失败,不能使用
建议:
1. 使用属性定向(性别+年龄)创建订单
2. 重新圈选人群
请用户明确选择,不要自动决定。
💡 验证优势(v1.1.0强化):
第四步:主动询问缺失参数 [必须执行]
参数不完整时,系统会 主动询问并提供选项枚举。
参数1:订单名称(dealName)
text
请提供投放订单名称:
- 建议:美妆人群投放订单、母婴用户精准投放等
- 长度限制:≤100字符
- 您的订单名称:[等待用户输入]
参数2:投放时间(startDate / endDate)
text
请设置投放时间:
- 格式:YYYY-MM-DD
- 开始日期:[等待用户输入]
- 结束日期:[等待用户输入]
- 示例:2026-06-10 至 2026-06-20
参数3:流量类型(flowType)
text
请选择投放的流量类型:
1. pc(PC端流量)
2. mobile(移动端流量)
3. ott(OTT/智能电视流量)
💡 说明:
- PC端需要额外指定cookieType(mzuid/muid)
- 移动端和OTT端无需额外参数
您的选择:[等待用户输入]
参数4:性别定向(gender)
text
请选择目标性别:
1. male(男性)
2. female(女性)
3. all(不限)
您的选择:[等待用户输入]
参数5:年龄定向(age)
text
请选择目标年龄段(可多选,用逗号分隔):
- 15-17(15-17岁)
- 18-19(18-19岁)
- 20-24(20-24岁)
- 18-24(18-24岁,自动转换为18-19+20-24)
- 25-29(25-29岁)
- 30-34(30-34岁)
- 25-34(25-34岁,自动转换为25-29+30-34)
- 35-39(35-39岁)
- 40-44(40-44岁)
- 35-44(35-44岁,自动转换为35-39+40-44)
- 45-49(45-49岁)
- 50-54(50-54岁)
- 45-54(45-54岁,自动转换为45-49+50-54)
- 55-59(55-59岁)
- 60-100(60-100岁)
- 55+(55岁以上,自动转换为55-59+60-100)
- all(全年龄)
💡 说明:
- 系统会自动将用户友好的年龄段转换为API所需的枚举值
- 例如:输入"18-24"会自动转换为"18-19"和"20-24"两个枚举值
- 支持多个年龄段组合,用逗号分隔
示例:18-24,25-34
您的选择:[等待用户输入]
参数6:是否使用人群包定向(isTag)
text
您是否需要使用自定义人群包进行精准定向?
1. 是(使用人群包,需要提供人群ID和名称)
2. 否(仅使用性别、年龄等基础定向)
💡 说明:
- 选择"是"可以使用DMP圈选的精准人群包
- 选择"否"仅使用性别、年龄等基础定向条件
您的选择:[等待用户输入]
参数7:人群包列表(audiences,当isTag=true时必填)
text
请提供要投放的人群包信息:
格式:人群ID,人群名称(多个人群用分号分隔)
示例:123456,美妆女性人群;789012,高消费人群
您的人群包:[等待用户输入]
第五步:参数格式校验 [必须执行]
系统会检查参数格式是否正确:
格式错误时会提示正确格式示例。
第六步:参数确认 [必须执行]
⚠️ 这是强制性步骤,绝对不能跳过!
必须执行的完整确认流程:
参数确认表格格式:
text
📋 投放订单参数确认
| 参数名称 | 参数值 |
|----------|--------|
| 订单名称 | 美妆女性精准投放 |
| 开始日期 | 2026-06-10 |
| 结束日期 | 2026-06-20 |
| 流量类型 | mobile(移动端) |
| 性别定向 | female(女性) |
| 年龄定向 | 25-34,35-44 |
| 使用人群包 | 是 |
| 人群包列表 | 123456-美妆女性人群 |
⚠ 请仔细核对以上参数,确认无误后订单将立即创建。
是否确认创建投放订单?
请回复:确认 / 取消 / 修改
第七步:执行创建 [必须执行]
⚠️ 前置条件:必须在用户明确确认后才能执行
执行流程:
第八步:任务记录检查 [⚠️ 禁止跳过]
⚠️ 严重警告:
必须执行的完整检查流程:
检查skill-logger技能是否已安装 text
检查路径:~/.skills/skill-logger/ 或通过技能列表查询
如果已安装 → 自动调用记录功能,保存任务信息, 并向用户展示记录结果
text
✅ 任务记录技能已安装
✅ 任务已自动记录到历史
- 任务ID:RTQ投放订单_20260605090454
- 存储路径:/home/sandbox/.skill-logger/task_history.json
如果未安装 → 必须询问用户,不能直接跳过 text
💡 检测到您尚未安装【任务记录技能】
该技能可以自动记录您的所有投放订单任务,方便后续查询和管理。
功能包括:
是否需要自动下载并安装任务记录技能?
请回复:是/否
4. **等待用户明确回复**
- **用户回复"是"**:
- 使用 terminal 工具执行: `openclaw skills install skill-logger`
- 等待命令执行完成
- **安装成功**:提示 `✅ 任务记录技能安装成功` → 继续第九步(记录任务)
- **安装失败**:展示以下内容,等待用户选择:
text
```
❌ 任务记录技能自动安装失败
请选择处理方式:
A. 手动安装 - 前往 ClawHub 安装后告诉我"已安装完成":
👉 https://clawhub.ai/mingri26/dmp-skill-logger
步骤:① 打开链接 → ② 点击「Download」→ ③ 回复"已安装完成"
B. 跳过安装 - 本次不记录任务历史,直接进入下一步
请回复:A/B
```
- 用户回复 **A**:等待用户确认安装完成 → 继续第九步(记录任务)→ 进入第十步
- 用户回复 **B**:提示 `已跳过任务记录` → 直接进入第十步
- **用户回复"否"**:
- 提示: `已跳过任务记录,不影响主流程。`
- 直接进入第十步
**第九步:记录任务** \[条件执行\]
如果用户选择安装任务记录技能,则执行任务记录:
- 任务类型:RTQ投放订单创建
- 订单ID:从API返回结果中获取
- 订单名称:用户提供的订单名称
- 创建时间:当前时间
- 投放时间:开始日期至结束日期
- 人群包:人群ID和人群名称
- 定向条件:性别、年龄等
**第十步:结果展示** \[必须执行\]
**成功时:**
展示订单创建成功信息:
text
✅ 投放订单创建成功!
📋 订单信息:
📊 投放配置:
💡 后续操作建议:
投放订单创建成功后,您可以进行以下操作:
查询订单状态
修改订单参数
下载人群洞察技能
下载人群圈选技能
**失败时:**
展示错误详情、可能原因、解决方案
## 技能依赖说明
本技能需要配合鉴权技能使用,以确保功能完整性和操作可追溯性:
### 1\. 鉴权技能(mingdata-dmp-auth)
**作用:** 管理明日DMP API的访问凭证(Access Key和Secret Key)
**调用时机:**
- 首次使用本技能时
- 凭证过期或失效时
- 任何需要调用明日DMP API的操作前
**是否必需:** ✅ 必需(不安装无法使用投放功能)
### 2\. 任务记录技能(skill-logger)
**作用:** 自动记录所有投放订单的创建记录、参数配置和执行结果
**调用时机:**
- 每次成功创建投放订单后
- 用于后续查询历史任务、追溯操作记录
**是否必需:** ⭕ 可选(不安装不影响投放功能,但无法记录任务历史)
## 支持的功能
### 1\. RTQ投放订单创建
**功能说明:** 创建RTQ投放订单,支持人群包定向和属性定向
**适用场景:** 精准广告投放、人群包投放、属性定向投放
**必填参数:** 订单名称、投放时间、流量类型、性别定向、年龄定向、是否使用人群包
**示例:** "创建投放订单,投放人群125621到移动端,目标女性用户,年龄25-44岁,投放时间6月1日到6月3日"
### 2\. RTQ投放订单查询
**功能说明:** 查询已创建的投放订单详情
**适用场景:** 查看订单状态、投放进度
**必填参数:** 订单ID(可选)、订单名称(可选)、订单状态(可选)
**示例:** "查询投放订单30000933"
### 3\. RTQ投放订单修改(智能参数引导)
**功能说明:** 修改已创建的投放订单参数,支持智能参数引导和强制确认流程
**适用场景:** 调整投放时间、人群包、定向条件
**✨ 智能参数引导特性:**
本技能支持两种修改模式,根据订单来源自动选择:
**模式A:智能修改(本技能创建的订单)**
- ✅ 自动从本地缓存读取订单的完整参数
- ✅ 用户只需提供要修改的参数(如订单名称)
- ✅ 其他参数自动保持不变
- ✅ 体验流畅,无需重复输入
**模式B:完整参数引导(其他来源的订单)**
- ⚠️ 由于无法查询订单详情,需要用户提供完整参数
- ✅ 逐步引导用户提供必需参数
- ✅ 每个参数都有清晰的说明和选项
- ✅ 避免一次性要求太多参数
**⚠️ 强制确认机制:**
- 修改前必须展示参数确认表格
- 必须等待用户明确回复"确认"、"是"、"可以"等确认词
- 用户回复"取消"或"修改"则不执行修改操作
- **禁止在未经用户确认的情况下自动执行修改**
**修改流程(智能引导流程):**
1. **识别修改请求** \- 检测到"修改订单"关键词和订单ID
2. **检查订单缓存** \- 自动检查本地是否有该订单的缓存
- ✅ 找到缓存 → 进入 **智能修改模式**(只需提供要修改的参数)
- ⚠️ 未找到缓存 → 进入 **完整参数引导模式**(需要提供所有参数)
3. **参数收集**
**智能修改模式(找到缓存):**
- 展示订单当前参数
- 询问用户要修改哪些参数
- 用户只需提供要修改的参数(如订单名称)
- 其他参数自动从缓存读取
**完整参数引导模式(未找到缓存):**
- 逐步询问用户提供必需参数:
- 订单名称
- 投放时间(开始日期、结束日期)
- 流量类型(mobile/pc/ott)
- 性别定向(male/female/all)
- 年龄定向(18-24, 25-34, 35-44, 45-54, 55+)
- 是否使用人群包(true/false)
- 人群包信息(当isTag=true时)
- Cookie类型(当flowType=pc时)
4. **参数确认** \- 展示完整的参数确认表格:
text
📋 修改订单参数确认
| 参数名称 | 参数值 |
|---|---|
| 订单ID | 30003269 |
| 订单名称 | 女性美妆投放 |
| 开始日期 | 2026-06-15 |
| 结束日期 | 2026-06-25 |
| 性别定向 | 女性 |
| 年龄定向 | 25-34岁, 35-44岁 |
⚠ 请仔细核对以上参数,确认无误后订单将立即修改。
是否确认修改订单? 请回复:确认 / 取消 / 修改
5. **等待用户确认** \- 必须等待用户明确回复:
- 用户回复"确认"、"是"、"可以" → 执行修改
- 用户回复"取消"、"修改" → 取消操作,不执行修改
- 用户回复其他内容 → 提示"无效输入,请回复:确认 / 取消 / 修改"
6. **执行修改** \- 仅在用户明确确认后调用API修改订单
7. **更新缓存** \- 修改成功后自动更新本地缓存,方便下次修改
**示例对话A:智能修改模式(本技能创建的订单)**
text
用户:"修改订单30003269的名称为'测试数据'"
AI:"✅ 找到订单30003269的缓存信息
📋 当前订单参数:
📋 修改订单参数确认
| 参数名称 | 参数值 |
|---|---|
| 订单ID | 30003269 |
| 订单名称 | 测试数据 |
| 开始日期 | 2026-06-15 |
| 结束日期 | 2026-06-25 |
| 流量类型 | mobile |
| 性别定向 | 不限 |
| 年龄定向 | 25-34, 35-44 |
是否确认修改订单? 请回复:确认 / 取消 / 修改"
用户:"确认"
AI:"✅ 订单修改成功! 订单ID: 30003269 订单名称: 测试数据 投放时间: 2026-06-15 至 2026-06-25"
**示例对话B:完整参数引导模式(其他来源的订单)**
text
用户:"修改订单30000700的名称"
AI:"⚠️ 未找到订单30000700的缓存信息
由于无法查询到订单的完整参数,需要您提供以下信息:
请提供新的订单名称:"
用户:"新订单名称"
AI:"好的,订单名称将修改为:新订单名称
请提供投放时间:
用户:"2026-06-10 到 2026-06-20"
AI:"好的,投放时间:2026-06-10 至 2026-06-20
请选择流量类型:
您的选择:"
用户:"1"
AI:"好的,流量类型:移动端
请选择性别定向:
您的选择:"
用户:"3"
AI:"好的,性别定向:不限
请选择年龄定向(可多选,用逗号分隔):
您的选择:"
用户:"25-34,35-44"
AI:"好的,年龄定向:25-34岁, 35-44岁
是否使用人群包?
您的选择:"
用户:"2"
AI:"好的,不使用人群包
📋 修改订单参数确认
| 参数名称 | 参数值 |
|---|---|
| 订单ID | 30000700 |
| 订单名称 | 新订单名称 |
| 开始日期 | 2026-06-10 |
| 结束日期 | 2026-06-20 |
| 流量类型 | mobile |
| 性别定向 | 不限 |
| 年龄定向 | 25-34, 35-44 |
| 使用人群包 | 否 |
是否确认修改订单? 请回复:确认 / 取消 / 修改"
用户:"确认"
AI:"✅ 订单修改成功!"
**示例对话:**
用户:"修改订单30003269的名称"
AI:"好的,您想将订单30003269的名称修改为什么?"
用户:"改为女性美妆投放"
AI:展示参数确认表格,等待用户确认
用户:"确认"
AI:执行修改操作
## 参数格式要求
### RTQ投放订单参数
参数名称格式要求验证规则订单名称字符串≤100字符投放时间YYYY-MM-DD有效日期格式,结束日期≥开始日期流量类型枚举值pc/mobile/ott性别枚举值male/female/all年龄数组有效年龄段(18-24,25-34,35-44,45-54,55+)Cookie类型枚举值mzuid/muid(flowType=pc时必填)人群包JSON数组有效JSON格式,包含audienceId和audienceName
## 常见问题
### Q: 凭证过期了怎么办?
A: 系统会自动调用鉴权技能引导您重新配置凭证。
### Q: 创建订单后多久能生效?
A: RTQ投放订单创建成功后立即生效,您可以通过查询订单状态功能查看详情。
### Q: 如何知道订单创建是否成功?
A: 订单创建成功后会返回订单ID和订单状态,您可以使用查询订单状态功能查看详情。
### Q: 参数填错了怎么办?
A: 在参数确认表格展示后,您可以回复"取消"来取消本次操作,然后重新提出需求。
### Q: 系统如何识别我的需求类型?
A: 系统会自动分析您的请求内容:
- 包含"有哪些功能"、"能做什么" → 技能咨询
- 包含"查询订单" \+ 订单ID → 查询订单状态
- 包含"修改订单" \+ 订单ID → 修改订单
- 包含"投放"、"订单"、"RTQ" → 创建投放订单
## 技术说明
本技能通过Python脚本调用明日DMP开放平台API,所有脚本位于 `scripts/` 目录:
**凭证管理:**
- scripts/setup\_credentials.py - 凭证配置
**投放订单:**
- scripts/create\_rtq\_deal.py - 创建RTQ投放订单
- scripts/query\_rtq\_deal.py - 查询投放订单
- scripts/modify\_rtq\_deal.py - 修改投放订单