@thinkingai/ae-cli 1.0.28 → 6.0.16

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 (360) hide show
  1. package/README.md +1 -16
  2. package/README.zh.md +1 -16
  3. package/dist/{auth-H2376DEF.js → auth-DYC2BGLM.js} +2 -2
  4. package/dist/{auth-5NSDQFQB.js → auth-GHBMJ5ZR.js} +31 -12
  5. package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
  6. package/dist/chunk-5OC7CYCG.js +98 -0
  7. package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
  8. package/dist/{chunk-LU7SXK4Q.js → chunk-BJX3GXWC.js} +2 -2
  9. package/dist/{chunk-WCHI7725.js → chunk-DMMEPCST.js} +47 -6
  10. package/dist/{chunk-IMBKVXKY.js → chunk-EGEIXA2Z.js} +82 -10
  11. package/dist/{chunk-AD5V3ZPJ.js → chunk-I5CRVM2S.js} +98 -10
  12. package/dist/chunk-NOO24N7W.js +11 -0
  13. package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
  14. package/dist/{chunk-CAQYQA4R.js → chunk-RSHMZ3LG.js} +15 -1
  15. package/dist/{client-FCMK3XEK.js → client-2UJ63MVQ.js} +3 -3
  16. package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
  17. package/dist/index.js +2549 -29
  18. package/dist/{model-EZ6K7FXI.js → model-SJSOZTRS.js} +5 -7
  19. package/dist/{raw-VEF3D6UD.js → raw-7NVWSVJP.js} +4 -4
  20. package/dist/{sync-NRODEVNH.js → sync-GRVO4K3U.js} +120 -23
  21. package/dist/{te-agent-7U7JLJKU.js → te-agent-KZRIEN4N.js} +468 -47
  22. package/dist/{te-analysis-A2OSGHQ4.js → te-analysis-VAR4KUOK.js} +145 -28
  23. package/dist/{te-audience-LI67PPGO.js → te-audience-KMKYI2YJ.js} +23 -14
  24. package/dist/{te-common-35WVU3C5.js → te-common-WNCZB7R7.js} +5 -4
  25. package/dist/{te-community-LEAP6PWT.js → te-community-JEEFXPB3.js} +11 -10
  26. package/dist/{te-dataops-N2LGZBOX.js → te-dataops-GD3XBYCS.js} +33 -32
  27. package/dist/{te-engage-H7C72Z46.js → te-engage-4XHCTS6I.js} +5 -4
  28. package/dist/{te-kb-I2OKTBAI.js → te-kb-B62KFP2A.js} +97 -7
  29. package/dist/{te-meta-HBTIEDRO.js → te-meta-EPZGQN56.js} +10 -9
  30. package/dist/{te-team-EM5OWRQL.js → te-team-YY24VORI.js} +16 -12
  31. package/dist/tracking/i18n/resources/cli/en.json +153 -0
  32. package/dist/tracking/i18n/resources/cli/ja.json +153 -0
  33. package/dist/tracking/i18n/resources/cli/ko.json +153 -0
  34. package/dist/tracking/i18n/resources/cli/zh.json +153 -0
  35. package/package.json +9 -3
  36. package/skills/ae-agent/SKILL.md +66 -26
  37. package/skills/ae-analysis/SKILL.md +108 -8
  38. package/skills/ae-analysis/references/cancel_query.md +39 -0
  39. package/skills/ae-analysis/references/drilldown_user_events.md +4 -2
  40. package/skills/ae-analysis/references/drilldown_users.md +4 -2
  41. package/skills/ae-analysis/references/get_bi_panel_detail.md +35 -0
  42. package/skills/ae-analysis/references/list_alerts.md +1 -1
  43. package/skills/ae-analysis/references/list_bi_panels.md +35 -0
  44. package/skills/ae-analysis/references/list_cluster_members.md +4 -1
  45. package/skills/ae-analysis/references/list_dashboards.md +1 -1
  46. package/skills/ae-analysis/references/list_entities.md +1 -1
  47. package/skills/ae-analysis/references/list_events.md +1 -1
  48. package/skills/ae-analysis/references/list_metrics.md +1 -1
  49. package/skills/ae-analysis/references/list_project_mark_times.md +1 -1
  50. package/skills/ae-analysis/references/list_properties.md +1 -1
  51. package/skills/ae-analysis/references/list_public_access_links.md +1 -1
  52. package/skills/ae-analysis/references/list_reports.md +1 -1
  53. package/skills/ae-analysis/references/list_tag_members.md +4 -1
  54. package/skills/ae-analysis/references/query_adhoc.md +6 -5
  55. package/skills/ae-analysis/references/query_bi_panel_data.md +58 -0
  56. package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -1
  57. package/skills/ae-analysis/references/query_entity_details.md +5 -2
  58. package/skills/ae-analysis/references/query_event_details.md +4 -1
  59. package/skills/ae-analysis/references/query_report_data.md +2 -2
  60. package/skills/ae-analysis-global/SKILL.md +3 -1
  61. package/skills/ae-analysis-intent/SKILL.md +132 -0
  62. package/skills/ae-data-integration-helper/SKILL.md +242 -0
  63. package/skills/ae-data-integration-helper/references/android_sdk_faq.md +179 -0
  64. package/skills/ae-data-integration-helper/references/c_sdk_compilation.md +83 -0
  65. package/skills/ae-data-integration-helper/references/c_sdk_faq.md +416 -0
  66. package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +123 -0
  67. package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +365 -0
  68. package/skills/ae-data-integration-helper/references/index.md +56 -0
  69. package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +118 -0
  70. package/skills/ae-data-integration-helper/references/java_sdk_faq.md +406 -0
  71. package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +129 -0
  72. package/skills/ae-data-integration-helper/references/logbus2_guide.md +309 -0
  73. package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +348 -0
  74. package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +115 -0
  75. package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +118 -0
  76. package/skills/ae-data-integration-helper/references/python_sdk_faq.md +232 -0
  77. package/skills/ae-data-integration-helper/references/restful_api_notes.md +74 -0
  78. package/skills/ae-data-integration-helper/references/sdk_log_guide.md +316 -0
  79. package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +107 -0
  80. package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +115 -0
  81. package/skills/ae-generate-tracking-code/SKILL.md +629 -0
  82. package/skills/ae-generate-tracking-code/references/autotrack-enum.md +183 -0
  83. package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +202 -0
  84. package/skills/ae-generate-tracking-code/references/datax-config.md +43 -0
  85. package/skills/ae-generate-tracking-code/references/debug-script.md +102 -0
  86. package/skills/ae-generate-tracking-code/references/logbus-config.md +200 -0
  87. package/skills/ae-generate-tracking-code/references/modes.md +83 -0
  88. package/skills/ae-generate-tracking-code/references/restful-call.md +36 -0
  89. package/skills/ae-generate-tracking-code/references/sdk-index.md +128 -0
  90. package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +206 -0
  91. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +394 -0
  92. package/skills/ae-generate-tracking-code/references/te-api.md +181 -0
  93. package/skills/ae-generate-tracking-plan/SKILL.md +1083 -0
  94. package/skills/ae-generate-tracking-plan/references/autotrack-events.md +273 -0
  95. package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +425 -0
  96. package/skills/ae-generate-tracking-plan/references/te-api.md +100 -0
  97. package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +152 -0
  98. package/skills/ae-kb/SKILL.md +38 -5
  99. package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +104 -0
  100. package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  101. package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +117 -0
  102. package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
  103. package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +72 -0
  104. package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  105. package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +86 -0
  106. package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  107. package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +80 -0
  108. package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  109. package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.md" +40 -0
  110. package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.xlsx +0 -0
  111. package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.md +40 -0
  112. package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.xlsx +0 -0
  113. package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +92 -0
  114. package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
  115. package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
  116. package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  117. package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.md +130 -0
  118. package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.xlsx +0 -0
  119. package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +52 -0
  120. package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  121. package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +68 -0
  122. package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  123. package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.md +108 -0
  124. package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.xlsx +0 -0
  125. package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
  126. package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  127. package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +63 -0
  128. package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  129. package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +101 -0
  130. package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
  131. package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +84 -0
  132. package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
  133. package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +79 -0
  134. package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
  135. package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +105 -0
  136. package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  137. package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +83 -0
  138. package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  139. package/wiki/te-docs/index.md +225 -0
  140. package/wiki/te-docs/raw/advanced-data-type/first-event-check.md +66 -0
  141. package/wiki/te-docs/raw/advanced-data-type/updated-event.md +87 -0
  142. package/wiki/te-docs/raw/advanced-data-type.md +16 -0
  143. package/wiki/te-docs/raw/data-ingestion-guide/about-gdpr.md +55 -0
  144. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/automatic-event-tracking.md +431 -0
  145. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/debugging-and-logging.md +49 -0
  146. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/multi-instance.md +66 -0
  147. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/preset-properties.md +466 -0
  148. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/third-party-integration.md +127 -0
  149. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced.md +513 -0
  150. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/compliance.md +24 -0
  151. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/release-notes.md +177 -0
  152. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android.md +228 -0
  153. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/c-advanced.md +419 -0
  154. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/release-notes.md +45 -0
  155. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c.md +110 -0
  156. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/client-side-sdk-faq.md +52 -0
  157. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/cpp-advanced.md +366 -0
  158. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/release-notes.md +103 -0
  159. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp.md +201 -0
  160. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/compliance.md +26 -0
  161. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/automatically-track-events.md +117 -0
  162. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/debugging-and-logging.md +47 -0
  163. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/preset-properties.md +52 -0
  164. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced.md +267 -0
  165. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/release-notes.md +82 -0
  166. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter.md +139 -0
  167. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/compliance.md +26 -0
  168. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/automatically-track-events.md +121 -0
  169. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/debugging-and-logging.md +54 -0
  170. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/preset-properties.md +18 -0
  171. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced.md +305 -0
  172. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/release-notes.md +79 -0
  173. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native.md +137 -0
  174. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/release-notes.md +24 -0
  175. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/automatically-track-events.md +54 -0
  176. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/debugging-and-logging.md +53 -0
  177. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/multi-instance.md +42 -0
  178. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/preset-properties.md +119 -0
  179. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/support-native.md +81 -0
  180. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced.md +331 -0
  181. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app.md +156 -0
  182. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform.md +12 -0
  183. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/automatic-event-tracking.md +29 -0
  184. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/debugging-and-logging.md +47 -0
  185. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/multi-instance.md +21 -0
  186. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/preset-properties.md +249 -0
  187. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced.md +301 -0
  188. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/compliance.md +24 -0
  189. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/release-notes.md +51 -0
  190. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x.md +281 -0
  191. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/automatic-event-tracking.md +70 -0
  192. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/debugging-and-logging.md +57 -0
  193. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/native-support.md +104 -0
  194. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/preset-properties.md +91 -0
  195. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance.md +374 -0
  196. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/compliance.md +35 -0
  197. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/release-notes.md +109 -0
  198. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator.md +170 -0
  199. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/compliance.md +28 -0
  200. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/automatic-event-tracking.md +29 -0
  201. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/debugging-and-logging.md +58 -0
  202. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/preset-properties.md +43 -0
  203. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md +204 -0
  204. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/release-notes.md +29 -0
  205. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona.md +269 -0
  206. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/compliance.md +24 -0
  207. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/release-notes.md +177 -0
  208. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/automatic-event-tracking.md +119 -0
  209. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/debugging-and-logging.md +47 -0
  210. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/multi-instance.md +50 -0
  211. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/native-pluggable.md +43 -0
  212. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/preset-properties.md +212 -0
  213. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/third-party-integration.md +77 -0
  214. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced.md +396 -0
  215. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity.md +176 -0
  216. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/compliance.md +24 -0
  217. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/release-notes.md +81 -0
  218. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/automatic-event-tracking.md +79 -0
  219. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/debugging-and-logging.md +31 -0
  220. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/preset-properties.md +25 -0
  221. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/third-party-integrations.md +141 -0
  222. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md +278 -0
  223. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal.md +190 -0
  224. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine.md +14 -0
  225. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/h5-and-app-sdk-connection.md +147 -0
  226. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/instant-app-and-game.md +24 -0
  227. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/compliance.md +24 -0
  228. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/automatic-event-tracking.md +272 -0
  229. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/debugging-and-logging.md +77 -0
  230. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/multi-instance.md +142 -0
  231. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/preset-properties.md +484 -0
  232. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/third-party-integrations.md +132 -0
  233. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced.md +682 -0
  234. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/release-notes.md +163 -0
  235. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios.md +304 -0
  236. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/compliance.md +29 -0
  237. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/automatic-event-tracking.md +136 -0
  238. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/debugging-and-logging.md +48 -0
  239. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/multi-instance.md +50 -0
  240. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/preset-properties.md +132 -0
  241. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced.md +462 -0
  242. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/release-notes.md +107 -0
  243. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript.md +208 -0
  244. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/debugging-and-logging.md +62 -0
  245. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/preset-properties.md +118 -0
  246. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced.md +556 -0
  247. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos.md +231 -0
  248. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk.md +25 -0
  249. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md +610 -0
  250. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md +1215 -0
  251. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md +278 -0
  252. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools.md +15 -0
  253. package/wiki/te-docs/raw/data-ingestion-guide/privacy-policy.md +38 -0
  254. package/wiki/te-docs/raw/data-ingestion-guide/restful-api-user-guide.md +155 -0
  255. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-FM9Cwz.md +37 -0
  256. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-RSyfw7.md +41 -0
  257. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging.md +89 -0
  258. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-OxzWw.md +126 -0
  259. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-VuE3wr.md +126 -0
  260. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties.md +126 -0
  261. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-IauKwI.md +175 -0
  262. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-YAilwk.md +210 -0
  263. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced.md +211 -0
  264. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-PVazwa.md +62 -0
  265. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-TADbwY.md +50 -0
  266. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes.md +69 -0
  267. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-V2W3wv.md +131 -0
  268. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-Zf9Jwl.md +179 -0
  269. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c.md +189 -0
  270. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/debugging-and-logging.md +38 -0
  271. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/preset-properties.md +126 -0
  272. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced.md +113 -0
  273. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/release-notes.md +34 -0
  274. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang.md +155 -0
  275. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/debugging-and-logging.md +42 -0
  276. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/preset-properties.md +126 -0
  277. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced.md +157 -0
  278. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/release-notes.md +72 -0
  279. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang.md +148 -0
  280. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/debugging-and-logging.md +49 -0
  281. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/preset-properties.md +126 -0
  282. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced.md +223 -0
  283. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/release-notes.md +88 -0
  284. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java.md +174 -0
  285. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/debugging-and-logging.md +46 -0
  286. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/preset-properties.md +126 -0
  287. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced.md +182 -0
  288. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/release-notes.md +61 -0
  289. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua.md +121 -0
  290. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/debugging-and-logging.md +55 -0
  291. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/preset-properties.md +126 -0
  292. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced.md +225 -0
  293. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/release-notes.md +45 -0
  294. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs.md +141 -0
  295. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/debugging-and-logging.md +41 -0
  296. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/preset-properties.md +126 -0
  297. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced.md +216 -0
  298. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/release-notes.md +45 -0
  299. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php.md +173 -0
  300. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/debugging-and-logging.md +40 -0
  301. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/preset-properties.md +126 -0
  302. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced.md +206 -0
  303. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/release-notes.md +51 -0
  304. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python.md +116 -0
  305. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/release-notes.md +44 -0
  306. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md +47 -0
  307. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md +126 -0
  308. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced.md +189 -0
  309. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby.md +142 -0
  310. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk.md +22 -0
  311. package/wiki/te-docs/raw/data-ingestion-guide/thinkingdata-privacy-policy.md +37 -0
  312. package/wiki/te-docs/raw/data-ingestion-guide.md +48 -0
  313. package/wiki/te-docs/raw/preparations-before-data-ingestion/data-rules.md +396 -0
  314. package/wiki/te-docs/raw/preparations-before-data-ingestion/preset-properties-and-system-fields.md +957 -0
  315. package/wiki/te-docs/raw/preparations-before-data-ingestion/user-identification-rules.md +723 -0
  316. package/wiki/te-docs/raw/preparations-before-data-ingestion.md +203 -0
  317. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//345/220/210/350/247/204/346/214/207/345/215/227.md +96 -0
  318. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//346/233/264/346/226/260/346/227/245/345/277/227.md +97 -0
  319. package/wiki/te-docs/raw//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 +52 -0
  320. package/wiki/te-docs/raw//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 +48 -0
  321. package/wiki/te-docs/raw//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 +447 -0
  322. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227.md +370 -0
  323. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +172 -0
  324. package/wiki/te-docs/raw//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 +37 -0
  325. package/wiki/te-docs/raw//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 +209 -0
  326. package/wiki/te-docs/raw//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 +71 -0
  327. package/wiki/te-docs/raw//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 +49 -0
  328. package/wiki/te-docs/raw//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 +125 -0
  329. package/wiki/te-docs/raw//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 +498 -0
  330. package/wiki/te-docs/raw//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 +612 -0
  331. package/wiki/te-docs/raw//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 +373 -0
  332. package/wiki/te-docs/raw//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 +26 -0
  333. package/wiki/te-docs/raw//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 +32 -0
  334. package/wiki/te-docs/raw//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 +48 -0
  335. package/wiki/te-docs/raw//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 +30 -0
  336. package/wiki/te-docs/raw//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 +61 -0
  337. package/wiki/te-docs/raw//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 +236 -0
  338. package/wiki/te-docs/raw//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 +200 -0
  339. package/wiki/te-docs/raw//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 +83 -0
  340. package/wiki/te-docs/raw//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 +66 -0
  341. package/wiki/te-docs/raw//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 +54 -0
  342. package/wiki/te-docs/raw//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 +62 -0
  343. package/wiki/te-docs/raw//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 +358 -0
  344. package/wiki/te-docs/raw//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 +615 -0
  345. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret.md +166 -0
  346. package/wiki/te-docs/raw//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 +87 -0
  347. package/wiki/te-docs/raw//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 +71 -0
  348. package/wiki/te-docs/raw//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 +54 -0
  349. package/wiki/te-docs/raw//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 +61 -0
  350. package/wiki/te-docs/raw//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 +406 -0
  351. package/wiki/te-docs/raw//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 +597 -0
  352. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair.md +179 -0
  353. package/wiki/te-docs/schema.md +16 -0
  354. package/wiki/te-docs/synthesis/batch-ingest-comparison.md +324 -0
  355. package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +538 -0
  356. package/wiki/te-docs/synthesis/restful-api-reference.md +363 -0
  357. package/wiki/te-docs/synthesis/sdk-selection.md +372 -0
  358. package/wiki/te-docs/synthesis/server-sdk-overview.md +449 -0
  359. package/dist/chunk-KAEZTSXN.js +0 -99
  360. package/dist/chunk-OJDNO5QY.js +0 -63
