ae-tracking 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/README.md +50 -0
- package/dist/bin/ae-tracking.d.ts +2 -0
- package/dist/bin/ae-tracking.js +20 -0
- package/dist/scripts/postinstall.d.ts +1 -0
- package/dist/scripts/postinstall.js +17 -0
- package/dist/src/auth.d.ts +12 -0
- package/dist/src/auth.js +215 -0
- package/dist/src/cli/auth.d.ts +8 -0
- package/dist/src/cli/auth.js +81 -0
- package/dist/src/cli/code.d.ts +2 -0
- package/dist/src/cli/code.js +85 -0
- package/dist/src/cli/debug.d.ts +2 -0
- package/dist/src/cli/debug.js +152 -0
- package/dist/src/cli/home.d.ts +4 -0
- package/dist/src/cli/home.js +15 -0
- package/dist/src/cli/init.d.ts +14 -0
- package/dist/src/cli/init.js +107 -0
- package/dist/src/cli/package-root.d.ts +1 -0
- package/dist/src/cli/package-root.js +20 -0
- package/dist/src/cli/plan.d.ts +2 -0
- package/dist/src/cli/plan.js +242 -0
- package/dist/src/cli/wiki.d.ts +2 -0
- package/dist/src/cli/wiki.js +20 -0
- package/dist/src/client.d.ts +62 -0
- package/dist/src/client.js +56 -0
- package/dist/src/config.d.ts +4 -0
- package/dist/src/config.js +29 -0
- package/dist/src/plan/autotrack.d.ts +18 -0
- package/dist/src/plan/autotrack.js +350 -0
- package/dist/src/plan/conflict.d.ts +34 -0
- package/dist/src/plan/conflict.js +106 -0
- package/dist/src/plan/draft.d.ts +39 -0
- package/dist/src/plan/draft.js +104 -0
- package/dist/src/plan/fix.d.ts +32 -0
- package/dist/src/plan/fix.js +187 -0
- package/dist/src/plan/types.d.ts +57 -0
- package/dist/src/plan/types.js +1 -0
- package/dist/src/project-detect/detect.d.ts +2 -0
- package/dist/src/project-detect/detect.js +120 -0
- package/dist/src/project-detect/types.d.ts +9 -0
- package/dist/src/project-detect/types.js +1 -0
- package/dist/src/te-debug/client.d.ts +12 -0
- package/dist/src/te-debug/client.js +54 -0
- package/dist/src/te-debug/types.d.ts +16 -0
- package/dist/src/te-debug/types.js +1 -0
- package/dist/src/te-plan/fetch.d.ts +3 -0
- package/dist/src/te-plan/fetch.js +47 -0
- package/dist/src/te-plan/types.d.ts +7 -0
- package/dist/src/te-plan/types.js +1 -0
- package/dist/src/wiki/block-to-md.d.ts +74 -0
- package/dist/src/wiki/block-to-md.js +88 -0
- package/dist/src/wiki/crawler.d.ts +3 -0
- package/dist/src/wiki/crawler.js +71 -0
- package/dist/src/wiki/index-writer.d.ts +4 -0
- package/dist/src/wiki/index-writer.js +70 -0
- package/dist/src/wiki/slugify.d.ts +1 -0
- package/dist/src/wiki/slugify.js +11 -0
- package/dist/src/wiki/types.d.ts +29 -0
- package/dist/src/wiki/types.js +1 -0
- package/dist/src/wiki-query/query.d.ts +8 -0
- package/dist/src/wiki-query/query.js +32 -0
- package/dist/src/xlsx/read.d.ts +2 -0
- package/dist/src/xlsx/read.js +457 -0
- package/dist/src/xlsx/write.d.ts +3 -0
- package/dist/src/xlsx/write.js +251 -0
- package/package.json +47 -0
- package/skills/generate-tracking-code/SKILL.md +551 -0
- package/skills/generate-tracking-code/references/client-sdk-insert.md +92 -0
- package/skills/generate-tracking-code/references/datax-config.md +41 -0
- package/skills/generate-tracking-code/references/debug-script.md +99 -0
- package/skills/generate-tracking-code/references/logbus-config.md +224 -0
- package/skills/generate-tracking-code/references/modes.md +81 -0
- package/skills/generate-tracking-code/references/restful-call.md +34 -0
- package/skills/generate-tracking-code/references/sdk-index.md +123 -0
- package/skills/generate-tracking-code/references/server-sdk-insert.md +175 -0
- package/skills/generate-tracking-code/references/snippet-delivery.md +240 -0
- package/skills/generate-tracking-code/references/te-api.md +181 -0
- package/skills/generate-tracking-plan/SKILL.md +826 -0
- package/skills/generate-tracking-plan/references/autotrack-events.md +238 -0
- package/skills/generate-tracking-plan/references/te-api.md +97 -0
- package/skills/generate-tracking-plan/references/xlsx-schema.md +149 -0
- package/skills/te-wiki-synthesize/SKILL.md +142 -0
- package/wiki/te-docs/index.md +223 -0
- package/wiki/te-docs/log.md +28 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234//346/225/260/346/215/256/350/247/204/345/210/231.md +379 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234//347/224/250/346/210/267/350/257/206/345/210/253/350/247/204/345/210/231.md +461 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234//351/242/204/347/275/256/345/261/236/346/200/247/344/270/216/347/263/273/347/273/237/345/255/227/346/256/265.md +634 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/345/211/215/345/207/206/345/244/207/345/267/245/344/275/234.md +190 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227/restful-api-/344/275/277/347/224/250/346/214/207/345/215/227.md +195 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227/sdk-information-collection-rules.md +63 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/205/263/344/272/216-gdpr.md +81 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//346/233/264/346/226/260/346/227/245/345/277/227.md +502 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +367 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +117 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +96 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +947 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +686 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android//350/277/233/351/230/266/346/214/207/345/215/227.md +1126 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/android.md +461 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227-RCu1wk.md +64 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227.md +167 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225-T57MwB.md +56 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +57 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227-JARDwp.md +455 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227.md +477 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c-Uicgw2.md +145 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/c.md +253 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/h5-/344/270/216-app-sdk-/346/211/223/351/200/232.md +179 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//346/233/264/346/226/260/346/227/245/345/277/227.md +491 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +154 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +148 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +92 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +479 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +587 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//350/277/233/351/230/266/346/214/207/345/215/227.md +912 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios//351/232/220/347/247/201/346/270/205/345/215/225.md +183 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/ios.md +397 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//345/220/210/350/247/204/346/214/207/345/215/227.md +39 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//346/233/264/346/226/260/346/227/245/345/277/227.md +239 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +55 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +113 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +267 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript//350/277/233/351/230/266/346/214/207/345/215/227.md +455 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/javascript.md +257 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +77 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +249 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos//350/277/233/351/230/266/346/214/207/345/215/227.md +738 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/macos.md +317 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//345/220/210/350/247/204/346/214/207/345/215/227.md +345 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//346/233/264/346/226/260/346/227/245/345/277/227.md +128 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +121 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +286 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227.md +408 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +209 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/256/242/346/210/267/347/253/257-sdk-/345/270/270/350/247/201/351/227/256/351/242/230.md +72 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//345/220/210/350/247/204/346/214/207/345/215/227.md +56 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//346/233/264/346/226/260/346/227/245/345/277/227.md +313 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +78 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +58 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +192 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +301 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227.md +644 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217.md +440 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//345/220/210/350/247/204/346/214/207/345/215/227.md +35 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//346/233/264/346/226/260/346/227/245/345/277/227.md +49 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +32 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +65 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227.md +288 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua.md +236 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//346/233/264/346/226/260/346/227/245/345/277/227.md +122 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +27 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +177 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x//350/277/233/351/230/266/346/214/207/345/215/227.md +368 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-x.md +311 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//345/220/210/350/247/204/346/214/207/345/215/227.md +42 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//346/233/264/346/226/260/346/227/245/345/277/227.md +184 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +142 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +96 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +255 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator//350/277/233/351/230/266/346/214/207/345/215/227.md +659 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocoscreator.md +213 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//345/220/210/350/247/204/346/214/207/345/215/227.md +39 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//346/233/264/346/226/260/346/227/245/345/277/227.md +42 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +59 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +50 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona//350/277/233/351/230/266/346/214/207/345/215/227.md +281 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/corona.md +304 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//346/233/264/346/226/260/346/227/245/345/277/227.md +129 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +74 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +74 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +228 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227.md +640 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret.md +210 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//346/233/264/346/226/260/346/227/245/345/277/227.md +129 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +79 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +73 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +254 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227.md +626 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair.md +228 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//345/216/206/345/217/262/347/211/210/346/234/254-unity-sdk-/344/275/277/347/224/250/346/214/207/345/215/227.md +503 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//346/233/264/346/226/260/346/227/245/345/277/227.md +505 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +86 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//345/216/237/347/224/237-sdk-/345/217/257/346/217/222/346/213/224.md +44 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +55 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +156 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +293 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity//350/277/233/351/230/266/346/214/207/345/215/227.md +667 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unity.md +203 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//345/220/210/350/247/204/346/214/207/345/215/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//346/233/264/346/226/260/346/227/245/345/277/227.md +209 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//344/270/211/346/226/271/346/225/260/346/215/256.md +152 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +41 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +81 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +181 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal//350/277/233/351/230/266/346/214/207/345/215/227.md +346 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/unreal.md +228 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216.md +20 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//346/233/264/346/226/260/346/227/245/345/277/227.md +201 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +139 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +65 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter//350/277/233/351/230/266/346/214/207/345/215/227.md +356 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/flutter.md +176 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//346/233/264/346/226/260/346/227/245/345/277/227.md +162 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +60 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +140 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +23 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native//350/277/233/351/230/266/346/214/207/345/215/227.md +375 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/react-native.md +176 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//346/233/264/346/226/260/346/227/245/345/277/227.md +34 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +96 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +48 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +57 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +68 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +249 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app//350/277/233/351/230/266/346/214/207/345/215/227.md +420 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266/uni-app.md +193 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk//350/267/250/345/271/263/345/217/260/346/241/206/346/236/266.md +15 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//345/256/242/346/210/267/347/253/257-sdk.md +35 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245/filebeat-logstash-/344/275/277/347/224/250/346/214/207/345/215/227.md +638 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245/logbus2-/344/275/277/347/224/250/346/214/207/345/215/227.md +1140 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245/ta-datax-writer-/346/217/222/344/273/266/344/275/277/347/224/250/346/214/207/345/215/227.md +256 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/215/256/345/257/274/345/205/245.md +17 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/225/260/346/225/260/347/247/221/346/212/200sdk/351/232/220/347/247/201/345/243/260/346/230/216.md +298 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227-HZrPwz.md +80 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227-U1zKwj.md +108 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//346/233/264/346/226/260/346/227/245/345/277/227.md +114 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225-LEb9wx.md +46 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225-TfR3wg.md +46 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +93 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247-U1Qvwk.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247-X08Fw7.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227-Jc1dwk.md +245 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227-YGuuwc.md +237 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c//350/277/233/351/230/266/346/214/207/345/215/227.md +242 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c-D4KBwg.md +211 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c-HF7Dwv.md +169 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/c.md +225 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//346/233/264/346/226/260/346/227/245/345/277/227.md +55 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +51 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang//350/277/233/351/230/266/346/214/207/345/215/227.md +151 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/erlang.md +204 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//346/233/264/346/226/260/346/227/245/345/277/227.md +135 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +46 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang//350/277/233/351/230/266/346/214/207/345/215/227.md +208 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/golang.md +193 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//346/233/264/346/226/260/346/227/245/345/277/227.md +138 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +52 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java//350/277/233/351/230/266/346/214/207/345/215/227.md +289 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/java.md +214 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//346/233/264/346/226/260/346/227/245/345/277/227.md +123 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +57 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua//350/277/233/351/230/266/346/214/207/345/215/227.md +234 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/lua.md +165 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//346/233/264/346/226/260/346/227/245/345/277/227.md +89 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +65 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs//350/277/233/351/230/266/346/214/207/345/215/227.md +263 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/nodejs.md +161 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//346/233/264/346/226/260/346/227/245/345/277/227.md +86 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php//350/277/233/351/230/266/346/214/207/345/215/227.md +269 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/php.md +206 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//346/233/264/346/226/260/346/227/245/345/277/227.md +155 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +47 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python//350/277/233/351/230/266/346/214/207/345/215/227.md +274 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/python.md +162 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//346/233/264/346/226/260/346/227/245/345/277/227.md +53 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +50 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +75 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby//350/277/233/351/230/266/346/214/207/345/215/227.md +226 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk/ruby.md +165 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227//346/234/215/345/212/241/347/253/257-sdk.md +23 -0
- package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227.md +64 -0
- package/wiki/te-docs/raw//350/277/233/351/230/266/346/225/260/346/215/256/347/261/273/345/236/213//345/217/257/346/233/264/346/226/260/344/272/213/344/273/266.md +109 -0
- package/wiki/te-docs/raw//350/277/233/351/230/266/346/225/260/346/215/256/347/261/273/345/236/213//351/246/226/346/254/241/344/272/213/344/273/266/346/240/241/351/252/214.md +88 -0
- package/wiki/te-docs/raw//350/277/233/351/230/266/346/225/260/346/215/256/347/261/273/345/236/213.md +22 -0
- package/wiki/te-docs/schema.md +17 -0
- package/wiki/te-docs/synthesis/batch-ingest-comparison.md +117 -0
- package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +136 -0
- package/wiki/te-docs/synthesis/restful-api-reference.md +142 -0
- package/wiki/te-docs/synthesis/sdk-selection.md +79 -0
- package/wiki/te-docs/synthesis/server-sdk-overview.md +124 -0
|
@@ -0,0 +1,826 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generate-tracking-plan
|
|
3
|
+
description: 交互式生成 AE 埋点方案并上传。触发词:埋点方案、埋点模板、tracking plan、AE 方案生成。走 anchor → draft → refine → token → upload 五阶段,产物是 AE 后台里真实创建好的埋点方案。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# generate-tracking-plan
|
|
7
|
+
|
|
8
|
+
## 何时触发
|
|
9
|
+
|
|
10
|
+
用户提到"埋点方案 / 埋点模板 / tracking plan / AE 方案 / 帮我建埋点"等意图时触发。
|
|
11
|
+
应用类型覆盖 H5 / Web / iOS / Android / 小程序 / Unity。进入本 skill 后严格按
|
|
12
|
+
Phase 0 → 1 → 2 → 3 → 4 推进,不得跳步。
|
|
13
|
+
|
|
14
|
+
> Phase 1 / 3 / 4 通过 `ae-tracking` CLI 执行(`ae-tracking plan draft`
|
|
15
|
+
> / `ae-tracking auth` / `ae-tracking plan upload` / `ae-tracking plan delete`)。
|
|
16
|
+
> 本 skill 只关心命令行为,不关心内部实现。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Phase 0 — Anchor(每个问题单独一条消息)
|
|
21
|
+
|
|
22
|
+
依次收集以下 **5 项**,**不得一次问完**:
|
|
23
|
+
|
|
24
|
+
### 第 1 项 — 应用业务场景(多轮对话)
|
|
25
|
+
|
|
26
|
+
#### 1.1 应用概述
|
|
27
|
+
|
|
28
|
+
问:**"应用业务场景是什么?一句话概括,比如:电商网站,用户可以浏览商品和下单购买"**
|
|
29
|
+
|
|
30
|
+
用户回答后,记录到 `meta.scenario`,并生成 `meta.plan_name`(方案名称)。
|
|
31
|
+
|
|
32
|
+
#### 1.2 应用详情
|
|
33
|
+
|
|
34
|
+
问:**"选择素材来源,最多选 2 项:"**
|
|
35
|
+
|
|
36
|
+
用户可多选(最多 2 项),选项如下:
|
|
37
|
+
|
|
38
|
+
1. **产品文档**(本地路径或 URL)— 从产品文档抽取事件和属性
|
|
39
|
+
2. **详细描述**(对话形式)— 描述应用业务流程、核心功能、用户行为、盈利模式等
|
|
40
|
+
3. **工程代码**(本地目录路径)— 分析源码提取事件和属性
|
|
41
|
+
4. **预置模板**(游戏(MMO,SLG,卡牌,塔防,棋牌,休闲养成)/电商/阅读/社交/短剧)— 选择内置模板
|
|
42
|
+
5. **应用官网**(URL)— 抓取官网内容了解产品功能和业务
|
|
43
|
+
|
|
44
|
+
根据用户选择判定素材来源并记录到 `meta.source_type`:
|
|
45
|
+
|
|
46
|
+
| 选择 | source_type | 处理方式 |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| 仅产品文档 | `prd` | 读产品文档,抽取事件和属性 |
|
|
49
|
+
| 仅详细描述 | `chat` | 根据描述在 Draft 阶段构造事件 |
|
|
50
|
+
| 仅工程代码 | `codebase` | 扫描源码,从业务逻辑提取事件和属性 |
|
|
51
|
+
| 仅预置模板 | `template` | 提供内置模板选择 |
|
|
52
|
+
| 仅应用官网 | `website` | 抓取官网页面,抽取产品功能描述 |
|
|
53
|
+
| 任意两项组合 | 用 `_` 连接两项 type | 第一项为 baseline,第二项补充(优先级:template → codebase → prd → website → chat) |
|
|
54
|
+
|
|
55
|
+
**追问**(按选择顺序逐一追问):
|
|
56
|
+
- 产品文档 → 问 **"产品文档路径是什么?(本地路径或 URL)"**
|
|
57
|
+
- 详细描述 → 如果描述过于简单,追问核心功能、用户行为、业务流程、盈利模式
|
|
58
|
+
- 工程代码 → 问 **"工程目录路径是什么?"**,然后扫描源码提取业务逻辑
|
|
59
|
+
- 预置模板 → 展示匹配的模板内容让用户确认
|
|
60
|
+
- 应用官网 → 问 **"应用官网 URL 是什么?"**
|
|
61
|
+
|
|
62
|
+
**工程代码分析流程(source_type 含 `codebase` 时)**:
|
|
63
|
+
|
|
64
|
+
1. 用户提供工程目录路径
|
|
65
|
+
2. 扫描目录结构,识别技术栈(引擎/框架/语言)
|
|
66
|
+
3. 读取核心业务模块(游戏逻辑、场景管理、UI 交互、状态/数据模型、网络/支付等)
|
|
67
|
+
4. 从代码中提取:
|
|
68
|
+
- **事件**:玩家交互动作(点击/滑动/触发)、场景切换、游戏状态变化(开始/暂停/结束)、业务流程节点(购买/升级/解锁)
|
|
69
|
+
- **事件属性**:动作参数(子弹类型/敌人等级/道具 ID)、状态值(分数/血量/金币)、上下文(关卡 ID/难度/模式)
|
|
70
|
+
- **用户属性**:持久状态(等级/经验/VIP/累计充值)
|
|
71
|
+
5. 将提取结果映射为 AE 呝名规则(`snake_case` 事件名 + 中文 `display_name`)
|
|
72
|
+
6. 与用户确认提取结果,补充遗漏
|
|
73
|
+
|
|
74
|
+
**应用官网分析流程(source_type 含 `website` 时)**:
|
|
75
|
+
|
|
76
|
+
1. 用户提供官网 URL
|
|
77
|
+
2. 抓取官网主要页面(首页、功能介绍、定价等)
|
|
78
|
+
3. 从页面内容提取:
|
|
79
|
+
- **产品功能列表** → 映射为核心事件
|
|
80
|
+
- **用户操作流程** → 映射为事件属性
|
|
81
|
+
- **用户身份/等级体系** → 映射为用户属性
|
|
82
|
+
4. 将提取结果映射为 AE 命名规则,与用户确认
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### 第 2 项 — 客户端 SDK 配置
|
|
87
|
+
|
|
88
|
+
问:**"应用类型和开发工具是什么?"**
|
|
89
|
+
|
|
90
|
+
> SDK 支持列表来源于 `wiki/te-docs/raw/接入指南/客户端-sdk/`,如有更新请同步修改本表。
|
|
91
|
+
|
|
92
|
+
**选项**(应用类型 - 开发工具):
|
|
93
|
+
|
|
94
|
+
- **H5/Web应用** (Vue / React / 原生JS / 其他前端框架)
|
|
95
|
+
- **手机游戏** (Android原生 / iOS原生 / Unity / CocosCreator / Cocos2d-x / LayaAir / Egret / Unreal / 其他引擎)
|
|
96
|
+
- **手机APP** (Android原生 / iOS原生 / React Native / Flutter / uni-app / OpenHarmony)
|
|
97
|
+
- **小游戏** (小游戏平台:微信 / QQ / 抖音 / 百度等)
|
|
98
|
+
- **小程序** (小程序平台:微信 / 抖音 / 支付宝 / 百度 / 钉钉 / 快手 / QQ / 京东 / 360 / 快应用等)
|
|
99
|
+
- **PC游戏** (Unreal / Unity / 其他引擎)
|
|
100
|
+
- **PC应用** (C++ / C# / MacOS原生 / 其他)
|
|
101
|
+
- **不集成客户端 SDK**
|
|
102
|
+
|
|
103
|
+
**追问**:选 `其他` 相关选项 → 问 **"请描述具体开发工具"**
|
|
104
|
+
|
|
105
|
+
**SDK 类型映射**:
|
|
106
|
+
|
|
107
|
+
| 选择 | 客户端 SDK 类型 |
|
|
108
|
+
|---|---|
|
|
109
|
+
| H5/Web应用 - * | JavaScript SDK |
|
|
110
|
+
| 手机游戏 - Android原生 | Android SDK |
|
|
111
|
+
| 手机游戏 - iOS原生 | iOS SDK |
|
|
112
|
+
| 手机游戏 - Unity | Unity SDK |
|
|
113
|
+
| 手机游戏 - CocosCreator | CocosCreator SDK |
|
|
114
|
+
| 手机游戏 - Cocos2d-x | Cocos2d-x SDK |
|
|
115
|
+
| 手机游戏 - LayaAir | LayaAir SDK |
|
|
116
|
+
| 手机游戏 - Egret | Egret SDK |
|
|
117
|
+
| 手机游戏 - Unreal | Unreal SDK |
|
|
118
|
+
| 手机APP - Android原生 | Android SDK |
|
|
119
|
+
| 手机APP - iOS原生 | iOS SDK |
|
|
120
|
+
| 手机APP - React Native | React Native SDK |
|
|
121
|
+
| 手机APP - Flutter | Flutter SDK |
|
|
122
|
+
| 手机APP - uni-app | uni-app SDK |
|
|
123
|
+
| 手机APP - OpenHarmony | OpenHarmony SDK |
|
|
124
|
+
| 小游戏 | 小游戏 SDK(统一 SDK,支持微信/QQ/抖音/百度等平台) |
|
|
125
|
+
| 小程序 | 小程序 SDK(统一 SDK,支持微信/抖音/支付宝/百度等平台) |
|
|
126
|
+
| PC游戏 - Unreal | Unreal SDK |
|
|
127
|
+
| PC游戏 - Unity | Unity SDK |
|
|
128
|
+
| PC应用 - C++ | C++ SDK |
|
|
129
|
+
| PC应用 - C# | C# SDK |
|
|
130
|
+
| PC应用 - MacOS原生 | MacOS SDK |
|
|
131
|
+
| PC应用 - OpenHarmony | OpenHarmony SDK |
|
|
132
|
+
| 不集成客户端 SDK | 无(`sdk_integration_mode: "server_only"`) |
|
|
133
|
+
|
|
134
|
+
**多平台选择说明**:
|
|
135
|
+
若用户选择了多个平台(如"Android 和 OpenHarmony"),则 `client_platforms` 记录为数组:
|
|
136
|
+
```json
|
|
137
|
+
"client_platforms": ["android", "openharmony"]
|
|
138
|
+
```
|
|
139
|
+
`client_sdk_type` 保留第一个作为主平台(向后兼容)。
|
|
140
|
+
|
|
141
|
+
**开发语言选择**(仅 Android / iOS SDK 需要):
|
|
142
|
+
|
|
143
|
+
| SDK 类型 | 支持的开发语言 |
|
|
144
|
+
|---|---|
|
|
145
|
+
| Android SDK | Java / Kotlin(可多选) |
|
|
146
|
+
| iOS SDK | Objective-C / Swift(可多选) |
|
|
147
|
+
| 其他 SDK | 固定语言,无需选择 |
|
|
148
|
+
|
|
149
|
+
**追问**:选择 Android SDK → 问 **"开发语言是什么?Java / Kotlin / 两者都支持"**
|
|
150
|
+
选择 iOS SDK → 问 **"开发语言是什么?Objective-C / Swift / 两者都支持"**
|
|
151
|
+
|
|
152
|
+
记录到 `client_platform_languages`:
|
|
153
|
+
```json
|
|
154
|
+
"client_platform_languages": {
|
|
155
|
+
"android": ["java", "kotlin"],
|
|
156
|
+
"openharmony": ["typescript"]
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 第 3 项 — 服务端 SDK 配置
|
|
163
|
+
|
|
164
|
+
问:**"是否集成服务端 SDK?服务端开发语言是什么?"**
|
|
165
|
+
|
|
166
|
+
> SDK 支持列表来源于 `wiki/te-docs/raw/接入指南/服务端-sdk/`,如有更新请同步修改本表。
|
|
167
|
+
|
|
168
|
+
**选项**:
|
|
169
|
+
|
|
170
|
+
- Java
|
|
171
|
+
- Python
|
|
172
|
+
- Go
|
|
173
|
+
- Node.js
|
|
174
|
+
- PHP
|
|
175
|
+
- C# / .NET
|
|
176
|
+
- C++
|
|
177
|
+
- Erlang
|
|
178
|
+
- Lua
|
|
179
|
+
- Ruby
|
|
180
|
+
- 其他(请提供开发语言)
|
|
181
|
+
- 不集成服务端 SDK
|
|
182
|
+
|
|
183
|
+
**SDK 类型映射**:
|
|
184
|
+
|
|
185
|
+
| 选择 | 服务端 SDK 类型 | sdk_integration_mode |
|
|
186
|
+
|---|---|---|
|
|
187
|
+
| Java | Java SDK | `both` |
|
|
188
|
+
| Python | Python SDK | `both` |
|
|
189
|
+
| Go | Go SDK | `both` |
|
|
190
|
+
| Node.js | Node SDK | `both` |
|
|
191
|
+
| PHP | PHP SDK | `both` |
|
|
192
|
+
| C# / .NET | C# SDK | `both` |
|
|
193
|
+
| C++ | C++ SDK | `both` |
|
|
194
|
+
| Erlang | Erlang SDK | `both` |
|
|
195
|
+
| Lua | Lua SDK | `both` |
|
|
196
|
+
| Ruby | Ruby SDK | `both` |
|
|
197
|
+
| 其他 | 追问具体语言,查询 wiki 是否有对应 SDK | `both` |
|
|
198
|
+
| 不集成服务端 SDK | 无 | `client_only` |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### 第 4 项 — 用户体系配置(访客 ID)
|
|
203
|
+
|
|
204
|
+
问:**"访客 ID 生成策略是什么?"**
|
|
205
|
+
|
|
206
|
+
选项:
|
|
207
|
+
- `auto` — SDK 自动生成(默认,适用于大多数场景)
|
|
208
|
+
- `device_id` — 使用设备 ID(iOS IDFV / Android AndroidID)
|
|
209
|
+
- `custom` — 自定义访客 ID(需在 SDK 初始化后立刻调用 `identify()`)
|
|
210
|
+
|
|
211
|
+
**追问**:如果选 `custom`,问 **"访客 ID 取什么值?例如:设备 ID / UUID / 游客临时 ID"**
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
### 第 5 项 — 用户体系配置(账号 ID)
|
|
216
|
+
|
|
217
|
+
问:**"账号 ID 来源是什么?"**
|
|
218
|
+
|
|
219
|
+
选项:
|
|
220
|
+
- `user_account` — 用户账号 ID(登录后的唯一标识)
|
|
221
|
+
- `role_id` — 角色 ID(游戏类专用,一个账号可能有多个角色)
|
|
222
|
+
- `none` — 无账号体系(纯游客模式)
|
|
223
|
+
|
|
224
|
+
**追问**:
|
|
225
|
+
- 选 `user_account` → 问 **"账号 ID 具体取什么值?例如:user_id(用户 ID)、phone(手机号)、email(邮箱)"**
|
|
226
|
+
- 选 `role_id` → 说明 **"角色 ID 适合游戏类应用,一个账号可创建多个角色,可更细粒度分析每个角色的行为"**
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### SDK 集成模式判定
|
|
231
|
+
|
|
232
|
+
根据第 2、3 项的回答,自动判定 `sdk_integration_mode`:
|
|
233
|
+
|
|
234
|
+
| 客户端集成 | 服务端集成 | sdk_integration_mode |
|
|
235
|
+
|---|---|---|
|
|
236
|
+
| 需要 | 需要 | `both` |
|
|
237
|
+
| 需要 | 不需要 | `client_only` |
|
|
238
|
+
| 不需要 | 需要 | `server_only` |
|
|
239
|
+
| 不需要 | 不需要 | `none`(通过 RESTful API / LogBus / DataX 等方式上报) |
|
|
240
|
+
|
|
241
|
+
**`none` 模式说明**:
|
|
242
|
+
- 适用于历史数据导入、批量数据同步、第三方系统对接等场景
|
|
243
|
+
- 在 Refine 阶段不注入 SDK 自动采集事件
|
|
244
|
+
- 在 generate-tracking-code skill 中只生成 RESTful / LogBus / DataX 配置
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
### 事件上报平台分布(仅 `both` 模式)
|
|
249
|
+
|
|
250
|
+
如果 `sdk_integration_mode === "both"`,在 Refine 阶段(第 3 段业务事件)引导用户指定:
|
|
251
|
+
- 哪些事件由客户端上报(用户行为事件)
|
|
252
|
+
- 哪些事件由服务端上报(业务数据事件)
|
|
253
|
+
- 是否有事件需要两端同时上报
|
|
254
|
+
|
|
255
|
+
**platform 字段写入 xlsx**:
|
|
256
|
+
- `platform: "client"` → xlsx "采集端" 列填 `client`
|
|
257
|
+
- `platform: "server"` → xlsx "采集端" 列填 `server`
|
|
258
|
+
- `platform: "both"` → xlsx "采集端" 列填 `client,server`
|
|
259
|
+
- `platform: undefined`(未指定)→ xlsx "采集端" 列留空
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
### 用户体系确认说明
|
|
264
|
+
|
|
265
|
+
用户体系确认决定代码埋点时的 SDK 调用策略:
|
|
266
|
+
|
|
267
|
+
| 场景 | SDK 调用时机 |
|
|
268
|
+
|---|---|
|
|
269
|
+
| 有账号体系 | 用户登录时调用 `login("<账号ID值>")`,退出登录时调用 `logout()` |
|
|
270
|
+
| 自定义访客 ID | SDK 初始化后立刻调用 `identify("<访客ID值>")` |
|
|
271
|
+
| 纯游客模式 | 无需调用 `login()`,只用 SDK 自动生成的访客 ID |
|
|
272
|
+
|
|
273
|
+
**关键提醒**:
|
|
274
|
+
- 避免在上报事件后调用 `identify()` 更改访客 ID,会导致用户匹配问题
|
|
275
|
+
- 游戏类应用推荐使用「角色 ID」作为账号 ID(粒度更细,可分析不同角色行为)
|
|
276
|
+
- 一个账号 ID 可绑定多个访客 ID(多设备登录场景)
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Phase 1 — Draft
|
|
281
|
+
|
|
282
|
+
### 1.1 构造 canonical draft
|
|
283
|
+
|
|
284
|
+
Draft 的概念结构(**内部 json,用户不直接看**):
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
Draft
|
|
288
|
+
├── meta:
|
|
289
|
+
│ ├── app_type: 应用类型
|
|
290
|
+
│ ├── sdk_integration_mode: SDK 集成模式:client_only / server_only / both
|
|
291
|
+
│ ├── client_sdk_type?: 客户端 SDK 类型(仅 client_only 或 both)
|
|
292
|
+
│ ├── client_language?: 客户端开发语言(游戏引擎需指定)
|
|
293
|
+
│ ├── server_language?: 服务端开发语言(仅 server_only 或 both)
|
|
294
|
+
│ ├── project_id?: AE 项目 ID(Phase 3 补充)
|
|
295
|
+
│ ├── host?: AE web 地址(Phase 3 补充)
|
|
296
|
+
│ ├── plan_name: 方案名称
|
|
297
|
+
│ ├── scenario: 业务场景描述
|
|
298
|
+
│ └── user_identity: 用户体系配置
|
|
299
|
+
│ ├── account_id_source: 账号 ID 来源:user_account / role_id / none
|
|
300
|
+
│ ├── account_id_field?: 账号 ID 具体字段名(仅 user_account 时填写,如 user_id / phone / email)
|
|
301
|
+
│ ├── distinct_id_strategy: 访客 ID 策略:auto / device_id / custom
|
|
302
|
+
│ └── distinct_id_custom_value?: 自定义访客 ID 取值
|
|
303
|
+
├── events: 一组事件,每个事件含 platform 字段
|
|
304
|
+
├── event_properties: 全局事件属性池(去重后)
|
|
305
|
+
├── common_event_properties: 公共事件属性(每个事件自动带)
|
|
306
|
+
└── user_properties: 用户属性
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**SDK 集成模式字段**:
|
|
310
|
+
|
|
311
|
+
```json
|
|
312
|
+
{
|
|
313
|
+
"sdk_integration_mode": "both", // client_only / server_only / both
|
|
314
|
+
"client_sdk_type": "android", // 仅 client_only 或 both 时填写
|
|
315
|
+
"client_language": "java", // 游戏引擎 SDK 需指定
|
|
316
|
+
"server_language": "java" // 仅 server_only 或 both 时填写
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**事件平台标记(`events[].platform`)**:
|
|
321
|
+
|
|
322
|
+
```json
|
|
323
|
+
{
|
|
324
|
+
"event_name": "order_create",
|
|
325
|
+
"display_name": "订单创建",
|
|
326
|
+
"platform": "server", // client / server / both
|
|
327
|
+
"prop_names": ["order_id", "order_amount", "payment_method"],
|
|
328
|
+
"source": "prd"
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
- `platform: "client"` — 客户端上报(用户行为事件)
|
|
333
|
+
- `platform: "server"` — 服务端上报(业务数据事件)
|
|
334
|
+
- `platform: "both"` — 两端同时上报(需同步时间戳)
|
|
335
|
+
|
|
336
|
+
**用户体系字段(`meta.user_identity`)**:
|
|
337
|
+
|
|
338
|
+
```json
|
|
339
|
+
{
|
|
340
|
+
"account_id_source": "user_account", // 账号 ID 来源:user_account / role_id / none
|
|
341
|
+
"account_id_field": "user_id", // 账号 ID 具体字段名(仅 user_account 时填写)
|
|
342
|
+
"distinct_id_strategy": "auto", // 访客 ID 策略:auto / device_id / custom
|
|
343
|
+
"distinct_id_custom_value": null // 自定义访客 ID 取值说明(仅 strategy=custom 时填写)
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**属性类型**(枚举):`string` / `number` / `bool` / `datetime` /
|
|
348
|
+
`array_row`(对象数组,支持 `父名.子名` 嵌套)/ `array_string`(字符串数组)
|
|
349
|
+
|
|
350
|
+
**命名规则**:事件名 / 属性名必须 `snake_case`;中文放 `display_name` 字段。
|
|
351
|
+
|
|
352
|
+
### 1.2 合并素材
|
|
353
|
+
|
|
354
|
+
按优先级从低到高:**template → codebase → prd → website → chat → autotrack**
|
|
355
|
+
|
|
356
|
+
- **template**:用户选的行业模板(见下方「模板查找约定」)作为 baseline,每项标记 `source: "template"`
|
|
357
|
+
- **codebase**:扫描工程目录源码,从业务逻辑提取事件/属性,**同名事件合并 prop_names,不覆盖既有字段**;新项 `source: "codebase"`
|
|
358
|
+
- **prd**:读产品文档(md / pdf / docx / URL),抽取产品特有事件/属性,**同名事件合并 prop_names,不覆盖既有字段**;新项 `source: "prd"`
|
|
359
|
+
- **website**:抓取应用官网,从页面内容提取产品功能和业务逻辑,**同名事件合并 prop_names**;新项 `source: "website"`
|
|
360
|
+
- **chat**:anchor 阶段的业务场景 + refine 阶段的编辑指令,`source: "chat"`
|
|
361
|
+
- **autotrack**:根据 `meta.client_sdk_type` 自动注入 SDK 自动采集事件(仅 `client_only` 或 `both` 模式),`source: "autotrack"`
|
|
362
|
+
|
|
363
|
+
### 1.3 自动注入 SDK 自动采集事件
|
|
364
|
+
|
|
365
|
+
根据 Phase 0 收集的 SDK 集成模式,决定是否注入自动采集事件:
|
|
366
|
+
|
|
367
|
+
**注入条件**:
|
|
368
|
+
- `sdk_integration_mode === "client_only"` → 注入自动采集事件
|
|
369
|
+
- `sdk_integration_mode === "both"` → 注入自动采集事件(仅客户端端)
|
|
370
|
+
- `sdk_integration_mode === "server_only"` → **不注入**(服务端 SDK 无自动采集)
|
|
371
|
+
- `sdk_integration_mode === "none"` → **不注入**(无 SDK,通过其他方式上报)
|
|
372
|
+
|
|
373
|
+
**注入规则**:
|
|
374
|
+
1. 自动采集事件放在 `events` 数组末尾,标记 `source: "autotrack"`
|
|
375
|
+
2. 自动采集事件的 `event_tag` 设为 `"系统事件"`
|
|
376
|
+
3. 自动采集事件只携带预置属性(`prop_names` 为空或仅含预置属性名)
|
|
377
|
+
4. 预置属性以 `#` 开头,不加入 `event_properties` 池(由 SDK 自动采集)
|
|
378
|
+
|
|
379
|
+
**SDK 类型 → 自动采集事件映射**(详见 `references/autotrack-events.md`):
|
|
380
|
+
|
|
381
|
+
| SDK 类型 | 自动采集事件 |
|
|
382
|
+
|---|---|
|
|
383
|
+
| Android / iOS | `ta_app_install`, `ta_app_start`, `ta_app_end`, `ta_app_view`, `ta_app_click`, `ta_app_crash` |
|
|
384
|
+
| JavaScript | `ta_pageview`, `ta_page_show`, `ta_page_hide` |
|
|
385
|
+
| 微信小程序 | `ta_mp_launch`, `ta_mp_show`, `ta_mp_hide`, `ta_mp_view`, `ta_mp_share`, `ta_page_leave`, `ta_add_favorite`, `ta_mp_click` |
|
|
386
|
+
| 微信小游戏 | `ta_mp_launch`, `ta_mp_show`, `ta_mp_hide` |
|
|
387
|
+
| Unity | `ta_app_install`, `ta_app_start`, `ta_app_end`, `ta_app_crash`, `ta_scene_loaded`, `ta_scene_unloaded` |
|
|
388
|
+
| Unity 微信小游戏 | `ta_mg_launch`, `ta_mg_show`, `ta_mg_hide`, `ta_app_crash`, `ta_scene_loaded`, `ta_scene_unloaded` |
|
|
389
|
+
|
|
390
|
+
**Draft JSON 示例**:
|
|
391
|
+
|
|
392
|
+
```json
|
|
393
|
+
{
|
|
394
|
+
"event_name": "ta_app_install",
|
|
395
|
+
"display_name": "APP 安装",
|
|
396
|
+
"event_desc": "APP 首次安装时上报,升级不触发,删除重装会触发",
|
|
397
|
+
"event_tag": "系统事件",
|
|
398
|
+
"platform": "client",
|
|
399
|
+
"prop_names": [],
|
|
400
|
+
"source": "autotrack"
|
|
401
|
+
}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**注意**:自动采集事件 `platform` 固定为 `"client"`,因为只有客户端 SDK 有自动采集能力。
|
|
405
|
+
|
|
406
|
+
### 1.4 持久化 + 生成 xlsx
|
|
407
|
+
|
|
408
|
+
- 保存 draft 到 `.ae-tracking/draft.json`
|
|
409
|
+
- 生成上传用 xlsx:
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
ae-tracking plan draft --in .ae-tracking/draft.json --out .ae-tracking/draft.xlsx
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### 1.5 规则校验(必须执行)
|
|
416
|
+
|
|
417
|
+
生成 xlsx 时自动执行校验,确保符合 AE 埋点方案规则:
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
ae-tracking plan draft --in .ae-tracking/draft.json --out .ae-tracking/draft.xlsx --fix
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
**校验规则**:
|
|
424
|
+
|
|
425
|
+
| 规则 | 说明 | 自动修复 |
|
|
426
|
+
|---|---|---|
|
|
427
|
+
| 显示名唯一 | 同一属性池内 `display_name` 不能重复 | ✅ 添加区分前缀 |
|
|
428
|
+
| 对象组一致性 | 同一个 `array_row` 在不同事件中子属性必须一致 | ✅ 补充缺失子属性 |
|
|
429
|
+
| snake_case | 事件名/属性名必须符合 `^[a-z][a-z0-9_]*$` | ❌ 需手动修改 |
|
|
430
|
+
| 属性名唯一 | 属性名不能重复 | ❌ 需手动修改 |
|
|
431
|
+
| 事件名唯一 | 事件名不能重复 | ✅ 移除后续重复事件 |
|
|
432
|
+
|
|
433
|
+
**校验流程**:
|
|
434
|
+
|
|
435
|
+
1. CLI 自动校验 draft.json
|
|
436
|
+
2. 发现可修复问题 → 自动修复 → 更新 draft.json → 生成 xlsx
|
|
437
|
+
3. 发现不可修复问题 → 报错,需手动修改 draft.json
|
|
438
|
+
4. 无问题 → 进入 Phase 1.6
|
|
439
|
+
|
|
440
|
+
**注意**:不同属性池的显示名可以相同(如 `vip_level` 可以同时作为事件属性和用户属性)。
|
|
441
|
+
|
|
442
|
+
### 1.6 展示 Summary
|
|
443
|
+
|
|
444
|
+
向用户 markdown 表格展示:事件数 / 事件属性池大小 / 公共属性数 / 用户属性数;告知产物路径。
|
|
445
|
+
|
|
446
|
+
### 📁 模板查找约定
|
|
447
|
+
|
|
448
|
+
按以下顺序找第一个存在的位置:
|
|
449
|
+
|
|
450
|
+
1. `./tracking-plan-template/` —— 本项目根(开发期)
|
|
451
|
+
2. `~/.ae-tracking/templates/` —— `ae-tracking` CLI 安装后的用户目录(未来默认)
|
|
452
|
+
3. `require.resolve('ae-tracking/tracking-plan-template')` —— 作为 npm 依赖装入时(未来)
|
|
453
|
+
|
|
454
|
+
模板文件:官方模板 `TE官方模板_dataTrackSample.xlsx`,行业模板 `电商 / 卡牌游戏 / 社交聊天类 / 阅读类APP埋点模板_v1.xlsx`。
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## Phase 2 — Refine(分 7 段循环)
|
|
459
|
+
|
|
460
|
+
按顺序,每段一轮对话:
|
|
461
|
+
|
|
462
|
+
1. **sdk_integration(SDK 集成配置)** — 展示 SDK 集成模式:
|
|
463
|
+
- SDK 集成模式(client_only / server_only / both)
|
|
464
|
+
- 客户端 SDK 类型及开发语言(如有)
|
|
465
|
+
- 服务端开发语言(如有)
|
|
466
|
+
|
|
467
|
+
**展示示例**:
|
|
468
|
+
```
|
|
469
|
+
SDK 集成配置:
|
|
470
|
+
- 集成模式:both(客户端 + 服务端)
|
|
471
|
+
- 客户端:Android SDK(Java)
|
|
472
|
+
- 服务端:Java(Spring Boot)
|
|
473
|
+
|
|
474
|
+
代码埋点提示:
|
|
475
|
+
- 客户端事件:使用 Android SDK API(TDAnalytics.track())
|
|
476
|
+
- 服务端事件:使用 Java SDK API(TaAnalytics.track())
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
2. **user_identity(用户体系)** — 展示用户体系配置:
|
|
480
|
+
- 账号 ID 来源及取值说明
|
|
481
|
+
- 访客 ID 生成策略
|
|
482
|
+
- 提示用户代码埋点时对应的 SDK 调用(`login()` / `identify()`)
|
|
483
|
+
|
|
484
|
+
**展示示例**:
|
|
485
|
+
```
|
|
486
|
+
用户体系配置:
|
|
487
|
+
- 账号 ID 来源:user_id(用户注册 ID)
|
|
488
|
+
- 访客 ID 策略:auto(SDK 自动生成)
|
|
489
|
+
|
|
490
|
+
代码埋点提示:
|
|
491
|
+
- 用户登录时调用:ta.login("<用户ID>")
|
|
492
|
+
- 用户退出登录时调用:ta.logout()
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
3. **events(业务事件)** — 表格展示,**按 platform 分组**:
|
|
496
|
+
- **客户端事件**(`platform === "client"`):用户行为事件
|
|
497
|
+
- **服务端事件**(`platform === "server"`):业务数据事件
|
|
498
|
+
- **两端同时上报**(`platform === "both"`):特殊标记
|
|
499
|
+
|
|
500
|
+
表格列:`event_name` / `display_name` / `platform` / `event_tag` / `event_desc` / `prop_names`
|
|
501
|
+
|
|
502
|
+
**仅展示 `source != "autotrack"` 的业务事件**
|
|
503
|
+
|
|
504
|
+
4. **events(自动采集事件)** — 单独表格展示 SDK 自动采集事件(`source == "autotrack"`)
|
|
505
|
+
- 仅在 `sdk_integration_mode !== "server_only"` 时展示
|
|
506
|
+
- 提示用户"这些是 SDK 自动采集事件,无需代码埋点,SDK 初始化时开启即可"
|
|
507
|
+
|
|
508
|
+
5. **common_event_properties** — 表格(`name` / `display_name` / `type` / `desc`)
|
|
509
|
+
- 提示用户:公共属性是每个事件都会携带的属性,适合**业务全局维度**
|
|
510
|
+
- **举例需结合应用实际情况**:
|
|
511
|
+
- H5/Web 应用:`channel`(来源渠道)、`referrer_domain`(来源域名)
|
|
512
|
+
- 手机 APP:`channel`、`app_version`(应用版本)、`platform`(iOS/Android)
|
|
513
|
+
- 游戏:`channel`、`vip_level`(会员等级)、`server_id`(服务器 ID)
|
|
514
|
+
- 小程序:`channel`、`scene`(进入场景值)
|
|
515
|
+
- **警告**:不要将 SDK 预置属性设为公共属性
|
|
516
|
+
- 预置属性以 `#` 开头,由 SDK 自动采集
|
|
517
|
+
- 根据已选定的客户端 SDK 类型,从 wiki 查找对应预置属性列表:
|
|
518
|
+
- JavaScript SDK → `wiki/te-docs/raw/接入指南/客户端-sdk/javascript/进阶指南/预置属性.md`
|
|
519
|
+
- Android SDK → `wiki/te-docs/raw/接入指南/客户端-sdk/android/进阶指南/预置属性.md`
|
|
520
|
+
- iOS SDK → `wiki/te-docs/raw/接入指南/客户端-sdk/ios/进阶指南/预置属性.md`
|
|
521
|
+
- Unity SDK → `wiki/te-docs/raw/接入指南/客户端-sdk/游戏引擎/unity/进阶指南/预置属性.md`
|
|
522
|
+
- 其他 SDK → 查找对应 SDK 目录下的 `进阶指南/预置属性.md`
|
|
523
|
+
|
|
524
|
+
6. **event_properties** — 按事件分组,每组展示其引用的属性
|
|
525
|
+
|
|
526
|
+
7. **user_properties** — 表格(`name` / `display_name` / `type` / `desc`)
|
|
527
|
+
|
|
528
|
+
每段流程:
|
|
529
|
+
|
|
530
|
+
1. 展示当前 draft 对应部分
|
|
531
|
+
2. 问 **"这段对吗?`ok` 进入下一段,或描述要改什么"**
|
|
532
|
+
3. 用户给自然语言指令 → 更新 `.ae-tracking/draft.json` → 重跑:
|
|
533
|
+
```bash
|
|
534
|
+
ae-tracking plan draft --in .ae-tracking/draft.json --out .ae-tracking/draft.xlsx
|
|
535
|
+
```
|
|
536
|
+
4. 用户 `ok` 进下一段
|
|
537
|
+
|
|
538
|
+
允许用户随时说 **"回到第 N 段"** 跳回任意段。
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
### SDK 集成配置展示说明(第 1 段)
|
|
543
|
+
|
|
544
|
+
SDK 集成配置决定代码埋点的实现方式:
|
|
545
|
+
|
|
546
|
+
| 集成模式 | 展示内容 |
|
|
547
|
+
|---|---|
|
|
548
|
+
| `client_only` | SDK 类型 + 开发语言 + 客户端 API 提示 |
|
|
549
|
+
| `server_only` | 服务端语言 + 服务端 API 提示 |
|
|
550
|
+
| `both` | 客户端 SDK + 服务端语言 + 两端 API 提示 |
|
|
551
|
+
|
|
552
|
+
**代码埋点提示**:
|
|
553
|
+
- 客户端事件:提示使用客户端 SDK API
|
|
554
|
+
- 服务端事件:提示使用服务端 SDK API
|
|
555
|
+
- 两端同时上报:提示两端需同步 `#event_time`
|
|
556
|
+
|
|
557
|
+
---
|
|
558
|
+
|
|
559
|
+
### 用户体系展示说明(第 2 段)
|
|
560
|
+
|
|
561
|
+
用户体系配置是埋点方案的关键部分,影响:
|
|
562
|
+
1. **用户识别准确性** — 登录前后数据能否正确关联
|
|
563
|
+
2. **代码埋点实现** — 何时调用 `login()` / `identify()` / `logout()` |
|
|
564
|
+
3. **用户属性上报** — 用户属性关联的是账号 ID 还是访客 ID
|
|
565
|
+
|
|
566
|
+
**展示内容**:
|
|
567
|
+
- 账号 ID 来源(user_account / role_id / none)
|
|
568
|
+
- 账号 ID 具体字段名(如 user_account 时的 user_id / phone / email)
|
|
569
|
+
- 访客 ID 生成策略(auto / device_id / custom)
|
|
570
|
+
- 自定义访客 ID 取值说明(如有)
|
|
571
|
+
- 对应的 SDK 调用时机和代码示例
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
### 业务事件展示说明(第 3 段)
|
|
576
|
+
|
|
577
|
+
**按 platform 分组展示**:
|
|
578
|
+
- 客户端事件:用户行为(页面浏览、点击、搜索等)
|
|
579
|
+
- 服务端事件:业务数据(订单、支付、充值等)
|
|
580
|
+
- 两端同时:需同步时间戳,确保数据关联
|
|
581
|
+
|
|
582
|
+
**平台标记调整**:
|
|
583
|
+
- 用户可通过自然语言指令修改事件的 `platform` 字段
|
|
584
|
+
- 例如:"订单创建改为服务端上报" → `platform: "server"`
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
### 自动采集事件展示说明(第 4 段)
|
|
589
|
+
|
|
590
|
+
- 自动采集事件单独展示在第 2 段,与业务事件分开
|
|
591
|
+
- 自动采集事件不可删除(必须存在),但可修改 `display_name` 和 `event_desc`
|
|
592
|
+
- 自动采集事件的预置属性由 SDK 自动采集,不需要定义到 `event_properties` 池
|
|
593
|
+
- 提示用户在代码中通过 `enableAutoTrack()` 开启对应的自动采集事件
|
|
594
|
+
|
|
595
|
+
### Refine 阶段的几个启发式建议
|
|
596
|
+
|
|
597
|
+
- **公共属性 vs 事件属性**:
|
|
598
|
+
- 如果一个属性出现在 3 个以上事件上,考虑升为公共属性(减少上报冗余)
|
|
599
|
+
- 公共属性适合**业务维度**:`channel`(来源渠道)、`vip_level`(会员等级)、`ab_test_group`(实验分组)、`is_new_user`(是否新用户)
|
|
600
|
+
- **禁止**将 SDK 预置属性设为公共属性:`#app_version`、`#os`、`#device_model`、`#network_type` 等由 SDK 自动采集,手动设置会造成冗余或冲突
|
|
601
|
+
- **事件要不要有属性**:每个事件至少带一个有语义的属性(如登出事件带 `session_duration_ms`);否则 AE 上传可能被当成无效事件
|
|
602
|
+
- **嵌套属性**:`array_row` 类型的父属性下可以挂 `父.子` 子属性,用来描述一组对象(如 `card_detail.hero_name`)
|
|
603
|
+
|
|
604
|
+
---
|
|
605
|
+
|
|
606
|
+
## Phase 2 完成后 — 归档
|
|
607
|
+
|
|
608
|
+
所有 7 段 Refine 确认完毕后(用户 `ok` 通过第 7 段后),立即归档:
|
|
609
|
+
|
|
610
|
+
```bash
|
|
611
|
+
cp .ae-tracking/draft.xlsx ./plans/$(date +%F)-<plan_name>.xlsx
|
|
612
|
+
git add ./plans/$(date +%F)-<plan_name>.xlsx
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**提示用户**:
|
|
616
|
+
- 归档已完成,后续上传不会覆盖本地文件
|
|
617
|
+
- 上传后可在 AE 后台查看,或继续调整后重新归档
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
## Phase 3 — Token & projectId
|
|
622
|
+
|
|
623
|
+
### 3.1 获取 AE web 地址
|
|
624
|
+
|
|
625
|
+
❌ **禁止在此处提供未经确认的示例 URL**,直接询问用户即可。
|
|
626
|
+
|
|
627
|
+
问用户:**"AE web 地址是什么?"**
|
|
628
|
+
|
|
629
|
+
用户回答后,保存到 `.ae-tracking/draft.json` 的 `meta.host` 字段。
|
|
630
|
+
|
|
631
|
+
根据 AE web 地址引导获取和保存 token:
|
|
632
|
+
|
|
633
|
+
```bash
|
|
634
|
+
ae-tracking auth login --host <host>
|
|
635
|
+
ae-tracking auth status
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
常见错误提示与自助恢复:
|
|
639
|
+
|
|
640
|
+
| 错误 | 原因 | 提示用户做什么 |
|
|
641
|
+
|---|---|---|
|
|
642
|
+
| `Chrome JS-from-AppleEvents disabled` | Chrome 禁用了 AppleScript 执行 JS | Chrome 菜单 View → Developer → Allow JavaScript from Apple Events,重试 |
|
|
643
|
+
| `not_mac` | 非 macOS | 手动设置 `export AE_TOKEN=<uuid>`(从 DevTools → Application → Local Storage → `ACCESS_TOKEN` 取,去掉首尾引号)|
|
|
644
|
+
| `NO_TAB_FOUND` | 没在 Chrome 登录 AE | 先在 Chrome 打开并登录 TE,重试 |
|
|
645
|
+
|
|
646
|
+
Token 缓存 20 小时,同 host 下次免取。
|
|
647
|
+
|
|
648
|
+
### 3.2 获取 AE 项目ID 并更新 draft
|
|
649
|
+
|
|
650
|
+
问用户:**"AE 项目ID 是什么?请前往 AE 系统「项目管理」→「接入配置」→ 复制「项目ID」,或者查看 AE 系统 URL 参数 currentProjectId=<id>"**
|
|
651
|
+
|
|
652
|
+
用户提供 projectId 后,更新到 `.ae-tracking/draft.json` 的 `meta.project_id` 字段。
|
|
653
|
+
|
|
654
|
+
---
|
|
655
|
+
|
|
656
|
+
## Phase 4 — Upload
|
|
657
|
+
|
|
658
|
+
### 4.1 检查项目现有方案
|
|
659
|
+
|
|
660
|
+
上传前先检查项目是否已有埋点方案:
|
|
661
|
+
|
|
662
|
+
```bash
|
|
663
|
+
ae-tracking plan fetch --project <projectId> --host <host> > .ae-tracking/existing-plan.json
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
**判断结果**:
|
|
667
|
+
- 文件为空或命令报错 `404` → 项目无方案,直接上传
|
|
668
|
+
- 文件有内容 → 项目已有方案,展示 summary + **冲突检测**
|
|
669
|
+
|
|
670
|
+
**已有方案时展示**:
|
|
671
|
+
```
|
|
672
|
+
项目已有埋点方案:
|
|
673
|
+
- 事件数:XX
|
|
674
|
+
- 事件属性数:YY
|
|
675
|
+
- 公共属性数:ZZ
|
|
676
|
+
- 用户属性数:WW
|
|
677
|
+
|
|
678
|
+
请选择上传方式:
|
|
679
|
+
1. 追加(保留现有方案,添加新事件/属性)
|
|
680
|
+
2. 替换(删除现有方案,上传新方案)
|
|
681
|
+
|
|
682
|
+
追加 / 替换?
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
---
|
|
686
|
+
|
|
687
|
+
### 4.2 追加模式的冲突检测
|
|
688
|
+
|
|
689
|
+
用户选择"追加"时,**必须检测冲突**(AE merge-by-name 有静默丢弃风险):
|
|
690
|
+
|
|
691
|
+
**读取两份文件**:
|
|
692
|
+
- 既有方案:`.ae-tracking/existing-plan.json`
|
|
693
|
+
- 新方案:`.ae-tracking/draft.json`
|
|
694
|
+
|
|
695
|
+
**检测两类冲突**:
|
|
696
|
+
|
|
697
|
+
#### 冲突类型 A:同名属性类型不一致(严重)
|
|
698
|
+
|
|
699
|
+
AE 规定:同名属性必须类型一致,否则上报数据会被抛弃。
|
|
700
|
+
|
|
701
|
+
**检测逻辑**:
|
|
702
|
+
|
|
703
|
+
对比 `event_properties` / `common_event_properties` / `user_properties` 三个属性池:
|
|
704
|
+
- 遍历新方案每个属性,在既有方案中查找同名属性
|
|
705
|
+
- 若同名但类型不一致 → 记录为 `property_type_conflict`(严重错误)
|
|
706
|
+
|
|
707
|
+
**冲突展示**:
|
|
708
|
+
```
|
|
709
|
+
⚠️ 严重冲突:同名属性类型不一致
|
|
710
|
+
|
|
711
|
+
以下属性在既有方案和新方案中类型不同,
|
|
712
|
+
追加上传会导致上报数据被抛弃:
|
|
713
|
+
|
|
714
|
+
| 属性名 | 既有类型 | 新方案类型 |
|
|
715
|
+
|---|---|---|
|
|
716
|
+
| order_amount | number | string |
|
|
717
|
+
| vip_level | string | number |
|
|
718
|
+
|
|
719
|
+
建议:
|
|
720
|
+
1. 修改新方案的属性类型,与既有方案一致
|
|
721
|
+
2. 或选择「替换」模式重新定义类型
|
|
722
|
+
|
|
723
|
+
继续追加(不修复) / 修改 draft / 改用替换?
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
#### 冲突类型 B:同名事件(提醒)
|
|
727
|
+
|
|
728
|
+
AE merge-by-name:同名事件不覆盖,新名事件新增。
|
|
729
|
+
|
|
730
|
+
**检测逻辑**:
|
|
731
|
+
|
|
732
|
+
遍历新方案每个事件,在既有方案中查找同名事件:
|
|
733
|
+
- 若同名事件已存在 → 记录为 `event_exists`(提醒,非错误)
|
|
734
|
+
|
|
735
|
+
**冲突展示**(仅有提醒时):
|
|
736
|
+
```
|
|
737
|
+
⚠️ 提醒:以下事件已存在于项目中(追加模式不会覆盖)
|
|
738
|
+
|
|
739
|
+
- user_login(既有:2 属性,新方案:3 属性)
|
|
740
|
+
- order_create(既有:5 属性,新方案:5 属性)
|
|
741
|
+
|
|
742
|
+
追加后:
|
|
743
|
+
- 既有事件的属性关联不会改变
|
|
744
|
+
- 既有事件的新属性不会被添加
|
|
745
|
+
- 新事件会正常添加
|
|
746
|
+
|
|
747
|
+
是否继续追加?yes / no
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
---
|
|
751
|
+
|
|
752
|
+
### 4.3 上传流程
|
|
753
|
+
|
|
754
|
+
根据冲突检测结果决定:
|
|
755
|
+
|
|
756
|
+
| 检测结果 | 处理方式 |
|
|
757
|
+
|---|---|
|
|
758
|
+
| 无冲突 | 直接上传 |
|
|
759
|
+
| 仅有提醒(类型 B) | 用户确认后上传 |
|
|
760
|
+
| 有严重冲突(类型 A) | 用户修复或改用替换 |
|
|
761
|
+
|
|
762
|
+
上传命令:
|
|
763
|
+
```bash
|
|
764
|
+
ae-tracking plan upload --project <projectId> --xlsx .ae-tracking/draft.xlsx [--replace]
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
- **加 `--replace`**:先删除项目现有方案再上传(用户选择"替换"时,或严重冲突改用替换)
|
|
768
|
+
- **不加 `--replace`**:AE merge-by-name 合并(无冲突或仅有提醒,用户确认追加)
|
|
769
|
+
|
|
770
|
+
成功上传后,提示用户去 AE 后台确认,**提供完整 URL**。
|
|
771
|
+
|
|
772
|
+
---
|
|
773
|
+
|
|
774
|
+
### 4.4 上传失败处理与自动修复
|
|
775
|
+
|
|
776
|
+
上传时使用 `--auto-fix` 选项(默认开启),CLI 会自动检测错误并修复:
|
|
777
|
+
|
|
778
|
+
```bash
|
|
779
|
+
ae-tracking plan upload --project <projectId> --xlsx .ae-tracking/draft.xlsx --draft .ae-tracking/draft.json [--replace]
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
#### AE API 错误类型
|
|
783
|
+
|
|
784
|
+
| 错误类型 | 错误描述 | 自动修复 |
|
|
785
|
+
|---|---|---|
|
|
786
|
+
| `event_prop_display_duplicate` | 事件属性显示名重复 | ✅ 添加区分前缀 |
|
|
787
|
+
| `complex_event_property_should_has_same_child_property` | 对象组子属性不一致 | ✅ 补充缺失子属性 |
|
|
788
|
+
| `event_name_duplicate` | 事件名重复 | ✅ 移除后续重复事件 |
|
|
789
|
+
| `property_type_conflict` | 属性类型不一致(追加模式) | ❌ 改用替换模式 |
|
|
790
|
+
|
|
791
|
+
#### 自动修复流程
|
|
792
|
+
|
|
793
|
+
CLI 自动执行:
|
|
794
|
+
1. 上传 xlsx 到 TE
|
|
795
|
+
2. 检查 `eventErrorMap` 是否有错误
|
|
796
|
+
3. 有可修复错误 → 自动修复 draft.json → 重新生成 xlsx → 重新上传
|
|
797
|
+
4. 循环最多 3 次,超过后提示用户手动介入
|
|
798
|
+
|
|
799
|
+
**示例输出**:
|
|
800
|
+
```
|
|
801
|
+
🔧 Auto-fixing upload errors (attempt 1/3)...
|
|
802
|
+
Fixed: 修复对象组子属性不一致, 修复显示名重复
|
|
803
|
+
[plan-upload] regenerated: .ae-tracking/draft.xlsx
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
---
|
|
807
|
+
|
|
808
|
+
### 4.5 成功后处理
|
|
809
|
+
|
|
810
|
+
成功上传后,提示用户去 AE 后台确认,**提供完整 URL**
|
|
811
|
+
|
|
812
|
+
## 禁止
|
|
813
|
+
|
|
814
|
+
- 一次问完所有 anchor 问题
|
|
815
|
+
- 跳过 Phase 3 直接 upload
|
|
816
|
+
- 手动拼 xlsx 绕过 `.ae-tracking/draft.json`
|
|
817
|
+
- 在 skill 里直接 `fetch` AE API —— 所有 AE 通信必须通过项目的脚本 / 未来的 CLI
|
|
818
|
+
|
|
819
|
+
---
|
|
820
|
+
|
|
821
|
+
## 内部参考(贡献者用,不是 skill 使用路径)
|
|
822
|
+
|
|
823
|
+
- `skills/generate-tracking-plan/references/te-api.md` — AE 后端三个端点的抓包文档
|
|
824
|
+
- `skills/generate-tracking-plan/references/xlsx-schema.md` — xlsx 格式契约(writer 规则 + reader 兼容)
|
|
825
|
+
- `skills/generate-tracking-plan/references/autotrack-events.md` — SDK 自动采集事件定义(各平台事件列表 + SDK 类型映射)
|
|
826
|
+
- `src/plan/types.ts` — Draft 的 TypeScript 类型定义
|