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.
Files changed (308) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +50 -0
  3. package/dist/bin/ae-tracking.d.ts +2 -0
  4. package/dist/bin/ae-tracking.js +20 -0
  5. package/dist/scripts/postinstall.d.ts +1 -0
  6. package/dist/scripts/postinstall.js +17 -0
  7. package/dist/src/auth.d.ts +12 -0
  8. package/dist/src/auth.js +215 -0
  9. package/dist/src/cli/auth.d.ts +8 -0
  10. package/dist/src/cli/auth.js +81 -0
  11. package/dist/src/cli/code.d.ts +2 -0
  12. package/dist/src/cli/code.js +85 -0
  13. package/dist/src/cli/debug.d.ts +2 -0
  14. package/dist/src/cli/debug.js +152 -0
  15. package/dist/src/cli/home.d.ts +4 -0
  16. package/dist/src/cli/home.js +15 -0
  17. package/dist/src/cli/init.d.ts +14 -0
  18. package/dist/src/cli/init.js +107 -0
  19. package/dist/src/cli/package-root.d.ts +1 -0
  20. package/dist/src/cli/package-root.js +20 -0
  21. package/dist/src/cli/plan.d.ts +2 -0
  22. package/dist/src/cli/plan.js +242 -0
  23. package/dist/src/cli/wiki.d.ts +2 -0
  24. package/dist/src/cli/wiki.js +20 -0
  25. package/dist/src/client.d.ts +62 -0
  26. package/dist/src/client.js +56 -0
  27. package/dist/src/config.d.ts +4 -0
  28. package/dist/src/config.js +29 -0
  29. package/dist/src/plan/autotrack.d.ts +18 -0
  30. package/dist/src/plan/autotrack.js +350 -0
  31. package/dist/src/plan/conflict.d.ts +34 -0
  32. package/dist/src/plan/conflict.js +106 -0
  33. package/dist/src/plan/draft.d.ts +39 -0
  34. package/dist/src/plan/draft.js +104 -0
  35. package/dist/src/plan/fix.d.ts +32 -0
  36. package/dist/src/plan/fix.js +187 -0
  37. package/dist/src/plan/types.d.ts +57 -0
  38. package/dist/src/plan/types.js +1 -0
  39. package/dist/src/project-detect/detect.d.ts +2 -0
  40. package/dist/src/project-detect/detect.js +120 -0
  41. package/dist/src/project-detect/types.d.ts +9 -0
  42. package/dist/src/project-detect/types.js +1 -0
  43. package/dist/src/te-debug/client.d.ts +12 -0
  44. package/dist/src/te-debug/client.js +54 -0
  45. package/dist/src/te-debug/types.d.ts +16 -0
  46. package/dist/src/te-debug/types.js +1 -0
  47. package/dist/src/te-plan/fetch.d.ts +3 -0
  48. package/dist/src/te-plan/fetch.js +47 -0
  49. package/dist/src/te-plan/types.d.ts +7 -0
  50. package/dist/src/te-plan/types.js +1 -0
  51. package/dist/src/wiki/block-to-md.d.ts +74 -0
  52. package/dist/src/wiki/block-to-md.js +88 -0
  53. package/dist/src/wiki/crawler.d.ts +3 -0
  54. package/dist/src/wiki/crawler.js +71 -0
  55. package/dist/src/wiki/index-writer.d.ts +4 -0
  56. package/dist/src/wiki/index-writer.js +70 -0
  57. package/dist/src/wiki/slugify.d.ts +1 -0
  58. package/dist/src/wiki/slugify.js +11 -0
  59. package/dist/src/wiki/types.d.ts +29 -0
  60. package/dist/src/wiki/types.js +1 -0
  61. package/dist/src/wiki-query/query.d.ts +8 -0
  62. package/dist/src/wiki-query/query.js +32 -0
  63. package/dist/src/xlsx/read.d.ts +2 -0
  64. package/dist/src/xlsx/read.js +457 -0
  65. package/dist/src/xlsx/write.d.ts +3 -0
  66. package/dist/src/xlsx/write.js +251 -0
  67. package/package.json +47 -0
  68. package/skills/generate-tracking-code/SKILL.md +551 -0
  69. package/skills/generate-tracking-code/references/client-sdk-insert.md +92 -0
  70. package/skills/generate-tracking-code/references/datax-config.md +41 -0
  71. package/skills/generate-tracking-code/references/debug-script.md +99 -0
  72. package/skills/generate-tracking-code/references/logbus-config.md +224 -0
  73. package/skills/generate-tracking-code/references/modes.md +81 -0
  74. package/skills/generate-tracking-code/references/restful-call.md +34 -0
  75. package/skills/generate-tracking-code/references/sdk-index.md +123 -0
  76. package/skills/generate-tracking-code/references/server-sdk-insert.md +175 -0
  77. package/skills/generate-tracking-code/references/snippet-delivery.md +240 -0
  78. package/skills/generate-tracking-code/references/te-api.md +181 -0
  79. package/skills/generate-tracking-plan/SKILL.md +826 -0
  80. package/skills/generate-tracking-plan/references/autotrack-events.md +238 -0
  81. package/skills/generate-tracking-plan/references/te-api.md +97 -0
  82. package/skills/generate-tracking-plan/references/xlsx-schema.md +149 -0
  83. package/skills/te-wiki-synthesize/SKILL.md +142 -0
  84. package/wiki/te-docs/index.md +223 -0
  85. package/wiki/te-docs/log.md +28 -0
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227/sdk-information-collection-rules.md +63 -0
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. 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
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. 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
  158. 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
  159. 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
  160. 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
  161. 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
  162. 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
  163. 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
  164. 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
  165. 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
  166. 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
  167. 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
  168. 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
  169. 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
  170. 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
  171. 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
  172. 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
  173. 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
  174. 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
  175. 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
  176. 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
  177. 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
  178. 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
  179. 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
  180. 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
  181. 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
  182. 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
  183. 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
  184. 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
  185. 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
  186. 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
  187. 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
  188. 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
  189. 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
  190. 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
  191. 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
  192. 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
  193. 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
  194. 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
  195. 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
  196. 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
  197. 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
  198. 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
  199. 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
  200. 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
  201. 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
  202. 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
  203. 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
  204. 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
  205. 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
  206. 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
  207. 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
  208. 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
  209. 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
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. 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
  217. 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
  218. 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
  219. 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
  220. 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
  221. 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
  222. 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
  223. 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
  224. 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
  225. 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
  226. 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
  227. 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
  228. 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
  229. 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
  230. 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
  231. 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
  232. 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
  233. 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
  234. 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
  235. 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
  236. 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
  237. 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
  238. 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
  239. 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
  240. 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
  241. 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
  242. 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
  243. 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
  244. 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
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. 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
  251. 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
  252. 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
  253. 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
  254. 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
  255. 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
  256. 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
  257. 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
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. 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
  269. 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
  270. 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
  271. 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
  272. 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
  273. 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
  274. 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
  275. 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
  276. 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
  277. 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
  278. 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
  279. 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
  280. 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
  281. 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
  282. 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
  283. 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
  284. 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
  285. 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
  286. 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
  287. 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
  288. 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
  289. 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
  290. 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
  291. 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
  292. 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
  293. 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
  294. 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
  295. 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
  296. 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
  297. 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
  298. 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
  299. package/wiki/te-docs/raw//346/216/245/345/205/245/346/214/207/345/215/227.md +64 -0
  300. 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
  301. 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
  302. 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
  303. package/wiki/te-docs/schema.md +17 -0
  304. package/wiki/te-docs/synthesis/batch-ingest-comparison.md +117 -0
  305. package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +136 -0
  306. package/wiki/te-docs/synthesis/restful-api-reference.md +142 -0
  307. package/wiki/te-docs/synthesis/sdk-selection.md +79 -0
  308. package/wiki/te-docs/synthesis/server-sdk-overview.md +124 -0