@@ -0,0 +1,116 @@
1
+ ---
2
+ code: python_sdk_installation
3
+ name: "Python"
4
+ wikiToken: YoPdwzGBMiRyS7kTY5pcmWHpnjf
5
+ parentWikiToken: IKVPwn4NfiIhijk5EcAcMf6pn7e
6
+ updateTime: 1774252012000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=python_sdk_installation
8
+ ---
9
+
10
+ ::: tip
11
+ Before you begin, please read [<text color="purple" underline="true">Preparation before Data Ingestion</text>](https://thinkingdata.feishu.cn/wiki/OhD8we9iai6Xk5kM1QNc8ITRnQe).
12
+ :::
13
+ **Latest version: **v3.0.0
14
+ **Update time: **2023-10-07
15
+ **Resource download: **[Source Code](https%3A%2F%2Fgithub.com%2FThinkingDataAnalytics%2Fpython-sdk)
16
+ ::: warning Notice
17
+ Current documentation applies to v3.0.0 and later. For historical versions, see [Data Ingestion Guide - Python (V2)](https%3A%2F%2Fdocs.thinkingdata.cn%2Fta-manual%2Fv4.1%2Fen%2Finstallation%2Finstallation_menu%2Fserver_sdk%2Fpython_sdk_installation%2Fpython_sdk_installation.html)
18
+ :::
19
+ ## **SDK**** Integration**
20
+ 1.1 Get Python SDK through `pip`
21
+ ```shell
22
+ # install SDK
23
+ pip install ThinkingDataSdk
24
+
25
+ # update SDK
26
+ pip install --upgrade ThinkingDataSdk
27
+ ```
28
+
29
+ 1.2 Logbus Integration
30
+ We recommend using SDK+LogBus to track and report data on server. You can refer to the following documents to complete the installation of Logbus:[ LogBus User Guide](https://thinkingdata.feishu.cn/wiki/SlE6wOEK3isQvukzEbnc5V0inNa)
31
+ ## **Initialization**
32
+ The following is the sample code for SDK initialization:
33
+ ```python
34
+ from tgasdk.sdk import *
35
+ te = TDAnalytics(TDLogConsumer("LOG_DIRECTORY"))
36
+ ```
37
+
38
+ `LOG_DIRECTORY` is the path of the folder written to the local directory. You need to set the `LogBus` listening folder address to this address in order to use `LogBus` for data listening upload.
39
+ `LOG_FILE_PREFIX` Indicates the prefix of the log file name.
40
+ ## **Common Features**
41
+ In order to ensure that the distinct ID and account ID can be bound smoothly, if your game uses the distinct ID and account ID, we strongly recommend that you upload these two IDs at the same time, otherwise the account will not match, causing users to double count. For specific ID binding rules, please refer to the chapter on [User Identification Rules](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc).
42
+ ### 3.1 **Sending Events**
43
+ You can call `track` to upload events. It is suggested that you set event properties based on the data tracking plan drafted previously. Here is an example of a user buying an item:
44
+ ```python
45
+ distinct_id = "ABCDEF123456"
46
+ account_id = "TE10001"
47
+ properties = {
48
+ "#time": datetime.datetime.now(),
49
+ "#ip": "192.168.1.1",
50
+ "Product_Name": "商品名",
51
+ "Price": 30,
52
+ "OrderId": "订单号abc_123"
53
+ }
54
+ try:
55
+ te.track(distinct_id, account_id, "Payment", properties)
56
+ except Exception as e:
57
+ print(e)
58
+ ```
59
+
60
+ - Key is the name of the property and refers to the string type. It must start with a character, and contain numbers, characters (insensitive to case, and upper cases would be transformed into lower cases by TE) and underscores "_", with a maximum length of 50 characters.
61
+ - Value, the value of the property, supports string, numbers, Boolean, time, object, array object, and array
62
+ <quote-container>
63
+ **The requirements for event properties and user properties are the same as that for super properties**
64
+ </quote-container>
65
+
66
+ ### 3.2** User Properties**
67
+ You can set general user properties by calling `user_set` API. The original properties would be replaced by the properties uploaded via this API. If no user properties are set before, user properties will be newly created. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
68
+ ```python
69
+ properties = {"user_name": "ABC"}
70
+ try:
71
+ te.user_set(account_id="account_id", distinct_id="distinct_id", properties=properties)
72
+ except Exception as e:
73
+ print(e)
74
+ ```
75
+
76
+ ### 3.3 Reported data
77
+ When using `TDLogConsumer`, the captured events are converted to json strings and then added to the cache array. Data is written to disk only when the number of array elements exceeds the set capacity. The default capacity is 5. You can set the size of `buffer_size` in the `TDLogConsumer` constructor.
78
+ You can call the `flush()` api to report data to the TE immediately under certain service scenarios. However, frequent calls to `flush()` can result in degraded service performance.
79
+ ```python
80
+ te.flush();
81
+ ```
82
+
83
+ ### 3.4 Close SDK
84
+ ```python
85
+ te.close()
86
+ ```
87
+
88
+ <quote-container>
89
+ Close and exit the SDK. Please call this api before closing the server to avoid data loss in the cache
90
+ </quote-container>
91
+
92
+ ## **Best Practice**
93
+ The following sample code covers all the above-mentioned operations. It is recommended that the codes be used in the following steps:
94
+ ```python
95
+ from tgasdk.sdk import *
96
+
97
+ te = TDAnalytics(TDLogConsumer("LOG_DIRECTORY"))
98
+
99
+ properties = {
100
+ "#time": datetime.datetime.now(),
101
+ "#ip": "192.168.1.1",
102
+ "Product_Name": "goods_name"
103
+ }
104
+ try:
105
+ te.track("distinct_id", "account_id", "Payment", properties)
106
+ except Exception as e:
107
+ print(e)
108
+
109
+ user_properties = {"user_name": "ABC"}
110
+ try:
111
+ te.user_set(account_id="account_id", distinct_id="distinct_id", properties=user_properties)
112
+ except Exception as e:
113
+ print(e)
114
+
115
+ te.flush()
116
+ ```
@@ -0,0 +1,44 @@
1
+ ---
2
+ code: ruby_sdk_release_note
3
+ name: "Release Notes"
4
+ wikiToken: NuXswgQPZi5K9OkaxzWctlxcnMe
5
+ parentWikiToken: S8vpwcvIxiPflykjVPScH7dTnyd
6
+ updateTime: 1780898293000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_release_note
8
+ ---
9
+
10
+ ## v2.0.2
11
+ **Date: 2026/06/05**
12
+ **Notes:**
13
+ - Supports multi-threaded invocation
14
+ ## v2.0.1
15
+ **Date: 2026/05/13**
16
+ **Notes:**
17
+ - Supports multi-threaded invocation
18
+ ## v2.0.0
19
+ **Date: 2023/09/20**
20
+ **Notes:**
21
+ - Modified module name, incompatible with older versions
22
+ ## v1.2.1
23
+ **Date: 2023/03/20**
24
+ **Notes:**
25
+ - Compatible ruby 3
26
+ - Supports a different '#app_id' for each event
27
+ ## v1.2.0
28
+ **Date:****2020/08/28**
29
+ **Notes:**
30
+ - Added track_update interface to support updatable events
31
+ - Added track_overwrite interface to support rewritable events
32
+ ## v1.1.0
33
+ **Date:****2020/02/11**
34
+ **Notes:**
35
+ - Data type support array type
36
+ - Added user_append interface to support attribute appending of user's array type
37
+ - BatchConsumer performance optimization: support to choose whether to compress; remove Base64 encoding
38
+ - DebugConsumer Optimization: More complete and accurate validation of data at the server level
39
+ ## v1.0.0
40
+ **Date:****2019-11-20**
41
+ **Notes:**
42
+ - Support three modes of reporting: DebugConsumer, BatchConsumer, LoggerConsumer.
43
+ - Support event reporting and user feature reporting.
44
+ - Supports public event properties.
@@ -0,0 +1,47 @@
1
+ ---
2
+ code: ruby_sdk_debug
3
+ name: "Debugging and Logging"
4
+ wikiToken: VpzSwR4BZiAigmkidffcx4n0nHc
5
+ parentWikiToken: CKuawiPqPi1o3pkdExtc3VB7nsn
6
+ updateTime: 1774249288000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_debug
8
+ ---
9
+
10
+ ::: warning Notice
11
+ The SDK Debug mode is used only for access debugging. Do not apply it to the production environment.
12
+ :::
13
+ During the process of SDK Integration, you can perform real-time debugging by checking SDK logs in the IDE console or using the Debug function of TE.
14
+ ## Logging
15
+ ```python
16
+ ThinkingData::set_enable_log(true)
17
+ ```
18
+
19
+ ## Debugging
20
+ You need to follow the following two steps to enable the Debug mode:
21
+ #### 2.1 Use DebugConsumer
22
+ The sample code for enabling the Debug mode on the client side is as follows:
23
+ ```python
24
+ consumer = ThinkingData::TDDebugConsumer.new('SERVER_URL', 'APPID', device_id: "123456789")
25
+ te = ThinkingData::TDAnalytics.new(consumer)
26
+
27
+ DEMO_ACCOUNT_ID = '123'
28
+ DEMO_DISTINCT_ID = 'aaa'
29
+
30
+ properties = {
31
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
32
+ prop_date: Time.now,
33
+ prop_double: 134.1,
34
+ prop_string: 'hello world',
35
+ prop_bool: true,
36
+ }
37
+
38
+ ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
39
+ ```
40
+
41
+ #### 2.2 Add Device
42
+ To avoid launching the Debug mode in the production environment, it is required that only specified device can enable Debug mode. The Debug mode can only be enabled for devices whose ID has been configured in the "Debug data" sector on the "tracking management" page of the TE.
43
+ <image token="WsAdb3pD5ohbjIxmizDcJO5onIg" width="1280" height="590" align="center"/>
44
+
45
+ <quote-container>
46
+ It can only be used for data verification at the integration stage, and should not be used in the online environment.
47
+ </quote-container>
@@ -0,0 +1,126 @@
1
+ ---
2
+ code: ruby_sdk_preset_properties
3
+ name: "Preset Properties"
4
+ wikiToken: Chi4w6Kkpixz5lk5zdKckvOrnWe
5
+ parentWikiToken: CKuawiPqPi1o3pkdExtc3VB7nsn
6
+ updateTime: 1774249290000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_preset_properties
8
+ ---
9
+
10
+ The following present properties are properties that all events in SDK would have.
11
+
12
+ <lark-table rows="8" cols="4" column-widths="169,152,140,259">
13
+
14
+ <lark-tr>
15
+ <lark-td>
16
+ Property name
17
+ </lark-td>
18
+ <lark-td>
19
+ Display name
20
+ </lark-td>
21
+ <lark-td>
22
+ Property type
23
+ </lark-td>
24
+ <lark-td>
25
+ Instruction
26
+ </lark-td>
27
+ </lark-tr>
28
+ <lark-tr>
29
+ <lark-td>
30
+ #ip
31
+ </lark-td>
32
+ <lark-td>
33
+ IP address
34
+ </lark-td>
35
+ <lark-td>
36
+ Text
37
+ </lark-td>
38
+ <lark-td>
39
+ IP address of the user, based on which TE would get the geographical location of the user
40
+ </lark-td>
41
+ </lark-tr>
42
+ <lark-tr>
43
+ <lark-td>
44
+ #country
45
+ </lark-td>
46
+ <lark-td>
47
+ Country
48
+ </lark-td>
49
+ <lark-td>
50
+ Text
51
+ </lark-td>
52
+ <lark-td>
53
+ The country where the user is located; generated based on the IP address
54
+ </lark-td>
55
+ </lark-tr>
56
+ <lark-tr>
57
+ <lark-td>
58
+ #country_code
59
+ </lark-td>
60
+ <lark-td>
61
+ Country code
62
+ </lark-td>
63
+ <lark-td>
64
+ Text
65
+ </lark-td>
66
+ <lark-td>
67
+ The code of the country where the user is located (ISO 3166-1 alpha-2, two English characters in upper case); generated based on the IP address
68
+ </lark-td>
69
+ </lark-tr>
70
+ <lark-tr>
71
+ <lark-td>
72
+ #province
73
+ </lark-td>
74
+ <lark-td>
75
+ Province
76
+ </lark-td>
77
+ <lark-td>
78
+ Text
79
+ </lark-td>
80
+ <lark-td>
81
+ The province where the user is located; generated based on the IP address
82
+ </lark-td>
83
+ </lark-tr>
84
+ <lark-tr>
85
+ <lark-td>
86
+ #city
87
+ </lark-td>
88
+ <lark-td>
89
+ City
90
+ </lark-td>
91
+ <lark-td>
92
+ Text
93
+ </lark-td>
94
+ <lark-td>
95
+ The city where the user is located; generated based on the IP address
96
+ </lark-td>
97
+ </lark-tr>
98
+ <lark-tr>
99
+ <lark-td>
100
+ #lib
101
+ </lark-td>
102
+ <lark-td>
103
+ SDK type
104
+ </lark-td>
105
+ <lark-td>
106
+ Text
107
+ </lark-td>
108
+ <lark-td>
109
+ The type of SDK which you integrate, e.g., Golang, etc.
110
+ </lark-td>
111
+ </lark-tr>
112
+ <lark-tr>
113
+ <lark-td>
114
+ #lib_version
115
+ </lark-td>
116
+ <lark-td>
117
+ SDK version
118
+ </lark-td>
119
+ <lark-td>
120
+ Text
121
+ </lark-td>
122
+ <lark-td>
123
+ The version of the SDK which you integrate
124
+ </lark-td>
125
+ </lark-tr>
126
+ </lark-table>
@@ -0,0 +1,189 @@
1
+ ---
2
+ code: ruby_sdk_advanced
3
+ name: "Ruby-Advanced"
4
+ wikiToken: CKuawiPqPi1o3pkdExtc3VB7nsn
5
+ parentWikiToken: S8vpwcvIxiPflykjVPScH7dTnyd
6
+ updateTime: 1774249286000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_advanced
8
+ ---
9
+
10
+ ## **Sending Events**
11
+ After SDK is initialized, you can track user behaviour data. In general, ordinary events could meet business requirements. You can also use the First/Updatable Event based on your own business requirements.
12
+ ### 1.1 **Ordinary Events**
13
+ You can call `track` to upload events. It is suggested that you set event properties based on the document about data tracking drafted previously. Procurement of a commodity by a user is taken as the example here:
14
+ ```ruby
15
+ DEMO_ACCOUNT_ID = '123'
16
+ DEMO_DISTINCT_ID = 'aaa'
17
+
18
+ properties = {
19
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
20
+ prop_date: Time.now,
21
+ prop_double: 134.1,
22
+ prop_string: 'hello world',
23
+ prop_bool: true,
24
+ }
25
+
26
+ ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
27
+ ```
28
+
29
+ ### 1.2 **First Events**
30
+ The First Events refers to events that would only be recorded once for the ID of a certain device or other dimensions. For example, under certain scenarios, you may want to record the activation event on a certain device. In this case, you can perform data tracking with the First Event.
31
+ If you want to judge whether an event is the First Event from other dimensions, you can define a first_check_id for the First Event:
32
+ ```ruby
33
+ DEMO_ACCOUNT_ID = '123'
34
+ DEMO_DISTINCT_ID = 'aaa'
35
+
36
+ properties = {
37
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
38
+ prop_date: Time.now,
39
+ prop_double: 134.1,
40
+ prop_string: 'hello world',
41
+ prop_bool: true,
42
+ }
43
+ ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, first_check_id:'first_id', properties: properties)
44
+ ```
45
+
46
+ <quote-container>
47
+ Note: Since the server has to check whether the event is the First Event, the First Event will be put in storage one hour later by default.
48
+ </quote-container>
49
+
50
+ ### 1.3 ** Updatable Events**
51
+ You can meet the requirements for event data modification under specific scenarios through Updatable Event. The TE would determine the data to be updated according to the event name and event ID.
52
+ ```ruby
53
+ DEMO_ACCOUNT_ID = '123'
54
+ DEMO_DISTINCT_ID = 'aaa'
55
+
56
+ properties = {
57
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
58
+ prop_date: Time.now,
59
+ prop_double: 134.1,
60
+ prop_string: 'hello world',
61
+ prop_bool: true,
62
+ }
63
+ ta.track_update(event_name: 'update', event_id: 'id123', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties:properties)
64
+ ```
65
+
66
+ ### 1.4 **Overwritable Event****s**
67
+ Despite the similarity with Updatable Event, Overwritable Event would cover all historical data with the latest data. Looking from the perspective of effect, such a process is equivalent to the behavior of deleting the previous data while putting the latest data in storage. The TE would determine the data to be updated according to the event name and event ID.
68
+ ```ruby
69
+ DEMO_ACCOUNT_ID = '123'
70
+ DEMO_DISTINCT_ID = 'aaa'
71
+
72
+ properties = {
73
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
74
+ prop_date: Time.now,
75
+ prop_double: 134.1,
76
+ prop_string: 'hello world',
77
+ prop_bool: true,
78
+ }
79
+ ta.track_overwrite(event_name: 'update', event_id: 'id123', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties:properties)
80
+ ```
81
+
82
+ ## **User Properties**
83
+ User property setting APIs supported by the TE include: `user_set`, `user_set_once`, `user_add`, `user_append`, `user_uniq_append`, `user_unset`, `user_del`.
84
+ ### 2.1 user_set
85
+ You can call `user_set` to set general user properties. The original properties would be replaced if the properties uploaded via the API are used. If user properties are not set before, user properties will be created. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
86
+ ```ruby
87
+ DEMO_ACCOUNT_ID = '123'
88
+ DEMO_DISTINCT_ID = 'aaa'
89
+
90
+ user_data = {
91
+ array: ["str1", 11, 22.22],
92
+ prop_double: 134.12,
93
+ prop_string: 'hello',
94
+ prop_int: 666,
95
+ }
96
+ ta.user_set(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_data)
97
+ ```
98
+
99
+ ### 2.2 user_set_once
100
+ If the user property you want to upload only needs to be set once, you can call `user_set_once` to set the property. If such property had been set before, this message would be ignored. Let's take the setting of the first payment time as an example::
101
+ ```ruby
102
+ user_set_once_data = {
103
+ prop_int_new: 888,
104
+ }
105
+ ta.user_set_once(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_set_once_data)
106
+ ```
107
+
108
+ ### 2.3 user_add
109
+ When you want to upload numeric property for cumulative operation, you can call `user_add`.
110
+ If the property has not been set, it would be given a value of 0 before computing. A negative value could be uploaded, which is equivalent to subtraction operation. Let's take the accumulative payment amount as an example:
111
+ ```ruby
112
+ ta.user_add(distinct_id: DEMO_DISTINCT_ID, properties: {prop_int: 10, prop_double: 15.88})
113
+ ```
114
+
115
+ <quote-container>
116
+ The property key is a string, and the value is only allowed to be a numeric value.
117
+ </quote-container>
118
+
119
+ ### 2.4 user_append
120
+ You can call `user_append` to add user properties of array type.
121
+ ```ruby
122
+ user_append_data = {
123
+ array: %w[33 44]
124
+ }
125
+ ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data)
126
+
127
+ user_append_data_new = {
128
+ array: %w[44 55]
129
+ }
130
+ ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data_new)
131
+ ```
132
+
133
+ ### 2.5 user_uniq_append
134
+ You can delete duplicated user property by calling `user_uniq_append` interface. If you call `user_append` interface, duplicated user property might not be deleted.
135
+ ```ruby
136
+ user_append_data = {
137
+ array: %w[33 44]
138
+ }
139
+ ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data)
140
+
141
+ user_uniq_append_data = {
142
+ array: %w[44 55]
143
+ }
144
+ ta.user_uniq_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_uniq_append_data)
145
+ ```
146
+
147
+ ### 2.6 user_unset
148
+ When you need to clear the user properties of users, you can call `user_unset` to clear specific properties. `user_unset` would not create properties that have not been created in the cluster.
149
+ ```ruby
150
+ ta.user_unset(distinct_id: DEMO_DISTINCT_ID, property: [:prop_string, :prop_int])
151
+ ```
152
+
153
+ ### 2.7 user_del
154
+ You can call `user_del` to delete a user. After deleting the user, you would no longer be able to inquire about its user property, but could still query the events triggered by the user.
155
+ ```ruby
156
+ ta.user_del(distinct_id: DEMO_DISTINCT_ID)
157
+ ```
158
+
159
+ ## **Other**
160
+ ### 3.1 BatchConsumer
161
+ ::: warning Notice
162
+ When the amount of data is too large or the network is abnormal, there is a risk of data loss. And it is not recommended to use it in a production environment
163
+ :::
164
+ Batches transmit data to the TE in real time, without the need for a transmission tool.
165
+ ```ruby
166
+ consumer = ThinkingData::TDBatchConsumer.new('SERVER_URL', 'APPID', 30)
167
+ ta = ThinkingData::TDAnalytics.new(consumer)
168
+
169
+ DEMO_ACCOUNT_ID = '123'
170
+ DEMO_DISTINCT_ID = 'aaa'
171
+
172
+ properties = {
173
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
174
+ prop_date: Time.now,
175
+ prop_double: 134.1,
176
+ prop_string: 'hello world',
177
+ prop_bool: true,
178
+ }
179
+
180
+ ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
181
+ ```
182
+
183
+ Instruction on parameters:
184
+ - `APPID`: The APPID of your project, which can be found on the project management page of TE.
185
+ - `SERVER_URL`:
186
+ - If you are using a SaaS version, please check the receiver URL on this page
187
+ <image token="FlHEbKx8moxDYmxoD91ccNgynic" width="1674" height="1318" align="center"/>
188
+
189
+ - If you use the private deployment version, you can customize the data tracking URL .
@@ -0,0 +1,142 @@
1
+ ---
2
+ code: ruby_sdk_installation
3
+ name: "Ruby"
4
+ wikiToken: S8vpwcvIxiPflykjVPScH7dTnyd
5
+ parentWikiToken: IKVPwn4NfiIhijk5EcAcMf6pn7e
6
+ updateTime: 1780898277000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_installation
8
+ ---
9
+ ::: tip
10
+ Before you begin, please read [<text color="purple" underline="true">Preparation before Data Ingestion</text>](https://thinkingdata.feishu.cn/wiki/OhD8we9iai6Xk5kM1QNc8ITRnQe).
11
+ :::
12
+ **Latest version**: v2.0.2
13
+ **Update time**: 2026-06-05
14
+ **Resource download**: [Source Code](https%3A%2F%2Fgithub.com%2FThinkingDataAnalytics%2Fruby-sdk)
15
+ ::: warning Notice
16
+ Current documentation applies to v3.0.0 and later. For historical versions, see [Data Ingestion Guide - Ruby (V1)](https%3A%2F%2Fdocs.thinkingdata.cn%2Fta-manual%2Fv4.1%2Fen%2Finstallation%2Finstallation_menu%2Fserver_sdk%2Fruby_sdk_installation%2Fruby_sdk_installation.html)
17
+ :::
18
+ ## **SDK**** Integration**
19
+ 1.1 Please use `gem` command to get the SDK package.
20
+ ```shell
21
+ # install SDK
22
+ gem install thinkingdata-ruby
23
+ ```
24
+
25
+ 1.2 Logbus Integration
26
+ We recommend using SDK+LogBus to track and report data on server. You can refer to the following documents to complete the installation of LogBus:[ LogBus User Guide](https://thinkingdata.feishu.cn/wiki/SlE6wOEK3isQvukzEbnc5V0inNa)
27
+ ## **Initialization**
28
+ The following is the sample code for SDK initialization:
29
+ ```ruby
30
+ require 'thinkingdata-ruby'
31
+
32
+ consumer = ThinkingData::TDLoggerConsumer.new("LOG_DIRECTORY")
33
+ ta = ThinkingData::TDAnalytics.new(consumer)
34
+ ```
35
+
36
+ `LOG_DIRECTORY` is the local folder path.
37
+ ## **Common Features**
38
+ In order to ensure that the distinct ID and account ID can be bound smoothly, if your game uses the distinct ID and account ID, we strongly recommend that you upload these two IDs at the same time, otherwise the account will not match, causing users to double count. For specific ID binding rules, please refer to the chapter on [User Identification Rules](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc).
39
+ ### 3.1 **Sending Events**
40
+ You can call `track` to upload events. It is suggested that you set event properties based on the data tracking plan drafted previously. Here is an example of a user buying an item:
41
+ ```ruby
42
+ DEMO_ACCOUNT_ID = '123'
43
+ DEMO_DISTINCT_ID = 'aaa'
44
+
45
+ properties = {
46
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
47
+ prop_date: Time.now,
48
+ prop_double: 134.1,
49
+ prop_string: 'hello world',
50
+ prop_bool: true,
51
+ }
52
+
53
+ ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
54
+ ```
55
+
56
+ - Key is the name of the property and refers to the string type. It must start with a character, and contain numbers, characters (insensitive to case, and upper cases would be transformed into lower cases by TE) and underscores "_", with a maximum length of 50 characters.
57
+ - Value, the value of the property, supports string, numbers, Boolean, time, object, array object, and array
58
+ <quote-container>
59
+ **The requirements for event properties and user properties are the same as that for super properties**
60
+ </quote-container>
61
+
62
+ ### 3.2** User Properties**
63
+ You can set general user properties by calling `user_set` API. The original properties would be replaced by the properties uploaded via this API. If no user properties are set before, user properties will be newly created. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
64
+ ```ruby
65
+ DEMO_ACCOUNT_ID = '123'
66
+ DEMO_DISTINCT_ID = 'aaa'
67
+
68
+ user_data = {
69
+ array: ["str1", 11, 22.22],
70
+ prop_date: Time.now,
71
+ prop_double: 134.12,
72
+ prop_string: 'hello',
73
+ prop_int: 666,
74
+ }
75
+ ta.user_set(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_data)
76
+ ```
77
+
78
+ ### 3.3 Reported data
79
+ When `TDLoggingConsumer` is used, the SDK will write the collected data to disk in real time.
80
+ ### 3.4 Close SDK
81
+ ```ruby
82
+ ta.close
83
+ ```
84
+
85
+ <quote-container>
86
+ Close and exit the SDK. Please call this api before closing the server to avoid data loss in the cache
87
+ </quote-container>
88
+
89
+ ## **Best Practice**
90
+ The following sample code covers all the above-mentioned operations. It is recommended that the codes be used in the following steps:
91
+ ```ruby
92
+ require 'thinkingdata-ruby'
93
+
94
+ ThinkingData::set_stringent(false)
95
+ ThinkingData::set_enable_log(false)
96
+
97
+ consumer = ThinkingData::TDLoggerConsumer.new( 'LOG_DIRECTORY', 'hourly')
98
+ ta = ThinkingData::TDAnalytics.new(consumer, my_error_handler, uuid: true)
99
+
100
+ DEMO_ACCOUNT_ID = '123'
101
+ DEMO_DISTINCT_ID = 'aaa'
102
+
103
+ properties = {
104
+ array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
105
+ prop_date: Time.now,
106
+ prop_double: 134.1,
107
+ prop_string: 'hello world',
108
+ prop_bool: true,
109
+ }
110
+
111
+ ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
112
+
113
+ user_data = {
114
+ array: ["str1", 11, 22.22],
115
+ prop_date: Time.now,
116
+ prop_double: 134.12,
117
+ prop_string: 'hello',
118
+ prop_int: 666,
119
+ }
120
+ ta.user_set(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_data)
121
+
122
+ user_append_data = {
123
+ array: %w[33 44]
124
+ }
125
+ ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data)
126
+
127
+ user_uniq_append_data = {
128
+ array: %w[44 55]
129
+ }
130
+ ta.user_uniq_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_uniq_append_data)
131
+
132
+ user_set_once_data = {
133
+ prop_int_new: 888,
134
+ }
135
+ ta.user_set_once(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_set_once_data)
136
+
137
+ ta.user_add(distinct_id: DEMO_DISTINCT_ID, properties: {prop_int: 10, prop_double: 15.88})
138
+
139
+ ta.user_unset(distinct_id: DEMO_DISTINCT_ID, property: [:prop_string, :prop_int])
140
+
141
+ ta.user_del(distinct_id: DEMO_DISTINCT_ID)
142
+ ```
@@ -0,0 +1,22 @@
1
+ ---
2
+ code: server_sdk_menu
3
+ name: "Server SDK"
4
+ wikiToken: IKVPwn4NfiIhijk5EcAcMf6pn7e
5
+ parentWikiToken: AWr4wIMGYi9FB7ksPi4c17kNnxh
6
+ updateTime: 1774252005000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=server_sdk_menu
8
+ ---
9
+
10
+ - The server SDK mainly includes:
11
+ [<text underline="true">Golang</text>](https://thinkingdata.feishu.cn/wiki/GVHiwdEmWixRWrk0ZdKcT2twnSn)
12
+ [<text underline="true">Java</text>](https://thinkingdata.feishu.cn/wiki/BuVmwRcFsi4Oq5knoDDcgJ3fnSN)
13
+ [<text underline="true">C </text>](https://thinkingdata.feishu.cn/wiki/Er3owqC0UiRR21kCDgZcY4qJn3e)
14
+ [<text underline="true">Node</text>](https://thinkingdata.feishu.cn/wiki/OoIKwLEiNiPgzhksi3xcUBEknbb)[<text underline="true">.js</text>](https://thinkingdata.feishu.cn/wiki/OoIKwLEiNiPgzhksi3xcUBEknbb)
15
+ [<text underline="true">Python </text>](https://thinkingdata.feishu.cn/wiki/YoPdwzGBMiRyS7kTY5pcmWHpnjf)
16
+ [<text underline="true">Ruby</text>](https://thinkingdata.feishu.cn/wiki/S8vpwcvIxiPflykjVPScH7dTnyd)
17
+ [C#](https://thinkingdata.feishu.cn/wiki/V2W3wvcfkiGW3lk9rrDcnosAnqi)
18
+ [PHP](https://thinkingdata.feishu.cn/wiki/G0BrwOPbXiAtIikbcv3cMEyonTf)
19
+ [Lua](https://thinkingdata.feishu.cn/wiki/CLL4wjPKtiEhkjkmbIqcrn3CnXd)
20
+ [C++](https://thinkingdata.feishu.cn/wiki/Zf9Jwl81biGtrbkmBhackD1Fn3c)
21
+ [ErLang](https://thinkingdata.feishu.cn/wiki/HCbFw6wKsiAj0Qkst6cctv3AnIf)
22
+