@thinkingai/ae-cli 1.0.30 → 6.0.16-1

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 (355) hide show
  1. package/dist/{auth-U25QJU5D.js → auth-DYC2BGLM.js} +2 -3
  2. package/dist/{auth-H3GJD55A.js → auth-GHBMJ5ZR.js} +33 -17
  3. package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
  4. package/dist/{chunk-SF3KTPIC.js → chunk-5OC7CYCG.js} +2 -2
  5. package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
  6. package/dist/{chunk-I42JGQ2J.js → chunk-BJX3GXWC.js} +3 -5
  7. package/dist/{chunk-GLNZSDKO.js → chunk-DMMEPCST.js} +4 -6
  8. package/dist/{chunk-VJFUB3H3.js → chunk-I5CRVM2S.js} +3 -3
  9. package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
  10. package/dist/{chunk-JM34JPCO.js → chunk-RSHMZ3LG.js} +178 -4
  11. package/dist/{client-IN42F223.js → client-2UJ63MVQ.js} +3 -4
  12. package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
  13. package/dist/index.js +2530 -28
  14. package/dist/{model-VZCYNIOG.js → model-SJSOZTRS.js} +2 -2
  15. package/dist/{raw-WJIWC6YP.js → raw-7NVWSVJP.js} +5 -7
  16. package/dist/{sync-NVASAISS.js → sync-GRVO4K3U.js} +3 -3
  17. package/dist/{te-agent-YV4DXEXK.js → te-agent-KZRIEN4N.js} +468 -46
  18. package/dist/{te-analysis-CB3DA5I5.js → te-analysis-VAR4KUOK.js} +144 -29
  19. package/dist/{te-audience-W7SCQFC7.js → te-audience-KMKYI2YJ.js} +22 -15
  20. package/dist/{te-common-FBXVWBSI.js → te-common-WNCZB7R7.js} +4 -5
  21. package/dist/{te-community-LNVDZSGW.js → te-community-JEEFXPB3.js} +10 -11
  22. package/dist/{te-dataops-IPCSSWYH.js → te-dataops-GD3XBYCS.js} +11 -12
  23. package/dist/{te-engage-KARARMIR.js → te-engage-4XHCTS6I.js} +4 -5
  24. package/dist/{te-kb-2Z2CARN3.js → te-kb-B62KFP2A.js} +96 -8
  25. package/dist/{te-meta-PDKLMWXN.js → te-meta-EPZGQN56.js} +9 -10
  26. package/dist/{te-team-SW5B7DHO.js → te-team-YY24VORI.js} +6 -7
  27. package/dist/tracking/i18n/resources/cli/en.json +153 -0
  28. package/dist/tracking/i18n/resources/cli/ja.json +153 -0
  29. package/dist/tracking/i18n/resources/cli/ko.json +153 -0
  30. package/dist/tracking/i18n/resources/cli/zh.json +153 -0
  31. package/package.json +9 -3
  32. package/skills/ae-agent/SKILL.md +65 -25
  33. package/skills/ae-analysis/SKILL.md +108 -8
  34. package/skills/ae-analysis/references/cancel_query.md +39 -0
  35. package/skills/ae-analysis/references/drilldown_user_events.md +4 -2
  36. package/skills/ae-analysis/references/drilldown_users.md +4 -2
  37. package/skills/ae-analysis/references/get_bi_panel_detail.md +35 -0
  38. package/skills/ae-analysis/references/list_alerts.md +1 -1
  39. package/skills/ae-analysis/references/list_bi_panels.md +35 -0
  40. package/skills/ae-analysis/references/list_cluster_members.md +4 -1
  41. package/skills/ae-analysis/references/list_dashboards.md +1 -1
  42. package/skills/ae-analysis/references/list_entities.md +1 -1
  43. package/skills/ae-analysis/references/list_events.md +1 -1
  44. package/skills/ae-analysis/references/list_metrics.md +1 -1
  45. package/skills/ae-analysis/references/list_project_mark_times.md +1 -1
  46. package/skills/ae-analysis/references/list_properties.md +1 -1
  47. package/skills/ae-analysis/references/list_public_access_links.md +1 -1
  48. package/skills/ae-analysis/references/list_reports.md +1 -1
  49. package/skills/ae-analysis/references/list_tag_members.md +4 -1
  50. package/skills/ae-analysis/references/query_adhoc.md +6 -5
  51. package/skills/ae-analysis/references/query_bi_panel_data.md +58 -0
  52. package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -1
  53. package/skills/ae-analysis/references/query_entity_details.md +5 -2
  54. package/skills/ae-analysis/references/query_event_details.md +4 -1
  55. package/skills/ae-analysis/references/query_report_data.md +2 -2
  56. package/skills/ae-analysis-global/SKILL.md +3 -1
  57. package/skills/ae-analysis-intent/SKILL.md +132 -0
  58. package/skills/ae-data-integration-helper/SKILL.md +242 -0
  59. package/skills/ae-data-integration-helper/references/android_sdk_faq.md +179 -0
  60. package/skills/ae-data-integration-helper/references/c_sdk_compilation.md +83 -0
  61. package/skills/ae-data-integration-helper/references/c_sdk_faq.md +416 -0
  62. package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +123 -0
  63. package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +365 -0
  64. package/skills/ae-data-integration-helper/references/index.md +56 -0
  65. package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +118 -0
  66. package/skills/ae-data-integration-helper/references/java_sdk_faq.md +406 -0
  67. package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +129 -0
  68. package/skills/ae-data-integration-helper/references/logbus2_guide.md +309 -0
  69. package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +348 -0
  70. package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +115 -0
  71. package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +118 -0
  72. package/skills/ae-data-integration-helper/references/python_sdk_faq.md +232 -0
  73. package/skills/ae-data-integration-helper/references/restful_api_notes.md +74 -0
  74. package/skills/ae-data-integration-helper/references/sdk_log_guide.md +316 -0
  75. package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +107 -0
  76. package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +115 -0
  77. package/skills/ae-generate-tracking-code/SKILL.md +629 -0
  78. package/skills/ae-generate-tracking-code/references/autotrack-enum.md +183 -0
  79. package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +202 -0
  80. package/skills/ae-generate-tracking-code/references/datax-config.md +43 -0
  81. package/skills/ae-generate-tracking-code/references/debug-script.md +102 -0
  82. package/skills/ae-generate-tracking-code/references/logbus-config.md +200 -0
  83. package/skills/ae-generate-tracking-code/references/modes.md +83 -0
  84. package/skills/ae-generate-tracking-code/references/restful-call.md +36 -0
  85. package/skills/ae-generate-tracking-code/references/sdk-index.md +128 -0
  86. package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +206 -0
  87. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +394 -0
  88. package/skills/ae-generate-tracking-code/references/te-api.md +181 -0
  89. package/skills/ae-generate-tracking-plan/SKILL.md +1083 -0
  90. package/skills/ae-generate-tracking-plan/references/autotrack-events.md +273 -0
  91. package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +425 -0
  92. package/skills/ae-generate-tracking-plan/references/te-api.md +100 -0
  93. package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +152 -0
  94. package/skills/ae-kb/SKILL.md +38 -5
  95. 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
  96. 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
  97. 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
  98. 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
  99. package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +72 -0
  100. package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  101. 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
  102. 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
  103. package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +80 -0
  104. package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
  105. 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
  106. 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
  107. package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.md +40 -0
  108. package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.xlsx +0 -0
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. package/wiki/te-docs/index.md +225 -0
  136. package/wiki/te-docs/raw/advanced-data-type/first-event-check.md +66 -0
  137. package/wiki/te-docs/raw/advanced-data-type/updated-event.md +87 -0
  138. package/wiki/te-docs/raw/advanced-data-type.md +16 -0
  139. package/wiki/te-docs/raw/data-ingestion-guide/about-gdpr.md +55 -0
  140. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/automatic-event-tracking.md +431 -0
  141. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/debugging-and-logging.md +49 -0
  142. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/multi-instance.md +66 -0
  143. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/preset-properties.md +466 -0
  144. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/third-party-integration.md +127 -0
  145. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced.md +513 -0
  146. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/compliance.md +24 -0
  147. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/release-notes.md +177 -0
  148. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android.md +228 -0
  149. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/c-advanced.md +419 -0
  150. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/release-notes.md +45 -0
  151. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c.md +110 -0
  152. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/client-side-sdk-faq.md +52 -0
  153. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/cpp-advanced.md +366 -0
  154. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/release-notes.md +103 -0
  155. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp.md +201 -0
  156. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/compliance.md +26 -0
  157. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/automatically-track-events.md +117 -0
  158. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/debugging-and-logging.md +47 -0
  159. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/preset-properties.md +52 -0
  160. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced.md +267 -0
  161. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/release-notes.md +82 -0
  162. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter.md +139 -0
  163. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/compliance.md +26 -0
  164. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/automatically-track-events.md +121 -0
  165. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/debugging-and-logging.md +54 -0
  166. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/preset-properties.md +18 -0
  167. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced.md +305 -0
  168. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/release-notes.md +79 -0
  169. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native.md +137 -0
  170. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/release-notes.md +24 -0
  171. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/automatically-track-events.md +54 -0
  172. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/debugging-and-logging.md +53 -0
  173. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/multi-instance.md +42 -0
  174. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/preset-properties.md +119 -0
  175. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/support-native.md +81 -0
  176. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced.md +331 -0
  177. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app.md +156 -0
  178. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform.md +12 -0
  179. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/automatic-event-tracking.md +29 -0
  180. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/debugging-and-logging.md +47 -0
  181. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/multi-instance.md +21 -0
  182. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/preset-properties.md +249 -0
  183. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced.md +301 -0
  184. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/compliance.md +24 -0
  185. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/release-notes.md +51 -0
  186. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x.md +281 -0
  187. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/automatic-event-tracking.md +70 -0
  188. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/debugging-and-logging.md +57 -0
  189. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/native-support.md +104 -0
  190. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/preset-properties.md +91 -0
  191. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance.md +374 -0
  192. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/compliance.md +35 -0
  193. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/release-notes.md +109 -0
  194. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator.md +170 -0
  195. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/compliance.md +28 -0
  196. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/automatic-event-tracking.md +29 -0
  197. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/debugging-and-logging.md +58 -0
  198. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/preset-properties.md +43 -0
  199. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md +204 -0
  200. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/release-notes.md +29 -0
  201. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona.md +269 -0
  202. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/compliance.md +24 -0
  203. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/release-notes.md +177 -0
  204. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/automatic-event-tracking.md +119 -0
  205. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/debugging-and-logging.md +47 -0
  206. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/multi-instance.md +50 -0
  207. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/native-pluggable.md +43 -0
  208. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/preset-properties.md +212 -0
  209. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/third-party-integration.md +77 -0
  210. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced.md +396 -0
  211. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity.md +176 -0
  212. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/compliance.md +24 -0
  213. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/release-notes.md +81 -0
  214. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/automatic-event-tracking.md +79 -0
  215. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/debugging-and-logging.md +31 -0
  216. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/preset-properties.md +25 -0
  217. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/third-party-integrations.md +141 -0
  218. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md +278 -0
  219. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal.md +190 -0
  220. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine.md +14 -0
  221. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/h5-and-app-sdk-connection.md +147 -0
  222. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/instant-app-and-game.md +24 -0
  223. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/compliance.md +24 -0
  224. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/automatic-event-tracking.md +272 -0
  225. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/debugging-and-logging.md +77 -0
  226. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/multi-instance.md +142 -0
  227. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/preset-properties.md +484 -0
  228. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/third-party-integrations.md +132 -0
  229. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced.md +682 -0
  230. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/release-notes.md +163 -0
  231. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios.md +304 -0
  232. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/compliance.md +29 -0
  233. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/automatic-event-tracking.md +136 -0
  234. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/debugging-and-logging.md +48 -0
  235. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/multi-instance.md +50 -0
  236. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/preset-properties.md +132 -0
  237. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced.md +462 -0
  238. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/release-notes.md +107 -0
  239. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript.md +208 -0
  240. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/debugging-and-logging.md +62 -0
  241. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/preset-properties.md +118 -0
  242. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced.md +556 -0
  243. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos.md +231 -0
  244. package/wiki/te-docs/raw/data-ingestion-guide/client-sdk.md +25 -0
  245. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md +610 -0
  246. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md +1215 -0
  247. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md +278 -0
  248. package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools.md +15 -0
  249. package/wiki/te-docs/raw/data-ingestion-guide/privacy-policy.md +38 -0
  250. package/wiki/te-docs/raw/data-ingestion-guide/restful-api-user-guide.md +155 -0
  251. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-FM9Cwz.md +37 -0
  252. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-RSyfw7.md +41 -0
  253. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging.md +89 -0
  254. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-OxzWw.md +126 -0
  255. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-VuE3wr.md +126 -0
  256. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties.md +126 -0
  257. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-IauKwI.md +175 -0
  258. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-YAilwk.md +210 -0
  259. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced.md +211 -0
  260. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-PVazwa.md +62 -0
  261. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-TADbwY.md +50 -0
  262. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes.md +69 -0
  263. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-V2W3wv.md +131 -0
  264. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-Zf9Jwl.md +179 -0
  265. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c.md +189 -0
  266. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/debugging-and-logging.md +38 -0
  267. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/preset-properties.md +126 -0
  268. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced.md +113 -0
  269. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/release-notes.md +34 -0
  270. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang.md +155 -0
  271. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/debugging-and-logging.md +42 -0
  272. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/preset-properties.md +126 -0
  273. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced.md +157 -0
  274. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/release-notes.md +72 -0
  275. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang.md +148 -0
  276. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/debugging-and-logging.md +49 -0
  277. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/preset-properties.md +126 -0
  278. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced.md +223 -0
  279. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/release-notes.md +88 -0
  280. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java.md +174 -0
  281. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/debugging-and-logging.md +46 -0
  282. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/preset-properties.md +126 -0
  283. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced.md +182 -0
  284. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/release-notes.md +61 -0
  285. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua.md +121 -0
  286. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/debugging-and-logging.md +55 -0
  287. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/preset-properties.md +126 -0
  288. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced.md +225 -0
  289. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/release-notes.md +45 -0
  290. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs.md +141 -0
  291. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/debugging-and-logging.md +41 -0
  292. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/preset-properties.md +126 -0
  293. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced.md +216 -0
  294. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/release-notes.md +45 -0
  295. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php.md +173 -0
  296. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/debugging-and-logging.md +40 -0
  297. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/preset-properties.md +126 -0
  298. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced.md +206 -0
  299. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/release-notes.md +51 -0
  300. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python.md +116 -0
  301. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/release-notes.md +44 -0
  302. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md +47 -0
  303. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md +126 -0
  304. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced.md +189 -0
  305. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby.md +142 -0
  306. package/wiki/te-docs/raw/data-ingestion-guide/server-sdk.md +22 -0
  307. package/wiki/te-docs/raw/data-ingestion-guide/thinkingdata-privacy-policy.md +37 -0
  308. package/wiki/te-docs/raw/data-ingestion-guide.md +48 -0
  309. package/wiki/te-docs/raw/preparations-before-data-ingestion/data-rules.md +396 -0
  310. package/wiki/te-docs/raw/preparations-before-data-ingestion/preset-properties-and-system-fields.md +957 -0
  311. package/wiki/te-docs/raw/preparations-before-data-ingestion/user-identification-rules.md +723 -0
  312. package/wiki/te-docs/raw/preparations-before-data-ingestion.md +203 -0
  313. 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
  314. 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
  315. 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
  316. 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
  317. 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
  318. 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
  319. package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +172 -0
  320. 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
  321. 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
  322. 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
  323. 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
  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//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
  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//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
  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.md +612 -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.md +373 -0
  328. 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
  329. 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
  330. 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
  331. 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
  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//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
  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//350/277/233/351/230/266/346/214/207/345/215/227.md +236 -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.md +200 -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/egret//346/233/264/346/226/260/346/227/245/345/277/227.md +83 -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/egret//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +66 -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/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
  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/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
  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//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
  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.md +615 -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.md +166 -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/layaair//346/233/264/346/226/260/346/227/245/345/277/227.md +87 -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/layaair//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +71 -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/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
  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/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
  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//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
  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.md +597 -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.md +179 -0
  349. package/wiki/te-docs/schema.md +16 -0
  350. package/wiki/te-docs/synthesis/batch-ingest-comparison.md +324 -0
  351. package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +538 -0
  352. package/wiki/te-docs/synthesis/restful-api-reference.md +363 -0
  353. package/wiki/te-docs/synthesis/sdk-selection.md +372 -0
  354. package/wiki/te-docs/synthesis/server-sdk-overview.md +449 -0
  355. package/dist/chunk-U6TKB3IV.js +0 -171
