用途
本技能用于从埋点方案(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 验证。
使用方式
流程分为多个阶段:
- 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。 - 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 等,确定需生成代码的平台列表。 - 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。
- 具体收费、价格、平台支持范围等资料未提供。