SuperAPI AI 工具集

ae-generate-tracking-code

编程与开发

查看项目

更新于 10-15 15:35

技能介绍

用途

本技能用于从埋点方案(Tracking Plan)交互式生成 AE 埋点代码、LogBus2 配置和调试脚本。当用户提出“生成埋点代码 / 帮我加 Web 埋点 / 生成 logbus 配置 / 服务端上报代码”等需求时触发。支持多平台,且每个平台可独立选择输出方式。

主要能力

  • 从本地 .ae-cli/draft.json 或通过 ae-cli tracking plan fetch 从 AE 拉取埋点方案。
  • 从 xlsx 模板导入方案:ae-cli tracking code import-template --template <xlsx-path> --out .ae-cli/draft.json,可解析事件、事件属性、公共属性、用户属性,并从“Platform”列推断 sdk_integration_mode。
  • 生成客户端代码(Android、iOS、OpenHarmony、Web/H5、小程序、小游戏、Unity、Cocos/Laya 等游戏引擎、React Native/Flutter/uni-app 等)。
  • 生成服务端代码(Java、Python、Go、Node.js、PHP、C#/.NET 等)。
  • 服务端默认生成 LoggerConsumer 代码与 LogBus2 配置文件 .ae-cli/output/daemon.json。
  • 可单独生成 debug 校验脚本(测试上报代码)。
  • 支持通过 ae-cli tracking debug-device 与 ae-cli tracking debug-data 完成 Debug 验证。

使用方式

流程分为多个阶段:

  1. Phase 0 — 锚定配置:先读取 .ae-cli/draft.json 中已有配置,逐项确认或询问 project_id、host、SERVER_URL、APP_ID、SDK 集成模式、客户端平台、服务端语言、用户体系。注意 project_id ≠ APP_ID,host ≠ SERVER_URL,即使已有 project_id 和 host,仍需单独解析并确认 SERVER_URL 与 APP_ID。APP_ID 优先通过 ae-cli project info list 自动查找;SERVER_URL 可尝试 ae-cli project info get --project-id <project_id>,若返回包含 serverUrl、pushUrl、receiverUrl、publicUrl、publicReceiverAddress 等字段则采用,同时存在 publicReceiverAddress 与 privateReceiverAddress 时优先使用 publicReceiverAddress。
  2. Phase 1 — 加载方案:执行 ae-cli auth login --host <host>、ae-cli auth status、ae-cli tracking plan fetch --project <projectId> --host <host> > .ae-cli/remote-plan.json,读取 sdk_integration_mode、client_sdk_type、server_language、user_identity、user_properties 等,确定需生成代码的平台列表。
  3. Phase 2 — 选择输出模式:提供“一键生成”(全部使用 snippet,输出到 .ae-cli/output/)或“插入项目”(各平台独立选择 insert/snippet,insert 需提供绝对路径)。

SDK 文档路径需先读取 references/sdk-index.md,若本地 wiki 镜像中不存在,则在 ~/.ae-cli/wiki/raw/ 下按 SDK 关键词搜索最新主文档。

适用场景

  • 已有埋点方案,需要落地为各端 SDK 初始化与 track() 调用代码。
  • 需要同时生成客户端与服务端埋点代码。
  • 需要生成 LogBus2 的 daemon.json 配置。
  • 需要生成用于验证埋点是否生效的调试脚本。

限制

  • 若本地既无 .ae-cli/draft.json 也无 .ae-cli/remote-plan.json,需先获取或生成埋点方案,否则中止并建议先运行 ae-generate-tracking-plan。
  • xlsx 无法推断 client_platforms、client_platform_languages、server_language、user_identity、host/project_id,这些需询问用户。
  • “Public URL”仅在之前填写过时才显示,若为空需向运维询问或使用占位符。
  • 输出语言跟随用户输入语言;文档链接对中文用户使用 lan=zh-CN,其他用户使用 lan=en-US。
  • 具体收费、价格、平台支持范围等资料未提供。