@@ -0,0 +1,1126 @@
1
+ ---
2
+ code: android_sdk_advanced
3
+ name: "进阶指南"
4
+ wikiToken: J7zFwvYawiv1E6k6TsYc5YzXnLc
5
+ parentWikiToken: EnSPwbQvsi8Vm4km9JqcbhQ6nv2
6
+ updateTime: 1773027712000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=android_sdk_advanced
8
+ ---
9
+ # 进阶指南
10
+
11
+ ### 一、设置用户标识
12
+
13
+ SDK 实例默认会使用随机 UUID 作为每个用户的默认访客 ID,该 ID 将会作为用户在未登录状态下身份识别 ID。需要注意的是,访客 ID 在用户重新安装 App 以及更换设备时将会变更。
14
+
15
+ #### 1.1 设置访客 ID
16
+
17
+ ::: tip 提示
18
+
19
+ 一般情况下,您不需要自定义访客 ID. 请确保已经理解用户识别规则,再进行访客 ID 的设置。
20
+
21
+ 如果您需要替换访客 ID,则应当在初始化 SDK 结束之后立即进行调用,请勿多次调用,以免产生无用的账号
22
+
23
+ :::
24
+
25
+ 如果您的 App 对每个用户有自己的访客 ID 管理体系,则您可以调用*`setDistinctId`* 来设置访客 ID:
26
+
27
+ :::: el-tabs
28
+
29
+ ::: el-tab-pane label=Java
30
+
31
+ ```
32
+ // 将访客ID设置为Thinker
33
+ TDAnalytics.*setDistinctId*("Thinker");
34
+ ```
35
+
36
+ :::
37
+
38
+ ::: el-tab-pane label=Kotlin
39
+
40
+ ```
41
+ // 将访客ID设置为Thinker
42
+ TDAnalytics.setDistinctId("Thinker")
43
+ ```
44
+
45
+ :::
46
+
47
+ ::::
48
+
49
+ 如果需要获得当前访客 ID,可以调用 `getDistinctId` 获取:
50
+
51
+ :::: el-tabs
52
+
53
+ ::: el-tab-pane label=Java
54
+
55
+ ```
56
+ //返回访客ID
57
+ String distinctId = TDAnalytics.*getDistinctId*();
58
+ ```
59
+
60
+ :::
61
+
62
+ ::: el-tab-pane label=Kotlin
63
+
64
+ ```
65
+ //返回访客ID
66
+ val distinctId = TDAnalytics.getDistinctId()
67
+ ```
68
+
69
+ :::
70
+
71
+ ::::
72
+
73
+ #### 1.2 设置账号ID
74
+
75
+ 在用户进行登录时,可调用 `login` 来设置用户的账号 ID, AE 平台将会以账号 ID 作为身份识别 ID,并且设置的账号 ID 将会在调用 `logout` 之前一直保留。多次调用 `login` 将覆盖先前的账号 ID 。
76
+
77
+ :::: el-tabs
78
+
79
+ ::: el-tab-pane label=Java
80
+
81
+ ```
82
+ // 用户的登录唯一标识,此数据对应上报数据里的#account_id,此时#account_id的值为TA
83
+ TDAnalytics.*login*("TA");
84
+ ```
85
+
86
+ :::
87
+
88
+ ::: el-tab-pane label=Kotlin
89
+
90
+ ```
91
+ // 用户的登录唯一标识,此数据对应上报数据里的#account_id,此时#account_id的值为TA
92
+ TDAnalytics.*login*("TA")
93
+ ```
94
+
95
+ :::
96
+
97
+ ::::
98
+
99
+ <!-- unsupported block: 34 -->
100
+
101
+ **该方法不会上传登录事件**
102
+
103
+ #### 1.3 清除账号 ID
104
+
105
+ 在用户产生登出行为之后,可调用 `logout` 来清除账号 ID,在下次调用 `login` 之前,将会以访客 ID 作为身份识别 ID。
106
+
107
+ :::: el-tabs
108
+
109
+ ::: el-tab-pane label=Java
110
+
111
+ ```
112
+ TDAnalytics.*logout*();
113
+ ```
114
+
115
+ :::
116
+
117
+ ::: el-tab-pane label=Kotlin
118
+
119
+ ```
120
+ TDAnalytics.*logout*()
121
+ ```
122
+
123
+ :::
124
+
125
+ ::::
126
+
127
+ 我们推荐您在显性的登出事件时调用 `logout`,比如用户产生了注销账号这一行为时才调用,而不需要在关闭 App 时调用。
128
+
129
+ <!-- unsupported block: 34 -->
130
+
131
+ **该方法不会上传登出事件**
132
+
133
+ ### 二、发送事件
134
+
135
+ 在 SDK 初始化完成之后,您就可以进行数据埋点,收集用户的的行为信息。一般情况下普通事件即可满足业务需求,您也可以根据自己的实际业务场景使用首次、可更新等事件。
136
+
137
+ #### 2.1 普通事件
138
+
139
+ 您可以调用 `track` 来上传事件,建议您根据先前梳理的文档来设置事件的属性,此处以用户购买某商品作为范例:
140
+
141
+ :::: el-tabs
142
+
143
+ ::: el-tab-pane label=Java
144
+
145
+ ```
146
+ //商店购买事件
147
+ try {
148
+ JSONObject properties = new JSONObject();
149
+ properties.put("product_name","商品名");
150
+ TDAnalytics.*track*("product_buy",properties);
151
+ } catch (JSONException e) {
152
+ e.printStackTrace();
153
+ }
154
+ ```
155
+
156
+ :::
157
+
158
+ ::: el-tab-pane label=Kotlin
159
+
160
+ ```
161
+ //商店购买事件
162
+ val properties = JSONObject()
163
+ properties.put("product_name", "商品名")
164
+ TDAnalytics.track("product_buy", properties)
165
+ ```
166
+
167
+ :::
168
+
169
+ ::::
170
+
171
+ #### 2.2 首次事件
172
+
173
+ 首次事件是指针对某个设备或者其他维度的 ID,只会记录一次的事件。例如在一些场景下,您可能希望记录在某个设备上的激活事件,则可以用首次事件来上报数据。
174
+
175
+ :::: el-tabs
176
+
177
+ ::: el-tab-pane label=Java
178
+
179
+ ```
180
+ JSONObject properties = new JSONObject();
181
+ try {
182
+ properties.put("key", "value");
183
+ } catch (JSONException e) {
184
+ e.printStackTrace();
185
+ }
186
+
187
+ TDAnalytics.*track*(new TDFirstEventModel("device_activation", properties));
188
+ ```
189
+
190
+ :::
191
+
192
+ ::: el-tab-pane label=Kotlin
193
+
194
+ ```
195
+ val properties = JSONObject()
196
+ properties.put("key", "value")
197
+ TDAnalytics.track(TDFirstEventModel("device_activation", properties))
198
+ ```
199
+
200
+ :::
201
+
202
+ ::::
203
+
204
+ 如果您希望以设备以外的其他维度来判断是否首次,则可以为首次事件自定义first_check_id:
205
+
206
+ :::: el-tabs
207
+
208
+ ::: el-tab-pane label=Java
209
+
210
+ ```
211
+ // 将用户ID设置为首次事件的first_check_id,实现用户首次激活事件的采集
212
+ TDFirstEventModel model = new TDFirstEventModel("device_activation", properties);
213
+ model.setFirstCheckId("TA");
214
+ TDAnalytics.*track*(model);
215
+ ```
216
+
217
+ :::
218
+
219
+ ::: el-tab-pane label=Kotlin
220
+
221
+ ```
222
+ // 将用户ID设置为首次事件的first_check_id,实现用户首次激活事件的采集
223
+ val model = TDFirstEventModel("device_activation", properties)
224
+ model.setFirstCheckId("TA")
225
+ TDAnalytics.track(model)
226
+ ```
227
+
228
+ :::
229
+
230
+ ::::
231
+
232
+ <!-- unsupported block: 34 -->
233
+
234
+ 注意:由于在服务端完成对是否首次的校验,首次事件默认会延时 1 小时入库。
235
+
236
+ #### 2.3 可更新事件
237
+
238
+ 您可以通过可更新事件实现特定场景下需要修改事件数据的需求。可更新事件需要指定标识该事件的 ID,并在创建可更新事件对象时传入。AE 将根据事件名和事件 ID 来确定需要更新的数据。
239
+
240
+ :::: el-tabs
241
+
242
+ ::: el-tab-pane label=Java
243
+
244
+ ```
245
+ // 示例: 上报可被更新的事件,假设事件名为 UPDATABLE_EVENT
246
+ // 上报后事件属性 status 为 3, price 为 100
247
+ JSONObject properties = new JSONObject();
248
+ try {
249
+ properties.put("status", 3);
250
+ properties.put("price", 100);
251
+ } catch (JSONException e) {
252
+ e.printStackTrace();
253
+ }
254
+ TDAnalytics.*track*(new TDUpdatableEventModel("UPDATABLE_EVENT", properties, "test_event_id"));
255
+ // 上报后事件属性 status 被更新为 5, price 不变
256
+ JSONObject properties_new = new JSONObject();
257
+ try {
258
+ properties_new.put("status", 5);
259
+ } catch (JSONException e) {
260
+ e.printStackTrace();
261
+ }
262
+ TDAnalytics.*track*(new TDUpdatableEventModel("UPDATABLE_EVENT", properties_new, "test_event_id"));
263
+ ```
264
+
265
+ :::
266
+
267
+ ::: el-tab-pane label=Kotlin
268
+
269
+ ```
270
+ // 示例: 上报可被更新的事件,假设事件名为 UPDATABLE_EVENT
271
+ // 上报后事件属性 status 为 3, price 为 100
272
+ val properties = JSONObject()
273
+ properties.put("status", 3)
274
+ properties.put("price", 100)
275
+ TDAnalytics.track(TDUpdatableEventModel("UPDATABLE_EVENT", properties, "test_event_id"))
276
+ // 上报后事件属性 status 被更新为 5, price 不变
277
+ val properties_new = JSONObject()
278
+ properties_new.put("status", 5)
279
+ TDAnalytics.track(TDUpdatableEventModel("UPDATABLE_EVENT", properties_new, "test_event_id"))
280
+ ```
281
+
282
+ :::
283
+
284
+ ::::
285
+
286
+ #### 2.4 可重写事件
287
+
288
+ 可重写事件与可更新事件类似,区别在于可重写事件会用最新的数据完全覆盖历史数据,从效果上看相当于删除前一条数据,并入库最新的数据。AE 将根据事件名和事件 ID 来确定需要更新的数据。
289
+
290
+ :::: el-tabs
291
+
292
+ ::: el-tab-pane label=Java
293
+
294
+ ```
295
+ // 示例: 上报可被重写的事件,假设事件名为 OVERWRITE_EVENT
296
+ // 上报后事件属性 status 为 3, price 为 100
297
+ JSONObject properties = new JSONObject();
298
+ try {
299
+ properties.put("status", 3);
300
+ properties.put("price", 100);
301
+ } catch (JSONException e) {
302
+ e.printStackTrace();
303
+ }
304
+ TDAnalytics.*track*(new TDOverWritableEventModel("OVERWRITE_EVENT", properties, "test_event_id"));
305
+ // 上报后事件属性 status 被更新为 5, price 属性被删除
306
+ JSONObject properties_new = new JSONObject();
307
+ try {
308
+ properties_new.put("status", 5);
309
+ } catch (JSONException e) {
310
+ e.printStackTrace();
311
+ }
312
+ TDAnalytics.*track*(new TDOverWritableEventModel("OVERWRITE_EVENT", properties_new, "test_event_id"));
313
+ ```
314
+
315
+ :::
316
+
317
+ ::: el-tab-pane label=Kotlin
318
+
319
+ ```
320
+ // 示例: 上报可被重写的事件,假设事件名为 OVERWRITE_EVENT
321
+ // 上报后事件属性 status 为 3, price 为 100
322
+ val properties = JSONObject()
323
+ properties.put("status", 3)
324
+ properties.put("price", 100)
325
+ TDAnalytics.track(TDOverWritableEventModel("OVERWRITE_EVENT", properties, "test_event_id"))
326
+ // 上报后事件属性 status 被更新为 5, price 属性被删除
327
+ val properties_new = JSONObject()
328
+ properties_new.put("status", 5)
329
+ TDAnalytics.track(TDOverWritableEventModel("OVERWRITE_EVENT", properties_new, "test_event_id"))
330
+ ```
331
+
332
+ :::
333
+
334
+ ::::
335
+
336
+ #### 2.5 公共事件属性
337
+
338
+ 公共事件属性指的就是每个事件都会上传的属性。根据属性更新频率,公共事件属性分为`静态公共事件属性`和`动态公共事件属性`。您可以根据具体的业务场景需求,选择不同的公共事件属性设置方法;我们推荐您在发送事件前,先设置公共事件属性。针对同一事件,当公共事件属性、事件自定义属性、预置属性的Key相同时,我们会按照如下优先级进行赋值:`自定义属性>动态公共事件属性>静态公共事件属性>预置属性`。
339
+
340
+ ##### 2.5.1 静态公共事件属性
341
+
342
+ 静态公共事件属性是低频变化且每个事件都会带有的属性,如用户会员等级。通过`setSuperProperties`设置静态公共事件属性之后,SDK将会在事件采集时获取设置的公共事件属性作为事件的属性。
343
+
344
+ :::: el-tabs
345
+
346
+ ::: el-tab-pane label=Java
347
+
348
+ ```
349
+ //设置公共事件属性
350
+ try {
351
+ JSONObject superProperties = new JSONObject();
352
+ superProperties.put("vip_level",2);
353
+ TDAnalytics.*setSuperProperties*(superProperties);
354
+ } catch (JSONException e) {
355
+ e.printStackTrace();
356
+ }
357
+ ```
358
+
359
+ :::
360
+
361
+ ::: el-tab-pane label=Kotlin
362
+
363
+ ```
364
+ //设置公共事件属性
365
+ val superProperties = JSONObject()
366
+ superProperties.put("vip_level", 2)
367
+ TDAnalytics.setSuperProperties(superProperties)
368
+ ```
369
+
370
+ :::
371
+
372
+ ::::
373
+
374
+ 静态公共事件属性将会被保存到缓存中,无需每次启动 App 时调用。如果该属性已存在,重新设置的属性将会覆盖原有属性值;如果之前不存在该属性,则会新建属性。除了属性设置,我们也提供其他API来管理静态公共事件属性,满足日常的业务需求。
375
+
376
+ :::: el-tabs
377
+
378
+ ::: el-tab-pane label=Java
379
+
380
+ ```
381
+ //清除某个公共事件属性
382
+ TDAnalytics.*unsetSuperProperty*("Channel");
383
+ //清除所有公共事件属性
384
+ TDAnalytics.*clearSuperProperties*();
385
+ //获取所有公共事件属性
386
+ TDAnalytics.*getSuperProperties*();
387
+ ```
388
+
389
+ :::
390
+
391
+ ::: el-tab-pane label=Kotlin
392
+
393
+ ```
394
+ //清除某个公共事件属性
395
+ TDAnalytics.*unsetSuperProperty*("Channel")
396
+ //清除所有公共事件属性
397
+ TDAnalytics.*clearSuperProperties*()
398
+ //获取所有公共事件属性
399
+ TDAnalytics.*getSuperProperties*()
400
+ ```
401
+
402
+ :::
403
+
404
+ ::::
405
+
406
+ ##### 2.5.2 动态公共事件属性
407
+
408
+ 动态公共事件属性是高频变化且每个事件都会带有的属性,如用户的金币数量。通过 `setDynamicSuperPropertiesTracker` 设置动态公共属性类之后,SDK 将会在事件采集时自动获取 `getDynamicSuperProperties` 中的属性,并添加到触发的事件中。
409
+
410
+ :::: el-tabs
411
+
412
+ ::: el-tab-pane label=Java
413
+
414
+ ```
415
+ int coin = 0;
416
+ TDAnalytics.*setDynamicSuperProperties*(new TDAnalytics.TDDynamicSuperPropertiesHandler() {
417
+ @Override
418
+ public JSONObject getDynamicSuperProperties() {
419
+ JSONObject dynamicSuperProperties = new JSONObject();
420
+ coin++;//金币数目频繁更新
421
+ try {
422
+ dynamicSuperProperties.put("coin",coin);
423
+ } catch (JSONException e) {
424
+ e.printStackTrace();
425
+ }
426
+ return dynamicSuperProperties;
427
+ }
428
+ });
429
+ ```
430
+
431
+ :::
432
+
433
+ ::: el-tab-pane label=Kotlin
434
+
435
+ ```
436
+ var coin = 0
437
+ TDAnalytics.setDynamicSuperProperties(object :TDDynamicSuperPropertiesHandler{
438
+ override fun getDynamicSuperProperties(): JSONObject {
439
+ val dynamicSuperProperties = JSONObject()
440
+ coin++ //金币数目频繁更新
441
+ dynamicSuperProperties.put("coin", coin)
442
+ return dynamicSuperProperties
443
+ }
444
+ })
445
+ ```
446
+
447
+ :::
448
+
449
+ ::::
450
+
451
+ #### 2.6 记录事件时长
452
+
453
+ 如果您需要记录某个事件的持续时长,可以调用 `timeEvent` 来开始计时。配置您想要计时的事件名称,当您上传该事件时,将会自动在您的事件属性中加入 `#duration` 这一属性来表示记录的时长,单位为秒。需要注意的是,同一个事件名只能有一个在计时的任务。
454
+
455
+ :::: el-tabs
456
+
457
+ ::: el-tab-pane label=Java
458
+
459
+ ```
460
+ //以下示例,完成用户在某个商品页面停留时长的统计
461
+ try {
462
+ //用户进入商品页面,开始计时
463
+ TDAnalytics.*timeEvent*("stay_shop");
464
+ /**do someting
465
+ .......
466
+ **/
467
+ //用户离开商品页面,计时结束,"stay_shop" 这一事件中将会带有表示事件时长的属性#duration
468
+ TDAnalytics.*track*("stay_shop");
469
+ } catch (JSONException e) {
470
+ e.printStackTrace();
471
+ }
472
+ ```
473
+
474
+ :::
475
+
476
+ ::: el-tab-pane label=Kotlin
477
+
478
+ ```
479
+ //以下示例,完成用户在某个商品页面停留时长的统计
480
+ //用户进入商品页面,开始计时
481
+ TDAnalytics.timeEvent("stay_shop")
482
+ */**do someting*
483
+ * * .......*
484
+ * */*
485
+ //用户离开商品页面,计时结束,"stay_shop" 这一事件中将会带有表示事件时长的属性#duration
486
+ TDAnalytics.track("stay_shop")
487
+ ```
488
+
489
+ :::
490
+
491
+ ::::
492
+
493
+ ### 三、用户属性
494
+
495
+ TE支持的用户属性设置API有: `userSet`、`userSetOnce`、`userAdd`、`userUnset`、`userDelete`、`userAppend`、`userUniqAppend`
496
+
497
+ #### 3.1 userSet
498
+
499
+ 对于一般的用户属性,您可以调用`userSet`来进行设置。使用该接口上传的属性将会覆盖原有的属性值,如果之前不存在该用户属性,则会新建该用户属性,类型与传入属性的类型一致,此处以设置用户名为例:
500
+
501
+ :::: el-tabs
502
+
503
+ ::: el-tab-pane label=Java
504
+
505
+ ```
506
+ try {
507
+ //此时username为TA
508
+ JSONObject properties = new JSONObject();
509
+ properties.put("username","TA");
510
+ TDAnalytics.*userSet*(properties);
511
+ //此时userName为TE
512
+ JSONObject newProperties = new JSONObject();
513
+ newProperties.put("username","TE");
514
+ TDAnalytics.*userSet*(newProperties);
515
+ } catch (JSONException e) {
516
+ e.printStackTrace();
517
+ }
518
+ ```
519
+
520
+ :::
521
+
522
+ ::: el-tab-pane label=Kotlin
523
+
524
+ ```
525
+ //此时username为TA
526
+ val properties = JSONObject()
527
+ properties.put("username", "TA")
528
+ TDAnalytics.userSet(properties)
529
+ //此时userName为TE
530
+ val newProperties = JSONObject()
531
+ newProperties.put("username", "TE")
532
+ TDAnalytics.userSet(newProperties)
533
+ ```
534
+
535
+ :::
536
+
537
+ ::::
538
+
539
+ #### 3.2 userSetOnce
540
+
541
+ 如果您要上传的用户属性只要设置一次,则可以调用 `userSetOnce` 来进行设置,当该属性之前已经有值的时候,将会忽略这条信息,以设置首次付费时间来为例:
542
+
543
+ :::: el-tabs
544
+
545
+ ::: el-tab-pane label=Java
546
+
547
+ ```
548
+ try {
549
+ //first_payment_time为2018-01-01 01:23:45.678
550
+ JSONObject properties = new JSONObject();
551
+ properties.put("first_payment_time","2018-01-01 01:23:45.678");
552
+ TDAnalytics.*userSetOnce*(properties);
553
+
554
+ //first_payment_time仍然为2018-01-01 01:23:45.678
555
+ JSONObject newProperties = new JSONObject();
556
+ newProperties.put("first_payment_time","2018-12-31 01:23:45.678");
557
+ TDAnalytics.*userSetOnce*(newProperties);
558
+
559
+ } catch (JSONException e) {
560
+ e.printStackTrace();
561
+ }
562
+ ```
563
+
564
+ :::
565
+
566
+ ::: el-tab-pane label=Kotlin
567
+
568
+ ```
569
+ //first_payment_time为2018-01-01 01:23:45.678
570
+ val properties = JSONObject()
571
+ properties.put("first_payment_time", "2018-01-01 01:23:45.678")
572
+ TDAnalytics.userSetOnce(properties)
573
+
574
+ //first_payment_time仍然为2018-01-01 01:23:45.678
575
+ val newProperties = JSONObject()
576
+ newProperties.put("first_payment_time", "2018-12-31 01:23:45.678")
577
+ TDAnalytics.userSetOnce(newProperties)
578
+ ```
579
+
580
+ :::
581
+
582
+ ::::
583
+
584
+ #### 3.3 userAdd
585
+
586
+ 当您要上传数值型的属性进行累加操作时,您可以调用`userAdd`。如果该属性还未被设置,则会赋值 0 后再进行计算,可传入负值,等同于相减操作。此处以累计付费金额为例:
587
+
588
+ :::: el-tabs
589
+
590
+ ::: el-tab-pane label=Java
591
+
592
+ ```
593
+ try {
594
+ //此时total_revenue为30
595
+ JSONObject properties = new JSONObject();
596
+ properties.put("total_revenue",30);
597
+ TDAnalytics.*userAdd*(properties);
598
+
599
+ //此时total_revenue为678
600
+ JSONObject newProperties = new JSONObject();
601
+ newProperties.put("total_revenue",648);
602
+ TDAnalytics.*userAdd*(newProperties);
603
+ } catch (JSONException e) {
604
+ e.printStackTrace();
605
+ }
606
+ ```
607
+
608
+ :::
609
+
610
+ ::: el-tab-pane label=Kotlin
611
+
612
+ ```
613
+ //此时total_revenue为30
614
+ val properties = JSONObject()
615
+ properties.put("total_revenue", 30)
616
+ TDAnalytics.userAdd(properties)
617
+
618
+ //此时total_revenue为678
619
+ val newProperties = JSONObject()
620
+ newProperties.put("total_revenue", 648)
621
+ TDAnalytics.userAdd(newProperties)
622
+ ```
623
+
624
+ :::
625
+
626
+ ::::
627
+
628
+ #### 3.4 userUnset
629
+
630
+ 当您要清空用户的用户属性值时,您可以调用` userUnset`来对指定属性进行清空操作,如果该属性还未在集群中被创建,则 `userUnset`**不会**创建该属性
631
+
632
+ :::: el-tabs
633
+
634
+ ::: el-tab-pane label=Java
635
+
636
+ ```
637
+ // 重置单个用户属性
638
+ TDAnalytics.*userUnset*("key1");
639
+ // 重置多个用户属性
640
+ TDAnalytics.*userUnset*("key1", "key2", "key3");
641
+ ```
642
+
643
+ :::
644
+
645
+ ::: el-tab-pane label=Kotlin
646
+
647
+ ```
648
+ // 重置单个用户属性
649
+ TDAnalytics.*userUnset*("key1")
650
+ // 重置多个用户属性
651
+ TDAnalytics.*userUnset*("key1", "key2", "key3")
652
+ ```
653
+
654
+ :::
655
+
656
+ ::::
657
+
658
+ #### 3.5 userDelete
659
+
660
+ 如果您要删除某个用户,可以调用 `userDelete`将这名用户删除,您将无法再查询该名用户的用户属性,但该用户产生的事件仍然可以被查询到。
661
+
662
+ :::: el-tabs
663
+
664
+ ::: el-tab-pane label=Java
665
+
666
+ ```
667
+ TDAnalytics.*userDelete*();
668
+ ```
669
+
670
+ :::
671
+
672
+ ::: el-tab-pane label=Kotlin
673
+
674
+ ```
675
+ TDAnalytics.*userDelete*()
676
+ ```
677
+
678
+ :::
679
+
680
+ ::::
681
+
682
+ #### 3.6 userAppend
683
+
684
+ 您可以调用`userAppend`对数组类型的用户属性进行追加操作。
685
+
686
+ :::: el-tabs
687
+
688
+ ::: el-tab-pane label=Java
689
+
690
+ ```
691
+ try {
692
+ // list 为用户属性 user_list 的值,JSONArray 类型
693
+ JSONArray list = new JSONArray("[\"apple\", \"ball\"]");
694
+ JSONObject properties = new JSONObject();
695
+ properties.put("user_list", list);
696
+ // 调用 user_append 为用户属性 user_list 追加元素。如果不存在,会新建该元素
697
+ TDAnalytics.*userAppend*(properties);
698
+ } catch (JSONException e) {
699
+ e.printStackTrace();
700
+ }
701
+ ```
702
+
703
+ :::
704
+
705
+ ::: el-tab-pane label=Kotlin
706
+
707
+ ```
708
+ // list 为用户属性 user_list 的值,JSONArray 类型
709
+ val list = JSONArray("[\"apple\", \"ball\"]")
710
+ val properties = JSONObject()
711
+ properties.put("user_list", list)
712
+ // 调用 user_append 为用户属性 user_list 追加元素。如果不存在,会新建该元素
713
+ TDAnalytics.userAppend(properties)
714
+ ```
715
+
716
+ :::
717
+
718
+ ::::
719
+
720
+ #### 3.7 userUniqAppend
721
+
722
+ 您可以调用 `userUniqAppend` 对 数组类型的用户属性进行追加操作。调用 `userUniqAppend`接口会对追加的用户属性进行去重, userAppend 接口不做去重,用户属性可存在重复。
723
+
724
+ :::: el-tabs
725
+
726
+ ::: el-tab-pane label=Java
727
+
728
+ ```
729
+ try {
730
+ // list 为用户属性 user_list 的值,JSONArray 类型
731
+ //此时user_list的属性值为["apple","ball"]
732
+ JSONArray list = new JSONArray("[\"apple\", \"ball\"]");
733
+ JSONObject properties = new JSONObject();
734
+ properties.put("user_list", list);
735
+ TDAnalytics.*userAppend*(properties);
736
+
737
+
738
+ //此时user_list的属性值为["apple","apple","ball","cube"]
739
+ JSONArray list1 = new JSONArray("[\"apple\", \"cube\"]");
740
+ JSONObject properties1 = new JSONObject();
741
+ properties1.put("user_list", list1);
742
+ TDAnalytics.*userAppend*(properties1);
743
+
744
+ //此时user_list的属性值为["apple","ball","cube"]
745
+ TDAnalytics.*userUniqAppend*(properties1);
746
+
747
+ } catch (JSONException e) {
748
+ e.printStackTrace();
749
+ }
750
+ ```
751
+
752
+ :::
753
+
754
+ ::: el-tab-pane label=Kotlin
755
+
756
+ ```
757
+ // list 为用户属性 user_list 的值,JSONArray 类型
758
+ //此时user_list的属性值为["apple","ball"]
759
+ val list = JSONArray("[\"apple\", \"ball\"]")
760
+ val properties = JSONObject()
761
+ properties.put("user_list", list)
762
+ TDAnalytics.userAppend(properties)
763
+
764
+ //此时user_list的属性值为["apple","apple","ball","cube"]
765
+ val list1 = JSONArray("[\"apple\", \"cube\"]")
766
+ val properties1 = JSONObject()
767
+ properties1.put("user_list", list1)
768
+ TDAnalytics.userAppend(properties1)
769
+
770
+ //此时user_list的属性值为["apple","ball","cube"]
771
+ TDAnalytics.userUniqAppend(properties1)
772
+ ```
773
+
774
+ :::
775
+
776
+ ::::
777
+
778
+ ### 四、加密功能
779
+
780
+ 从 v2.8.0 版本开始,SDK 支持使用AES+RSA加密数据。数据加密功能需要客户端和服务端配合完成,具体使用方法请咨询客户成功人员。
781
+
782
+ :::: el-tabs
783
+
784
+ ::: el-tab-pane label=Java
785
+
786
+ ```
787
+ TDConfig config = TDConfig.getInstance(mContext,TA_APP_ID,TA_SERVER_URL);
788
+ //开启加密功能 设置公钥信息
789
+ config.enableEncrypt(1,"publicKey")
790
+ ```
791
+
792
+ :::
793
+
794
+ ::: el-tab-pane label=Kotlin
795
+
796
+ ```
797
+ val config = TDConfig.getInstance(mContext,TA_APP_ID,TA_SERVER_URL)
798
+ //开启加密功能 设置公钥信息
799
+ config.enableEncrypt(1,"publicKey")
800
+ ```
801
+
802
+ :::
803
+
804
+ ::::
805
+
806
+ ### 五、开启与 H5 页面的打通
807
+
808
+ 如果需要与采集 H5 页面数据的 JavaScript SDK 进行打通,在初始化 `WebView` 时调用如下接口,详情请参考H5 与 APP SDK 打通一节
809
+
810
+ :::: el-tabs
811
+
812
+ ::: el-tab-pane label=Java
813
+
814
+ ```
815
+ // 打通 H5 页面数据
816
+ TDAnalytics.setJsBridge(webView);
817
+ ```
818
+
819
+ :::
820
+
821
+ ::: el-tab-pane label=Kotlin
822
+
823
+ ```
824
+ // 打通 H5 页面数据
825
+ TDAnalytics.setJsBridge(webView)
826
+ ```
827
+
828
+ :::
829
+
830
+ ::::
831
+
832
+ ### 六、其他功能
833
+
834
+ #### 6.1 获取设备 ID
835
+
836
+ 您可以通过调用 `getDeviceId` 来获取设备 ID:
837
+
838
+ :::: el-tabs
839
+
840
+ ::: el-tab-pane label=Java
841
+
842
+ ```
843
+ String deviceID = TDAnalytics.*getDeviceId*();//设备ID取值Android ID
844
+ ```
845
+
846
+ :::
847
+
848
+ ::: el-tab-pane label=Kotlin
849
+
850
+ ```
851
+ val deviceID = TDAnalytics.getDeviceId() //设备ID取值Android ID
852
+ ```
853
+
854
+ :::
855
+
856
+ ::::
857
+
858
+ #### 6.2 设置默认时区
859
+
860
+ 默认情况下,SDK 会使用本机时间作为事件发生时间。您也可以通过设置默认时区接口,指定时区,这样所有的事件都将按照您设置的时区来对齐事件时间:
861
+
862
+ :::: el-tabs
863
+
864
+ ::: el-tab-pane label=Java
865
+
866
+ ```
867
+ // 获取 TDConfig 实例
868
+ TDConfig config = TDConfig.getInstance(this, TA_APP_ID, TA_SERVER_URL);
869
+ // 设置默认时区为 UTC
870
+ config.setDefaultTimeZone(TimeZone.getTimeZone("UTC"));
871
+ // 初始化 SDK
872
+ TDAnalytics.*init*(config);
873
+ ```
874
+
875
+ :::
876
+
877
+ ::: el-tab-pane label=Kotlin
878
+
879
+ ```
880
+ // 获取 TDConfig 实例
881
+ val config = TDConfig.getInstance(this, TA_APP_ID, TA_SERVER_URL)
882
+ // 设置默认时区为 UTC
883
+ config.*defaultTimeZone *= TimeZone.getTimeZone("UTC")
884
+ // 初始化 SDK
885
+ TDAnalytics.init(config)
886
+ ```
887
+
888
+ :::
889
+
890
+ ::::
891
+
892
+ <!-- unsupported block: 34 -->
893
+
894
+ 用指定时区对齐事件时间,会丢掉设备本机时区信息。如果需要保留设备本机时区信息,目前需要您自己为事件添加相关属性。
895
+
896
+ #### 6.3 校准时间
897
+
898
+ SDK 默认会使用本机时间作为事件发生时间,如果用户手动修改设备时间会影响到您的业务分析,此时可以通过校准时间操作保证事件发生时间的准确性。我们提供`时间戳、NTP`两种时间校准方式。
899
+
900
+ - 您可以使用从服务端获取的当前时间戳对 SDK 的时间进行校准。此后,所有未指定时间的调用,包括事件数据和用户属性设置操作,都会使用校准后的时间作为发生时间。
901
+ :::: el-tabs
902
+
903
+ ::: el-tab-pane label=Java
904
+
905
+ ```
906
+ // 1585633785954 为当前 unix 时间戳,单位为毫秒,对应北京时间 2020-03-31 13:49:45
907
+ TDAnalytics.calibrateTime(1585633785954);
908
+ ```
909
+
910
+ :::
911
+
912
+ ::: el-tab-pane label=Kotlin
913
+
914
+ ```
915
+ // 1585633785954 为当前 unix 时间戳,单位为毫秒,对应北京时间 2020-03-31 13:49:45
916
+ TDAnalytics.calibrateTime(1585633785954)
917
+ ```
918
+
919
+ :::
920
+
921
+ ::::
922
+
923
+ - 您也可以设置NTP服务器地址,之后 SDK 会尝试从传入的 NTP 服务地址中获取当前时间,并对 SDK 时间进行校准。如果在默认的超时时间(3 秒)之内,未获取正确的返回结果,后续将使用本地时间上报数据。
924
+ :::: el-tabs
925
+
926
+ ::: el-tab-pane label=Java
927
+
928
+ ```
929
+ // 使用苹果公司 NTP 服务对时间进行校准
930
+ TDAnalytics.calibrateTimeWithNtp("time.apple.com");
931
+ ```
932
+
933
+ :::
934
+
935
+ ::: el-tab-pane label=Kotlin
936
+
937
+ ```
938
+ // 使用苹果公司 NTP 服务对时间进行校准
939
+ TDAnalytics.calibrateTimeWithNtp("time.apple.com")
940
+ ```
941
+
942
+ :::
943
+
944
+ ::::
945
+
946
+ <!-- unsupported block: 34 -->
947
+
948
+ 1、使用 NTP 服务进行时间校准存在一定的不确定性,建议您优先考虑用时间戳校准的方式
949
+
950
+ 2、您需要谨慎地选择您的 NTP 服务器地址,以保证网络状况良好的情况下,用户设备可以很快的获取到服务器时间
951
+
952
+ #### 6.4 立即上报数据
953
+
954
+ 在某些业务场景下,如果您期望数据立即上报到 AE 服务器,可以通过调用`flush`接口完成
955
+
956
+ :::: el-tabs
957
+
958
+ ::: el-tab-pane label=Java
959
+
960
+ ```
961
+ TDAnalytics.flush();
962
+ ```
963
+
964
+ :::
965
+
966
+ ::: el-tab-pane label=Kotlin
967
+
968
+ ```
969
+ TDAnalytics.flush()
970
+ ```
971
+
972
+ :::
973
+
974
+ ::::
975
+
976
+ #### 6.5 获取国家/地区代码
977
+
978
+ 在某些业务场景下,如果您需要知道用户设备的国家/地区代码,可以通过`getLocalRegion`来获取
979
+
980
+ :::: el-tabs
981
+
982
+ ::: el-tab-pane label=Java
983
+
984
+ ```
985
+ TDAnalytics.getLocalRegion();
986
+ ```
987
+
988
+ :::
989
+
990
+ ::: el-tab-pane label=Kotlin
991
+
992
+ ```
993
+ TDAnalytics.getLocalRegion()
994
+ ```
995
+
996
+ :::
997
+
998
+ ::::
999
+
1000
+ #### 6.6 禁止AndroidID获取
1001
+
1002
+ 如果您不需要项目中出现安卓ID采集的代码,可以利用插件来实现敏感属性(如AndroidID)的代码隔离。
1003
+
1004
+ 安卓分析SDK版本
1005
+
1006
+ 插件版本
1007
+
1008
+ [oldest - 3.0.0)
1009
+
1010
+ 1.2.0
1011
+
1012
+ [3.0.0 - 3.1.0]
1013
+
1014
+ 2.1.0
1015
+
1016
+ (3.1.0 - latest]
1017
+
1018
+ 2.2.0
1019
+
1020
+ ```
1021
+ buildscript {
1022
+ repositories {
1023
+ google()
1024
+ jcenter()
1025
+ }
1026
+ dependencies {
1027
+ classpath 'cn.thinkingdata.android:android-gradle-plugin2:2.2.0'
1028
+ }
1029
+ }
1030
+ // Configure disableAndroidID to true in the project build.gradle file
1031
+ apply plugin: 'cn.thinkingdata.android'
1032
+ android {}
1033
+ ThinkingAnalytics {
1034
+ debug = true
1035
+ sdk{
1036
+ disableAndroidID = true
1037
+ }
1038
+ }
1039
+ ```
1040
+
1041
+ 参数详解:
1042
+
1043
+ - debug :是否打开编译日志,true为打开编译日志,默认为false。
1044
+ - exclude :排除扫描某个路径下的类,可以通过设置exclude = ['cn.thinkingdata.android','android.support']。
1045
+ - useInclude 、include:只想扫描某个路径下的类,可以设置useInclude = true,include= ['cn.thinkingdata.android','android.support']。
1046
+ - disableAndroidID :是否禁用调用系统API获取AndroidID,从插件V2.1.0版本开始,可通过设置disableAndroidID = true来配置。
1047
+ #### 6.7 支持IP上报数据
1048
+
1049
+ 为了预防或解决因DNS劫持导致客户端数据无法正常上报到服务器问题,SDK通过解析ServerUrl获取IP,然后通过IP直接上报数据至服务器。具体开启示例如下:
1050
+
1051
+ :::: el-tabs
1052
+
1053
+ ::: el-tab-pane label=Java
1054
+
1055
+ ```
1056
+ TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
1057
+ List<TDConfig.TDDNSService> list = new ArrayList<>();
1058
+ list.add(TDConfig.TDDNSService.*CLOUD_ALI*);
1059
+ list.add(TDConfig.TDDNSService.*CLOUD_FLARE*);
1060
+ list.add(TDConfig.TDDNSService.*CLOUD_GOOGLE*);
1061
+ config.enableDNSService(list);
1062
+ ```
1063
+
1064
+ :::
1065
+
1066
+ ::: el-tab-pane label=Kotlin
1067
+
1068
+ ```
1069
+ val config = TDConfig.getInstance(this, APPID, TE_SERVER_URL)
1070
+ val list: MutableList<TDDNSService> = ArrayList()
1071
+ list.add(TDDNSService.*CLOUD_ALI*)
1072
+ list.add(TDDNSService.*CLOUD_FLARE*)
1073
+ list.add(TDDNSService.*CLOUD_GOOGLE*)
1074
+ config.enableDNSService(list)
1075
+ ```
1076
+
1077
+ :::
1078
+
1079
+ ::::
1080
+
1081
+ #### 6.8 支持sdk错误回调
1082
+
1083
+ <!-- unsupported block: 19 -->
1084
+
1085
+ 需要安卓SDK版本>=3.2.0
1086
+
1087
+ 在某些场景下,您有可能想在网络请求失败时自定义操作,这就可以注册errorCallback,具体开启事例如下:
1088
+
1089
+ :::: el-tabs
1090
+
1091
+ ::: el-tab-pane label=Java
1092
+
1093
+ ```
1094
+ TDAnalytics.*registerErrorCallback*(new TDAnalytics.TDSendDataErrorCallback() {
1095
+ @Override
1096
+ public void onSDKErrorCallback(int code, String errorMsg, String ext) {
1097
+ // *todo*
1098
+ * *}
1099
+ });
1100
+ ```
1101
+
1102
+ :::
1103
+
1104
+ ::: el-tab-pane label=Kotlin
1105
+
1106
+ ```
1107
+ TDAnalytics.registerErrorCallback(object : TDAnalytics.TDSendDataErrorCallback {
1108
+ override fun onSDKErrorCallback(code: Int, errorMsg: String?, ext: String?) {
1109
+ // *todo*
1110
+ * *}
1111
+ })
1112
+ ```
1113
+
1114
+ :::
1115
+
1116
+ ::::
1117
+
1118
+ code错误码
1119
+
1120
+ 错误码
1121
+
1122
+ 描述
1123
+
1124
+ 1001
1125
+
1126
+ 网络请求失败