2 数据流程
sRTA 平台支持两种角色的数据上传和使用模式:
客户模式:将自有数据上传到 sRTA 平台,sRTA 在每次广告决策时通过 Lua 脚本引用客户数据,实现广告决策干预。
服务商模式:将自有数据上传到 sRTA 平台,通过授权机制授权给客户使用,帮助客户提升广告效果。
整体过程可描述为:账号申请-->数据生产-->数据写入-->脚本编写-->脚本测试-->脚本上线-->效果验证
2.1 写入流程简述
本示例演示如何通过 sRTA 平台实现根据用户设备ID的安装状态决策拉活拉新,并根据活跃用户级别调节竞争力系数。
客户拥有最为全面准确的已安装状态及价值数据,该类信息需要客户上传。
示例用户
| 用户ID | 已安装态 | 用户级别 |
|---|---|---|
| 张三 | 已安装 | 低价值 |
| 李四 | 已安装 | 中价值 |
| 王五 | 已安装 | 高价值 |
| 其他 | 未安装 | -- |
策略: acitve=拉活,new=拉新
逻辑:
- 拉活广告:未安装用户不出。低价值用户降权、中等价值用户维持、高价值用户提权。无价值分数用户以不调节作为兜底。
- 拉新广告:未安装可出。
数据准备:准备 JSONL 数据文件
数据定义规划
- 数据空间(DS):
did - 字节1:已安装态(
0=未安装/未知,1=已安装) - 字节2:用户级别(
1=低价值、2=中等价值、3=高价值、0=未知)
由客户规划各编号字段所指代的意义,生产 users.jsonl 文件,每行包含一个用户的数据:
例如下面将 U8区第1字节作为已安装态,第2字节作为用户级别
{"userid":"张三","bytesKv":{"1":1,"2":1}}
{"userid":"李四","bytesKv":{"1":1,"2":2}}
{"userid":"王五","bytesKv":{"1":1,"2":3}}
数据格式说明
userid:设备号(MD5值小写)bytesKv:字节数据映射表(key为字节索引1-64,value为字节值0-255){"1":1,"2":1}:字节索引1=1(已安装),字节索引2=1(低价值){"1":1,"2":2}:字节索引1=1(已安装),字节索引2=2(中等价值){"1":1,"2":3}:字节索引1=1(已安装),字节索引2=3(高价值)
数据准备:通过 saastool 写入服务端
使用命令行工具将数据写入 sRTA 平台:
write 功能用于少量数据写入,如需大量数据写入,请使用 saastool task 能力。
saastool write -ds did -source ./users.jsonl
输出示例
写入成功时,命令会显示处理进度和统计信息:
[./users.jsonl] err_batch = 0, err_total = 0, total_processed = 3
err_batch: 当前批次写入失败的记录数err_total: 累计写入失败的记录数total_processed: 已处理的记录总数
如果有用户写入失败,失败的用户ID会被记录到 WriteRes.failedUserid 字段中
数据准备:DS 中的数据存储
写入成功后,数据在 Redis 中的存储格式为字节数据。sRTA lua在查询时会自动取出当前用户下的数据转换为 dataspace Table变量 供 Lua 脚本使用:
"张三" = {[srta.U8] = {[1] = 1, [2] = 1}} --字节索引1=1 (已安装),字节索引2=1(低价值)
"李四" = {[srta.U8] = {[1] = 1, [2] = 2}} --字节索引1=1(已安装),字节索引2=2(中价值)
"王五" = {[srta.U8] = {[1] = 1, [2] = 3}} --字节索引1=1(已安装),字节索引2=3(高价值)