@@ -0,0 +1,210 @@
1
+ ---
2
+ code: cpp_server_sdk_advanced
3
+ name: "C++-Advanced"
4
+ wikiToken: YAilwkzevi8lHekvnQ9cqPnrnzh
5
+ parentWikiToken: Zf9Jwl81biGtrbkmBhackD1Fn3c
6
+ updateTime: 1774249326000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=cpp_server_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
+ ```cpp
15
+ TDPropertiesNode event_properties;
16
+ event_properties.SetString("name1", "XZ_debug");
17
+ event_properties.SetString("name2", "logbugs");
18
+ event_properties.SetString("name3", "name3");
19
+ event_properties.SetString("#uuid", "1234567890");
20
+ event_properties.SetNumber("test_number_int", 3);
21
+ event_properties.SetNumber("test_number_double", 3.14);
22
+ event_properties.SetBool("test_bool", true);
23
+ std::string test_string = "test_string";
24
+ event_properties.SetString("test_stl_string1", test_string);
25
+ event_properties.SetDateTime("test_time1", time(nullptr), 0);
26
+ timeb t = {};
27
+ ftime(&t);
28
+ event_properties.SetDateTime("#time", t.time, t.millitm);
29
+ std::vector<std::string> test_list;
30
+ test_list.push_back("item11");
31
+ test_list.push_back("item21");
32
+ event_properties.SetList("test_list1", test_list);
33
+
34
+ // track event
35
+ te.track("accountId", "distinctId", "eventName", event_properties);
36
+ ```
37
+
38
+ ### 1.2 **First Events**
39
+ 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.
40
+ 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:
41
+ ```cpp
42
+ TDPropertiesNode event_properties;
43
+ // first event
44
+ event_properties.SetString("#first_check_id", "first_event");
45
+ te.track_first("accountId", "distinctId", "eventName", event_properties);
46
+ ```
47
+
48
+ <quote-container>
49
+ 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.
50
+ </quote-container>
51
+
52
+ ### 1.3 ** Updatable Events**
53
+ 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.
54
+ ```cpp
55
+ // updatable event
56
+ std::string updateEventId = "update_001";
57
+ TDPropertiesNode update_event_properties;
58
+ update_event_properties.SetString("price", "100");
59
+ update_event_properties.SetString("status", "3");
60
+ // the value of "status" is 3, the value of "price" is 100
61
+ te.track_update("accountId", "distinctId", "eventName", updateEventId, update_event_properties);
62
+
63
+ TDPropertiesNode update_event_new_properties;
64
+ update_event_new_properties.SetString("status", "5");
65
+ // the value of "status" become 5, the value of "price" is still 100
66
+ te.track_update("accountId", "distinctId", "eventName", updateEventId, update_event_new_properties);
67
+ ```
68
+
69
+ ### 1.4 **Overwritable Event****s**
70
+ 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.
71
+ ```cpp
72
+ // overwrite event
73
+ std::string overWriteEventId = "overWrite_001";
74
+ TDPropertiesNode overWrite_event_properties;
75
+ overWrite_event_properties.SetString("money", "99");
76
+ overWrite_event_properties.SetString("code", "10");
77
+ // the value of "code" is 10, the value of "money" is 99
78
+ te.track_overwrite("accountId", "distinctId", "eventName", overWriteEventId, overWrite_event_properties);
79
+
80
+ TDPropertiesNode overWrite_event_new_properties;
81
+ overWrite_event_new_properties.SetString("money", "66");
82
+ // The "money" has changed to 66,The "code" will be deleted
83
+ te.track_overwrite("accountId", "distinctId", "eventName", overWriteEventId, overWrite_event_new_properties);
84
+ ```
85
+
86
+ ## **User Properties**
87
+ User property setting APIs supported by the TE include: `user_set`, `user_setOnce`, `user_add`, `user_append`, `user_uniqAppend`, `user_unset`, `user_delete`.
88
+ ### 2.1 user_set
89
+ 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:
90
+ ```cpp
91
+ TDPropertiesNode userSet_properties;
92
+ userSet_properties.SetString("userName", "A");
93
+ // set user properties. the value of "userName" is "A"
94
+ te.user_set("accountId", "distinctId", userSet_properties);
95
+
96
+ userSet_properties.SetString("userName", "B");
97
+ // set user properties again,the value of "userName" will change to "B"
98
+ te.user_set("accountId", "distinctId", userSet_properties);
99
+ ```
100
+
101
+ ### 2.2 user_setOnce
102
+ If the user property you want to upload only needs to be set once, you can call `user_setOnce` 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:
103
+ ```cpp
104
+ // user_setOnce
105
+ TDPropertiesNode userSetOnce_properties;
106
+ userSetOnce_properties.SetString("user_one_name", "A");
107
+ // create "user_one_name" property, and the value is "A"
108
+ te.user_setOnce("accountId", "distinctId", userSetOnce_properties);
109
+
110
+ userSetOnce_properties.SetString("user_one_name", "B");
111
+ // the value of "user_one_name" is still "A"
112
+ te.user_setOnce("accountId", "distinctId", userSetOnce_properties);
113
+ ```
114
+
115
+ ### 2.3 user_add
116
+ When you want to upload numeric property for cumulative operation, you can call `user_add`.
117
+ 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:
118
+ ```cpp
119
+ // user_add
120
+ TDPropertiesNode userAdd_properties;
121
+ userAdd_properties.SetNumber("cash", 30);
122
+ // the value of "cash" is 30
123
+ te.user_add("accountId", "distinctId", userAdd_properties);
124
+
125
+ userAdd_properties.SetNumber("cash", 60);
126
+ // set user properties again,the value of "cash" is 90 now
127
+ te.user_add("accountId", "distinctId", userAdd_properties);
128
+ ```
129
+
130
+ <quote-container>
131
+ The property key is a string, and the value is only allowed to be a numeric value.
132
+ </quote-container>
133
+
134
+ ### 2.4 user_append
135
+ You can call `user_append` to add user properties of array type.
136
+ ```cpp
137
+ // user_append
138
+ TDPropertiesNode userAppend_properties;
139
+ std::vector<std::string> userAppendListValue;
140
+ userAppendListValue.push_back("11");
141
+ userAppendListValue.push_back("33");
142
+ userAppend_properties.SetList("arr1", userAppendListValue);
143
+ // the value of "arr1" is ["11", "33"]
144
+ te.user_append("accountId", "distinctId", userAppend_properties);
145
+
146
+ TDPropertiesNode userAppend_properties_new;
147
+ std::vector<std::string> userAppendListValueNew;
148
+ userAppendListValueNew.push_back("22");
149
+ userAppendListValueNew.push_back("33");
150
+ userAppend_properties_new.SetList("arr1", userAppendListValueNew);
151
+ // the value of "arr1" is ["11", "33", "22", "33"]
152
+ te.user_append("accountId", "distinctId", userAppend_properties_new);
153
+ ```
154
+
155
+ ### 2.5 user_uniqAppend
156
+ You can delete duplicated user property by calling `user_uniqAppend` API. If you call `user_append` API, duplicated user property might not be deleted.
157
+ ```cpp
158
+ // user_uniqAppend
159
+ TDPropertiesNode userAppend_properties;
160
+ std::vector<std::string> userAppendListValue;
161
+ userAppendListValue.push_back("11");
162
+ userAppendListValue.push_back("33");
163
+ userAppend_properties.SetList("arr1", userAppendListValue);
164
+ // the value of "arr1" is ["11", "33"]
165
+ te.user_uniqAppend("accountId", "distinctId", userAppend_properties);
166
+
167
+ TDPropertiesNode userAppend_properties_new;
168
+ std::vector<std::string> userAppendListValueNew;
169
+ userAppendListValueNew.push_back("22");
170
+ userAppendListValueNew.push_back("33");
171
+ userAppend_properties_new.SetList("arr1", userAppendListValueNew);
172
+ // the value of "arr1" is ["11", "33", "22"]
173
+ te.user_uniqAppend("accountId", "distinctId", userAppend_properties_new);
174
+ ```
175
+
176
+ ### 2.6 user_unset
177
+ 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.
178
+ ```cpp
179
+ // user_unset
180
+ TDPropertiesNode userUnset_properties;
181
+ userUnset_properties.SetNumber("userName", 0);
182
+ // the value of "userName" will be reset after executed "user_unset"
183
+ te.user_unset("accountId", "distinctId", userUnset_properties);
184
+ ```
185
+
186
+ ### 2.7 user_del
187
+ 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.
188
+ ```cpp
189
+ te.user_del("accountId", "distinctId");
190
+ ```
191
+
192
+
193
+ ## **Other**
194
+ ### 3.1 BatchConsumer
195
+ ::: warning Notice
196
+ 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
197
+ :::
198
+ Batches transmit data to the TE in real time, without the need for a transmission tool.
199
+ ```cpp
200
+ TDBatchConsumer batchConsumer("APPID","SERVER_URL", 10);
201
+ TDAnalytics te(batchConsumer, true);
202
+ ```
203
+
204
+ Instruction on parameters:
205
+ - `APPID`: The APPID of your project, which can be found on the project management page of TE.
206
+ - `SERVER_URL`:
207
+ - If you are using a SaaS version, please check the receiver URL on this page
208
+ <image token="UKc5bUYQ5oKVk9xjgW6cS6DHn0c" width="1674" height="1318" align="center"/>
209
+
210
+ - If you use the private deployment version, you can customize the data tracking URL .
@@ -0,0 +1,211 @@
1
+ ---
2
+ code: c_sdk_advanced
3
+ name: "C-Advanced"
4
+ wikiToken: IvaxwsdOwi8b3Ck84AzcXobtnDb
5
+ parentWikiToken: Er3owqC0UiRR21kCDgZcY4qJn3e
6
+ updateTime: 1774249245000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=c_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 `td_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
+ ```c
15
+ TDProperties *properties = td_init_properties();
16
+ TD_ASSERT(TD_OK == td_add_string("product_name", "goods_name", strlen("goods_name"), properties));
17
+
18
+ TD_ASSERT(TD_OK == td_track("account_id", "distinct_id", "product_buy", properties, ta));
19
+ td_free_properties(properties);
20
+ ```
21
+
22
+ ### 1.2 **First Events**
23
+ 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.
24
+ 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:
25
+ ```c
26
+ TD_ASSERT(TD_OK == td_track_first_event("account_id", "distinct_id", "device_activation", "first_id", properties, ta));
27
+ ```
28
+
29
+ <quote-container>
30
+ 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.
31
+ </quote-container>
32
+
33
+ ### 1.3 ** Updatable Events**
34
+ 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.
35
+ ```c
36
+ TDProperties *properties = td_init_properties();
37
+ TD_ASSERT(TD_OK == td_add_int("price",100,properties));
38
+ TD_ASSERT(TD_OK == td_add_int("status",3,properties));
39
+ TD_ASSERT(TD_OK == td_track_update("account_id", "distinct_id", "UPDATABLE_EVENT", "event_id",properties, ta));
40
+ td_free_properties(properties);
41
+
42
+ TDProperties *new_properties = td_init_properties();
43
+ TD_ASSERT(TD_OK == td_add_int("status",5,new_properties));
44
+ TD_ASSERT(TD_OK == td_track_update("account_id", "distinct_id", "UPDATABLE_EVENT", "event_id",new_properties, ta));
45
+ td_free_properties(new_properties);
46
+ ```
47
+
48
+ ### 1.4 **Overwritable Event****s**
49
+ 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.
50
+ ```c
51
+ TDProperties *properties = td_init_properties();
52
+ TD_ASSERT(TD_OK == td_add_int("price",100,properties));
53
+ TD_ASSERT(TD_OK == td_add_int("status",3,properties));
54
+ TD_ASSERT(TD_OK == td_track_overwrite("account_id", "distinct_id", "OVERWRITE_EVENT", "event_id",properties, ta));
55
+ td_free_properties(properties);
56
+
57
+ TDProperties *new_properties = td_init_properties();
58
+ TD_ASSERT(TD_OK == td_add_int("status",5,new_properties));
59
+ TD_ASSERT(TD_OK == td_track_overwrite("account_id", "distinct_id", "OVERWRITE_EVENT", "event_id",new_properties, ta));
60
+ td_free_properties(new_properties);
61
+ ```
62
+
63
+ ## **User Properties**
64
+ User property setting API supported by the TE include: `td_user_set`, `td_user_setOnce`, `td_user_add`, `td_user_append`, `td_user_uniq_append`, `td_user_unset`, `td_user_delete`.
65
+ ### 2.1 td_user_set
66
+ You can call `td_user_set` to set general user properties. The original properties would be replaced if the properties uploaded via the API again. 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:
67
+ ```c
68
+ TDProperties *user_properties = td_init_properties();
69
+ TD_ASSERT(TD_OK == td_add_string("user_name", "TA", strlen("TA"), user_properties));
70
+ TD_ASSERT(TD_OK == td_user_set("account_id", "distinct_id", user_properties,ta));
71
+ td_free_properties(user_properties);
72
+
73
+ TDProperties *user_properties2 = td_init_properties();
74
+ TD_ASSERT(TD_OK == td_add_string("user_name", "TE", strlen("TE"), user_properties2));
75
+ TD_ASSERT(TD_OK == td_user_set("account_id", "distinct_id", user_properties2,ta));
76
+ td_free_properties(user_properties2);
77
+ ```
78
+
79
+ ### 2.2 td_user_setOnce
80
+ If the user property you want to upload only needs to be set once, you can call `td_user_setOnce` 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:
81
+ ```c
82
+ TDProperties *user_properties = td_init_properties();
83
+ TD_ASSERT(TD_OK == td_add_string("first_payment_time", "2018-01-01 01:23:45.678", strlen("2018-01-01 01:23:45.678"), user_properties));
84
+ TD_ASSERT(TD_OK == td_user_setOnce("account_id", "distinct_id", user_properties,ta));
85
+ td_free_properties(user_properties);
86
+
87
+ TDProperties *user_properties2 = td_init_properties();
88
+ TD_ASSERT(TD_OK == td_add_string("first_payment_time", "2018-12-31 01:23:45.678", strlen("2018-12-31 01:23:45.678"), user_properties2));
89
+ TD_ASSERT(TD_OK == td_user_setOnce("account_id", "distinct_id", user_properties2,ta));
90
+ td_free_properties(user_properties2);
91
+ ```
92
+
93
+ ### 2.3 td_user_add
94
+ When you want to upload numeric property for cumulative operation, you can call `td_user_add`.
95
+ 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:
96
+ ```c
97
+ TDProperties *user_properties = td_init_properties();
98
+ TD_ASSERT(TD_OK == td_add_int("total_revenue", 30, user_properties));
99
+ TD_ASSERT(TD_OK == td_user_add("account_id", "distinct_id", user_properties, ta));
100
+ td_free_properties(user_properties);
101
+
102
+ TDProperties *new_user_properties = td_init_properties();
103
+ TD_ASSERT(TD_OK == td_add_int("total_revenue",648 , new_user_properties));
104
+ TD_ASSERT(TD_OK == td_user_add("account_id", "distinct_id", new_user_properties, ta));
105
+ td_free_properties(new_user_properties);
106
+ ```
107
+
108
+ <quote-container>
109
+ The property key is a string, and the value is only allowed to be a numeric value.
110
+ </quote-container>
111
+
112
+ ### 2.4 td_user_append
113
+ You can call `td_user_append` to add user properties of array type.
114
+ ```c
115
+ TDProperties *array_properties = td_init_properties();
116
+ TD_ASSERT(TD_OK == td_append_array("user_list", "apple", strlen("apple"), array_properties));
117
+ TD_ASSERT(TD_OK == td_append_array("user_list", "ball", strlen("ball"), array_properties));
118
+ TD_ASSERT(TD_OK == td_user_append("account_id", "distinct_id", array_properties, ta));
119
+ td_free_properties(array_properties);
120
+
121
+ TDProperties *new_array_properties = td_init_properties();
122
+ TD_ASSERT(TD_OK == td_append_array("user_list", "apple", strlen("apple"), new_array_properties));
123
+ TD_ASSERT(TD_OK == td_append_array("user_list", "cube", strlen("cube"), new_array_properties));
124
+ TD_ASSERT(TD_OK == td_user_append("account_id", "distinct_id", new_array_properties, ta));
125
+ ```
126
+
127
+ ### 2.5 td_user_uniq_append
128
+ You can delete duplicated user property by calling `td_user_uniq_append` API. If you call `td_user_uniq_append` API, duplicated user property will be merged.
129
+ ```c
130
+ TDProperties *array_properties = td_init_properties();
131
+ TD_ASSERT(TD_OK == td_append_array("user_list", "apple", strlen("apple"), array_properties));
132
+ TD_ASSERT(TD_OK == td_append_array("user_list", "ball", strlen("ball"), array_properties));
133
+ TD_ASSERT(TD_OK == td_user_append("account_id", "distinct_id", array_properties, ta));
134
+ td_free_properties(array_properties);
135
+
136
+ TDProperties *new_array_properties = td_init_properties();
137
+ TD_ASSERT(TD_OK == td_append_array("user_list", "apple", strlen("apple"), new_array_properties));
138
+ TD_ASSERT(TD_OK == td_append_array("user_list", "cube", strlen("cube"), new_array_properties));
139
+ TD_ASSERT(TD_OK == td_user_uniq_append("account_id","distinct_id", new_array_properties, ta));
140
+ td_free_properties(new_array_properties);
141
+ ```
142
+
143
+ ### 2.6 td_user_unset
144
+ When you need to clear the user properties of users, you can call `td_user_unset` to clear specific properties. `td_user_unset` would not create properties that have not been created in the cluster.
145
+ ```c
146
+ TD_ASSERT(TD_OK == td_user_unset("account_id", "distinct_id", "test", ta));
147
+ ```
148
+
149
+ ### 2.7 td_user_delete
150
+ You can call `td_user_delete` 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.
151
+ ```c
152
+ TD_ASSERT(TD_OK == td_user_delete("account_id", "distinct_id", ta));
153
+ ```
154
+
155
+ ## **Other**
156
+ ### 3.1 BatchConsumer
157
+ ::: warning Notice
158
+ 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
159
+ :::
160
+ Batches transmit data to the TE in real time, without the need for a transmission tool.
161
+ e.g. Modify the `CMakeLists.txt` file:
162
+ ```bash
163
+ # Product Library: batch consumer
164
+ if(WIN32)
165
+ add_compile_definitions(USE_WIN)
166
+ set(CMAKE_C_FLAGS "-std=c99 -pedantic-errors -m64")
167
+ else()
168
+ add_compile_definitions(USE_POSIX)
169
+ set(CMAKE_C_FLAGS "-std=c99")
170
+ endif()
171
+ SET(TE_LIB_NAME thinkingDataBatch)
172
+ add_library(${TE_LIB_NAME} src/thinkingdata.c src/td_json.c src/td_list.c src/td_util.c src/td_batch_consumer.c src/td_http_client.c)
173
+ if(WIN32)
174
+ add_compile_definitions(BUILDING_LIBCURL)
175
+ include_directories(thirdparty/pcre/include thirdparty/curl/include)
176
+ link_directories(thirdparty/pcre/lib thirdparty/curl/lib)
177
+ target_link_libraries(${TE_LIB_NAME} pcre_x64 libcurl)
178
+ else()
179
+ target_link_libraries(${TE_LIB_NAME} curl)
180
+ endif()
181
+ ```
182
+
183
+ ```c
184
+ struct TDAnalytics* ta = NULL;
185
+ struct TDConsumer* consumer = NULL;
186
+
187
+ TDConfig *config = td_init_config();
188
+
189
+ char* appid = "APPID";
190
+ char* serverURL = "SERVER_URL";
191
+ TD_ASSERT(TD_OK == td_add_string("push_url", serverURL, strlen(serverURL), config));
192
+ TD_ASSERT(TD_OK == td_add_string("appid", appid, strlen(appid), config));
193
+
194
+ if (TD_OK != td_init_consumer(&consumer, config)) {
195
+ fprintf(stderr, "Failed to initialize the consumer.");
196
+ return 1;
197
+ }
198
+ td_free_properties(config);
199
+ if (TD_OK != td_init(consumer, &ta)) {
200
+ fprintf(stderr, "Failed to initialize the SDK.");
201
+ return 1;
202
+ }
203
+ ```
204
+
205
+ Instruction on parameters:
206
+ - `APPID`: The APPID of your project, which can be found on the project management page of TE.
207
+ - `SERVER_URL`:
208
+ - If you are using a SaaS version, please check the receiver URL on this page
209
+ <image token="Eg1QbzIeHoAQpOxlbJ6cRMydnYc" width="1674" height="1318" align="center"/>
210
+
211
+ - If you use the private deployment version, you can customize the data tracking URL .
@@ -0,0 +1,62 @@
1
+ ---
2
+ code: cpp_server_sdk_release_note
3
+ name: "Release Notes"
4
+ wikiToken: PVazwaSPXiD22Nk4LlSc6gaHnjy
5
+ parentWikiToken: Zf9Jwl81biGtrbkmBhackD1Fn3c
6
+ updateTime: 1774249332000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=cpp_server_sdk_release_note
8
+ ---
9
+ ## v2.0.0
10
+ **Date: 2023/11/30**
11
+ **Notes:**
12
+ - Release the official version
13
+ ## v2.0.0-beta.1
14
+ **Date: 2023/10/08**
15
+ **Notes:**
16
+ - Enable new API, add 'TD' prefix to class name
17
+ - Not compatible with older SDK. You need to change the class name and namespace manually
18
+ ## v1.2.8-beta.2
19
+ **Date: 2023/06/02**
20
+ **Notes:**
21
+ - Handle invalid iterators
22
+ ## v1.2.8-beta.1
23
+ **Date: 2023/05/30**
24
+ **Notes:**
25
+ - Improve data writing efficiency
26
+ ## v1.2.7
27
+ **Date: 2023/04/07**
28
+ **Notes:**
29
+ - Use thread instead of pthread
30
+ ## v1.2.6
31
+ **Date: 2023/03/14**
32
+ **Notes:**
33
+ - Improve stability
34
+ ## v1.2.5
35
+ **Date: 2023/02/24**
36
+ **Notes:**
37
+ - Clean up code
38
+ ## v1.2.4
39
+ **Date: 2023/02/21**
40
+ **Notes:**
41
+ - Fix platform compatibility problems
42
+ ## v1.2.3
43
+ **Date: 2023/02/16**
44
+ **Notes:**
45
+ - Clean up code
46
+ ## v1.2.2
47
+ **Date: 2023/02/05**
48
+ **Notes:**
49
+ - Bugfix: uuid
50
+ ## v1.2.1
51
+ **Date: 2023/01/11**
52
+ **Notes:**
53
+ - Bugfix: event report delays because of `bufferSize`
54
+ ## v1.2.0
55
+ **Date: 2022/11/01**
56
+ **Notes:**
57
+ - Supports debug consumer
58
+ - Supports batch consumer
59
+ ## v1.0.0
60
+ **Date: 2022/05/20**
61
+ **Notes:**
62
+ - Supports log_consumer
@@ -0,0 +1,50 @@
1
+ ---
2
+ code: csharp_sdk_release_note
3
+ name: "Release Notes"
4
+ wikiToken: TADbwYQnKihuXJk2RlJco9tgn9f
5
+ parentWikiToken: V2W3wvcfkiGW3lk9rrDcnosAnqi
6
+ updateTime: 1774249302000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=csharp_sdk_release_note
8
+ ---
9
+
10
+ ## v2.0.3
11
+ **Date:** 2025/09/03
12
+ **Notes:**
13
+ - Improve SDK stability
14
+ ## v2.0.2
15
+ **Date:** 2025/03/12
16
+ **Notes:**
17
+ - Improve SDK stability
18
+ ## v2.0.1
19
+ **Date:** 2024/01/18
20
+ **Notes:**
21
+ - Use thread-level locks
22
+ ## v2.0.0
23
+ **Date:** 2023/09/21
24
+ **Notes:**
25
+ - Add new API
26
+ ## v1.5.2
27
+ **Date: **2023/04/03
28
+ **Notes:**
29
+ - Support .net and .net statandard 2.0
30
+ ## v1.5.1
31
+ **Date:2022/11/09**
32
+ **Notes:**
33
+ - Support debug model in TE
34
+ ## v1.5.0
35
+ **Date:2022/10/28**
36
+ **Notes:**
37
+ - Support log
38
+ - Support multiple projects
39
+ ## v1.4.0
40
+ **Date:2022/05/06**
41
+ **Notes:**
42
+ - Support dynamic properties
43
+ - Support first event reporting
44
+ - add 'UserUniqAppend' type
45
+ - Support Object And Object Ggroup
46
+ - Upload event with asynchronous
47
+ ## v1.3.1
48
+ **Date: 2021/04/22**
49
+ **Notes:**
50
+ - fixbug: LoggerConsumer write file failed
@@ -0,0 +1,69 @@
1
+ ---
2
+ code: c_sdk_release_note
3
+ name: "Release Notes"
4
+ wikiToken: QQsgwkqk3iGHBMkYQDqc8ZcBnwf
5
+ parentWikiToken: Er3owqC0UiRR21kCDgZcY4qJn3e
6
+ updateTime: 1774249251000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=c_sdk_release_note
8
+ ---
9
+
10
+ ## v2.0.0
11
+ **Date: 2023/11/30**
12
+ **Notes:**
13
+ - Release the official version
14
+ ## v2.0.0-beta.1
15
+ **Date: 2023/09/21**
16
+ **Notes:**
17
+ - Using the new api
18
+ ## v1.3.7
19
+ **Date: 2023/09/21**
20
+ **Notes:**
21
+ - Release the official version
22
+ ## v1.3.7-beta.1
23
+ **Date: 2023/04/23**
24
+ **Notes:**
25
+ - Tidy example program
26
+ - Tidy CMakeList.txt
27
+ - Improve compatibility
28
+ ## v1.3.6
29
+ **Date: 2022/06/22**
30
+ **Notes:**
31
+ - Improve stability
32
+ ## v1.3.5
33
+ **Date: 2022/05/16**
34
+ **Notes:**
35
+ - Supports debug_consumer
36
+ - Supports async_batch_consumer
37
+ - Add API: ta_user_uniq_append()
38
+ ## v1.3.4
39
+ **Date: 2022/03/03**
40
+ **Notes:**
41
+ - Supports object group
42
+ ## v1.3.3
43
+ **Date: 2022/02/08**
44
+ **Notes:**
45
+ - Fix bug: Possible duplicate name problems because of snprintf
46
+ ## v1.3.2
47
+ **Date: 2021/11/23**
48
+ **Notes:**
49
+ - Optimize the snprintf function in windows
50
+ ## v1.3.1
51
+ **Date: 2021/11/10**
52
+ **Notes:**
53
+ - Not exit SDK when malloc failed
54
+ ## v1.3.0
55
+ **Date: 2021/10/13**
56
+ **Notes:**
57
+ - Add batch consumer
58
+ ## v1.2.3
59
+ **Date: 2021/09/23**
60
+ **Notes:**
61
+ - Fix #first_check_id error
62
+ ## v1.2.2
63
+ **Date: 2021/07/01**
64
+ **Notes:**
65
+ - Adapt to windows environment
66
+ ## v1.2.1
67
+ **Date: 2021/06/09**
68
+ **Notes:**
69
+ - No longer use stdbool library