TRACKS_API.md 3.5 KB

监测链接接口说明(含 admin 鉴权)

业务场景

  • 为第三方提供优惠券/活动链接,对曝光(expose)与点击(click)进行监测。
  • 监测数据以多维度(平台 / 场景 / 场景+唯一ID)写入 Redis,并定时落库到 track_daily_report,可与 push_data_report 汇总分析。
  • 触发接口高频,默认只触达 Redis;首次访问会通过缓存判断并自动补全 track_links 记录。

名词与存储

  • track_links:监测链接配置表(event_type, typename(平台,来源 platformOptions), scene, unique_id, path, description)。
  • track_daily_report:日聚合表(event_count, track_link_id 等)。
  • Redis 缓存键:
    • 链接缓存::tracks:link:{eventType}:{platform}:{scene}:{uniqueId}(30 天)。
    • 事件计数(日维)::tracks:daily:{eventType}:{platform}:{scene}:{uniqueId}:{yyyyMMdd}
    • 事件计数(时维)::tracks:hour:{eventType}:{platform}:{scene}:{uniqueId}:{yyyyMMddHH}
    • 索引集(枚举有数据的维度)::tracks:daily:index:{yyyyMMdd}:unique 等。
  • 维度缺省值:scene/uniqueId 为空时使用空字符串。
  • 路径模板(交付方自行补域名):/Tracks/Track?track_id={id}&eventType={eventType}

公共接口(无需鉴权)

触发监测

  • GET /Tracks/Track
  • 用途:记录曝光/点击,快速返回(fire-and-forget)。
  • 参数:
    • track_id *(必填)*:监测链接 ID
    • eventType *(必填)*:exposeclick
  • 响应:{ success: true, message: "ok" }
  • 说明:接口不会自动创建链接,必须先调用生成接口拿到 track_id

生成监测链接

  • POST /Tracks/Create
  • 参数:eventType *(必填)*,typenamesceneuniqueIddescription (可空,默认空字符串)
  • 响应:{ success: true, message: "ok", url: "/Tracks/Track?track_id={id}&eventType=..." }
  • 说明:如果已存在则复用;内部写入 track_links 与缓存。

日报落库

  • GET /Tracks/Daily
  • 参数:
    • daysAgo:默认 1(统计昨天)
    • reportDateYYYY-MM-DD,优先于 daysAgo
  • 响应:{ success: true, message: "ok", rows: <写入条数> }
  • 说明:读取 Redis 的日索引与计数,落库 track_daily_report

管理端接口(需 admin 鉴权,路径前缀 /api/TracksAdmin/*

支持查询/查看/新增/删除/报表查询。

列表

  • POST /api/TracksAdmin/list
  • Body:{ "current":1, "pageSize":10, "getTotal":true, "sort":"id", "order":"DESC|ASC|descending|ascending", "keyword":"tb" }
  • 说明:按 event_type/typename/scene/unique_id 模糊搜索。

详情

  • GET /api/TracksAdmin/info?id=123

新增

  • POST /api/TracksAdmin/create
  • Body:{ "event_type":"expose", "typename":1, "scene":"coupon", "unique_id":"u1", "description":"xxx" }
  • 说明:typename 取值来自前端 platformOptions(pushReport.vue 引用的 platformList),后台创建始终生成新链接(不复用)。

删除

  • POST /api/TracksAdmin/delete
  • Body:{ "id":123 }
  • 说明:删除 DB 记录并清理缓存 :tracks:link:{eventType}:{platform}:{scene}:{uniqueId}

报表列表

  • POST /api/TracksAdmin/report
  • Body:{ "current":1, "pageSize":10, "getTotal":true, "track_link_id":123, "event_type":"expose", "platform":"tb", "scene":"coupon", "unique_id":"u1", "start":"2024-01-01", "end":"2024-01-31" }
  • 说明:按链接/事件/平台/场景/唯一ID及日期范围筛选 track_daily_report,分页返回。