@thinkingai/ae-cli 1.0.30 → 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 (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 +2526 -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,77 @@
1
+ ---
2
+ code: unity_sdk_thirdparty
3
+ name: "Third-party Integration"
4
+ wikiToken: VFkdwuFNAiHedqkdbItc6oXznQ1
5
+ parentWikiToken: A3TawLiiwiV2LZkUDTAc1YuOnmd
6
+ updateTime: 1774249098000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unity_sdk_thirdparty
8
+ ---
9
+
10
+ The sample codes for the synchronization of multiple platform data are as follows:
11
+ ```csharp
12
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.APPSFLYER | TDThirdPartyType.ADJUST | TDThirdPartyType.TRADPLUS | TDThirdPartyType.TRACKING | TDThirdPartyType.TOPON | TDThirdPartyType.BRANCH | TDThirdPartyType.IRONSOURCE);
13
+ ```
14
+
15
+ ## **1. Appsflyer**
16
+ Call this API before AppsFlyer SDK calls the Start API:
17
+ ```csharp
18
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.APPSFLYER);
19
+ ```
20
+
21
+ After the created role is registered (optional):
22
+ ```csharp
23
+ TDAnalytics.Login("account_id");
24
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.APPSFLYER);
25
+ ```
26
+
27
+ <quote-container>
28
+ Note: Every time you call the `Login` or `SetDistinctId`, you need to call `EnableThirdPartySharing` synchronously to update the user ID.
29
+ </quote-container>
30
+
31
+ ## **2. Adjust**
32
+ To be called before Adjust SDK initialization:
33
+ ```csharp
34
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.ADJUST);
35
+ ```
36
+
37
+ After the created role is registered (optional):
38
+ ```csharp
39
+ TDAnalytics.Login("account_id");
40
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.ADJUST);
41
+ ```
42
+
43
+ ## **3. Branch**
44
+ To be called before the Branch initialize the session:
45
+ ```java
46
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.BRANCH);
47
+ ```
48
+
49
+ After the created role is registered (optional):
50
+ ```java
51
+ TDAnalytics.Login("account_id");
52
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.BRANCH);
53
+ ```
54
+
55
+ ## **4. TopOn**
56
+ To be called before ATSDK.*init:*
57
+ ```java
58
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.TOPON);
59
+ ```
60
+
61
+ ## **5. ReYun**
62
+ To be called after the account is registered:
63
+ ```java
64
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.TRACKING);
65
+ ```
66
+
67
+ ## **6.** **Trad****P****lus**
68
+ To be called before TradPlus SDK initialization*:*
69
+ ```java
70
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.TRADPLUS);
71
+ ```
72
+
73
+ ## **7.** **IronSource**
74
+ To be called after IronSource SDK initialization:
75
+ ```java
76
+ TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.IRONSOURCE);
77
+ ```
@@ -0,0 +1,396 @@
1
+ ---
2
+ code: unity_sdk_advanced
3
+ name: "Unity-Advanced"
4
+ wikiToken: A3TawLiiwiV2LZkUDTAc1YuOnmd
5
+ parentWikiToken: NaFYwOKI1iN5mgkTPQwcZY0tnRg
6
+ updateTime: 1774249091000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unity_sdk_advanced
8
+ ---
9
+ ## **1. Managing User Identity**
10
+ SDK instances would use random UUID as the default distinct ID of each user by default, which would be used as the identity identification ID of users under an unlogged-in state. It should be noted that the distinct ID would change after the user reinstalled the App or use the APP with a new device.
11
+ ### **1.1. Identify**
12
+ ::: tip
13
+ Generally speaking, you do not need to customize a distinct ID Please ensure that you understand [<text underline="true">User Identification Rules</text>](https%3A%2F%2Fthinkingdata.feishu.cn%2Fwiki%2FORyZwNANpi12XBkyGgUccSy0ntb)<text color="purple" underline="true"> </text>before setting a distinct ID.
14
+ If you need to change the distinct ID, please call the api immediately after SDK is initialized. To avoid the generation of useless accounts, please do not call such a process multiple times.
15
+ :::
16
+ If your App has its own distinct ID management system for each user, you can call `SetDistinctId` to set the distinct ID:
17
+ ```csharp
18
+ // set distinct ID as Thinker
19
+ TDAnalytics.SetDistinctId("Thinker");
20
+ ```
21
+
22
+ If you need to get the current distinct ID, please call `GetDistinctId`:
23
+ ```csharp
24
+ // return distinct ID
25
+ String distinctId = TDAnalytics.GetDistinctId();
26
+ ```
27
+
28
+ ### **1.2 Login**
29
+ When the users log in, `Login` could be called to set the account ID of the user. TE would use the account ID as the identity identification ID, and the account ID that has been set would be saved before `Logout` is called. The previous account ID would be replaced if `Login` has been called multiple times.
30
+ ```csharp
31
+ // The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
32
+ TDAnalytics.Login("TA");
33
+ ```
34
+
35
+ <quote-container>
36
+ **Login events wouldn't be uploaded in this method.**
37
+ </quote-container>
38
+
39
+ ### **1.3 Removing Account ID**
40
+ After the user logs out, `Logout` could be called to remove the account ID. The distinct ID would be used as the identity identification ID before the next time `Login` is called.
41
+ ```csharp
42
+ TDAnalytics.Logout();
43
+ ```
44
+
45
+ It is recommended that you call logout upon explicit logout event. For example, call `Logout` when the user commits the behavior of canceling an account; do not call such a process when the App is closed.
46
+ <quote-container>
47
+ **Logout events wouldn't be uploaded in this method.**
48
+ </quote-container>
49
+
50
+ ## **2. Sending Events**
51
+ 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 service scenario.
52
+ ### **2.1 Ordinary Events**
53
+ 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:
54
+ ```csharp
55
+ Dictionary<string, object> properties = new Dictionary<string, object>(){
56
+ {"product_name", "product name"}
57
+ };
58
+ TDAnalytics.Track("product_buy", properties);
59
+ ```
60
+
61
+ ### **2.2 First Events**
62
+ 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.
63
+ ```csharp
64
+ Dictionary<string, object> properties = new Dictionary<string, object>() {
65
+ { "status", 1}
66
+ };
67
+ TDFirstEventModel firstEvent = new TDFirstEventModel("first_event");
68
+ firstEvent.Properties = properties;
69
+ TDAnalytics.Track(firstEvent);
70
+ ```
71
+
72
+ 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:
73
+ ```csharp
74
+ //set the user ID as the first_check_id of the first event to track the first initialization event of the user.
75
+ Dictionary<string, object> properties = new Dictionary<string, object>(){
76
+ {"key", "value"}
77
+ };
78
+ TDFirstEventModel firstEvent = new TDFirstEventModel("first_event", "any-user-id");
79
+ firstEvent.Properties = properties;
80
+ TDAnalytics.Track(firstEvent);
81
+ ```
82
+
83
+ <quote-container>
84
+ 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.
85
+ </quote-container>
86
+
87
+ ### **2.3 Updatable Events**
88
+ You can meet the requirements for event data modification under specific scenarios through Updatable Events. The ID of Updatable Events should be specified and uploaded when the objects of Updatable Events are created. TE would determine the data to be updated according to the event name and event ID.
89
+ ```csharp
90
+ //The event property status is 3 after reporting, with the price being 100
91
+ TDUpdatableEventModel updatableEvent = new TDUpdatableEventModel("UPDATABLE_EVENT", "test_event_id");
92
+ updatableEvent.Properties = new Dictionary<string, object>{
93
+ {"status", 3},
94
+ {"price", 100}
95
+ };
96
+ TDAnalytics.Track(updatableEvent);
97
+
98
+ //The event property status is 5 after reporting, with the price remaining the same
99
+ TDUpdatableEventModel updatableEvent_new = new TDUpdatableEventModel("UPDATABLE_EVENT", "test_event_id");
100
+ updatableEvent_new.Properties = new Dictionary<string, object>{
101
+ {"status", 5}
102
+ };
103
+ TDAnalytics.Track(updatableEvent_new);
104
+ ```
105
+
106
+ ### **2.4 Overwritable Events**
107
+ Despite the similarity with Updatable Events, Overwritable Events would replace 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. TE would determine the data to be updated according to the event name and event ID.
108
+ ```csharp
109
+ // Instance: Assume the event name is OVERWRITE_EVENT when reporting an overwritable event
110
+ //The event property status is 3 after reporting, with the price being 100
111
+ TDOverwritableEventModel overWritableEvent = new TDOverwritableEventModel("OVERWRITABLE_EVENT", "test_event_id");
112
+ overWritableEvent.Properties = new Dictionary<string, object>{
113
+ {"status", 3},
114
+ {"price", 100}
115
+ };
116
+ TDAnalytics.Track(overWritableEvent);
117
+
118
+ //The event property status is 5 after reporting, with the price deleted
119
+ TDOverwritableEventModel overWritableEvent_new = new TDOverwritableEventModel("OVERWRITABLE_EVENT", "test_event_id");
120
+ overWritableEvent_new.Properties = new Dictionary<string, object>{
121
+ {"status", 5}
122
+ };
123
+ TDAnalytics.Track(overWritableEvent_new);
124
+ ```
125
+
126
+ ### **2.5 Super Properties**
127
+ Super properties refer to properties that would be uploaded by each event. Super properties could be divided into `static super properties` and `dynamic super properties`based on the update frequency. You can select different methods for super property setting according to business requirements; we recommend that you set super properties first before sending events. In the same event, when the keys of super properties, self-defined event properties, and preset properties are the same, we would assign value according to the following priority: `self-defined properties>dynamic super properties>static super properties>preset properties`.
128
+ #### **2.5.1 Static Super Properties**
129
+ Static super properties are properties that all events might have and would change with a low frequency, for example, the user membership class. After setting static super properties through `SetSuperProperties`, SDK would use the preset super properties as the event properties when tracking events.
130
+ ```csharp
131
+ Dictionary<string, object> superProperties = new Dictionary<string, object>(){
132
+ {"vip_level", 2}
133
+ };
134
+ TDAnalytics.SetSuperProperties(superProperties);
135
+ ```
136
+
137
+ Static super properties would be saved in local storage, and should not be called every time the App is closed. If such properties already exist, the reset properties would replace the original properties. If such properties do not exist, properties would be newly created. In addition to property setting, we also provide other APIs to set and manage static super properties and meet general business requirements.
138
+ ```csharp
139
+ //clear super property named 'CHANNEL'
140
+ TDAnalytics.UnsetSuperProperty("CHANNEL");
141
+ //clear all super properties
142
+ TDAnalytics.ClearSuperProperties();
143
+ //get all super properties
144
+ TDAnalytics.GetSuperProperties();
145
+ ```
146
+
147
+ #### **2.5.2 Dynamic super properties**
148
+ Dynamic super properties that all events might have and would change with a high frequency, for example, the quantity of the gold coins the user possesses. After setting dynamic super properties through `SetDynamicSuperProperties`, SDK would obtain the properties in `GetDynamicSuperProperties` during event tracking automatically, and add such properties to the event triggered.
149
+ ```csharp
150
+ // 1. implement dynamic properties interface, this is an example of setting the dynamic change of gold coins
151
+ public class DynamicProp : TDDynamicSuperPropertiesHandler
152
+ {
153
+ int coin = 0;
154
+ public Dictionary<string, object> GetDynamicSuperProperties()
155
+ {
156
+ coin++;
157
+ return new Dictionary<string, object>() {
158
+ {"coin",coin}
159
+ };
160
+ }
161
+ }
162
+ // 2. set dynamic properties
163
+ TDAnalytics.SetDynamicSuperProperties(new DynamicProp());
164
+ ```
165
+
166
+ ### **2.6 Timing Events**
167
+ If you need to record the duration of a certain event, you can call `TimeEvent` . Configure the name of the event you want to record. When you upload the event, `#duration` would be added to your event property automatically to record the duration of the event (unit: second). It should be noted that only one task can be timed with the same event name.
168
+ ```csharp
169
+ //The following instance has recorded the time the user spent on a certain product page
170
+ //The user enters the product page and starts the timing
171
+ TDAnalytics.TimeEvent("stay_shop");
172
+ /**do someting
173
+ .......
174
+ **/
175
+ //the timing would end when the user leaves the product page. "stay_shop" event would carry#duration, a property representing event duration.
176
+ TDAnalytics.Track("stay_shop");
177
+ ```
178
+
179
+ ## **3. User Properties**
180
+ User property setting APIs supported by TE include: `UserSet`,`UserSetOnce`,`UserAdd`,`UserUnset`,`UserDelete`,`UserAppend`,`UserUniqAppend`.
181
+ ### **3.1 UserSet**
182
+ You can call `UserSet` to set general user properties. The original properties would be replaced if the properties uploaded via the API are used. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
183
+
184
+ ```csharp
185
+ //the username now is TA
186
+ TDAnalytics.UserSet(new Dictionary<string, object>(){
187
+ {"user_name", "TA"}
188
+ });
189
+ //the username now is TE
190
+ TDAnalytics.UserSet(new Dictionary<string, object>(){
191
+ {"user_name", "TE"}
192
+ });
193
+ ```
194
+
195
+ ### **3.2 UserSetOnce**
196
+ If the user property you want to upload only needs to be set once, you can call `UserSetOnce` to set the property. If such property had been set before, this message would be neglected. Let's take the setting of the first payment time as an example:
197
+ ```csharp
198
+ //first_payment_time is '2018-01-01 01:23:45.678'
199
+ TDAnalytics.UserSetOnce(new Dictionary<string, object>(){
200
+ {"first_payment_time","2018-01-01 01:23:45.678"}
201
+ });
202
+ //first_payment_time is '2018-01-01 01:23:45.678' as before
203
+ TDAnalytics.UserSetOnce(new Dictionary<string, object>(){
204
+ {"first_payment_time","2018-12-31 01:23:45.678"}
205
+ });
206
+ ```
207
+
208
+ ### **3.3 UserAdd**
209
+ When you want to upload numeric attributes for cumulative operation, you can call `UserAdd`.
210
+ 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:
211
+ ```csharp
212
+ //current total_revenue is 30
213
+ TDAnalytics.UserAdd(new Dictionary<string, object>(){
214
+ {"total_revenue",30}
215
+ });
216
+ //current total_revenue is 678
217
+ TDAnalytics.UserAdd(new Dictionary<string, object>(){
218
+ {"total_revenue",648}
219
+ })
220
+ ```
221
+
222
+ <quote-container>
223
+ The set attribute key is a string, and the Value is only allowed to be a numeric value.
224
+ </quote-container>
225
+
226
+ ### **3.4 UserUnset**
227
+ When you need to clear the user properties of users, you can call `UserUnset` to clear specific properties. `UserUnset` would not create properties that have not been created in the cluster.
228
+ ```csharp
229
+ // delete a user property named 'userPropertyName'
230
+ TDAnalytics.UserUnset("userPropertyName");
231
+ // delete some user properties as List
232
+ List<string> listProps = new List<string>();
233
+ listProps.Add("aaa");
234
+ listProps.Add("bbb");
235
+ listProps.Add("ccc");
236
+
237
+ TDAnalytics.UserUnset(listProps);
238
+ ```
239
+
240
+ ### **3.5 UserDelete**
241
+ You can call `UserDelete` to delete a user. After deleting the user, you would no longer be able to inquire about its user property, but could still obtain the events data triggered by the user.
242
+ ```csharp
243
+ TDAnalytics.UserDelete();
244
+ ```
245
+
246
+ ### **3.6 UserAppend**
247
+ You can call `UserAppend` to add user properties of array type.
248
+ ```csharp
249
+ List<string> stringList = new List<string>();
250
+ stringList.Add("apple");
251
+ stringList.Add("ball");
252
+ // call UserAppend to add elements for user property user_list. In this case, mon-existing elements would be newly created
253
+ TDAnalytics.UserAppend(new Dictionary<string, object>{
254
+ {"user_list", stringList }
255
+ });
256
+ ```
257
+
258
+ ### **3.7 UserUniqAppend**
259
+ Since the v2.4.0, you can call `UserUniqAppend` to add user properties of array type. You can delete duplicated user property by calling `UserUniqAppend` interface. If you call `UserAppend` API, duplicated user property might not be deleted.
260
+ ```csharp
261
+ //the property value of user_list is ["apple","ball"]
262
+ List<string> stringList = new List<string>();
263
+ stringList.Add("apple");
264
+ stringList.Add("ball");
265
+ TDAnalytics.UserAppend(new Dictionary<string, object>{
266
+ {"user_list", stringList}
267
+ });
268
+
269
+ List<string> stringList1 = new List<string>();
270
+ stringList1.Add("apple");
271
+ stringList1.Add("cube");
272
+ //the property value of user_list is ["apple","apple","ball","cube"]
273
+ TDAnalytics.UserAppend(new Dictionary<string, object>{
274
+ {"user_list", stringList1}
275
+ });
276
+ //the property value of user_list is ["apple","ball","cube"]
277
+ TDAnalytics.UserUniqAppend(new Dictionary<string, object>{
278
+ {"user_list", stringList1}
279
+ });
280
+ ```
281
+
282
+ ## **4. Encryption**
283
+ Since v2.4.0, SDK supports the encryption function for iOS/Android devices, while the client side supports AES+RSA in encrypting data and the server in the decryption of data. The encryption/decryption capability should be realized through coordination between the client side and the server. For detailed information, please consult our customer success manager.
284
+ ```csharp
285
+ TDConfig tdConfig = new TDConfig(appId, serverUrl);
286
+ tdConfig.EnableEncrypt("YOUR_ENCRYPT_PUBLIC_KEY", 1);
287
+ TDAnalytics.Init(tdConfig);
288
+ ```
289
+
290
+ ## **5. Other**
291
+ ### 5.1 Device ID
292
+ You can call `GetDeviceId` to obtain the device ID:
293
+ ```csharp
294
+ TDAnalytics.GetDeviceId();
295
+ ```
296
+
297
+ ### 5.2 Default Timezone
298
+ SDK would use the local time as the event time by default. You can also assign a timezone by setting the default timezone API. In this way, the time of all events could be aligned according to the timezone set by you:
299
+ ```csharp
300
+ TDConfig tdConfig = new TDConfig(appId, serverUrl);
301
+ tdConfig.timezone = TDTimeZone.UTC;
302
+ TDAnalytics.Init(tdConfig);
303
+ ```
304
+
305
+ <quote-container>
306
+ The local timezone information of the device would be lost if a specific timezone is used to align event time. If you need to save the local timezone information of the device, please add relevant properties for the event.
307
+ </quote-container>
308
+
309
+ ### 5.3 Time Calibration
310
+ SDK would use local time as the event time by default. If the user modifies the device time manually, analysis would be affected. At this time, time calibration could be performed to ensure the accuracy of event time. We provide two time calibration methods: `timestamp` and `NTP`.
311
+ - You can use the current timestamp obtained from the server to calibrate the time of SDK. Thereafter, all calling operations not assigned with a specific time would use the calibrated time as the occurrence time, including event data and user property setting.
312
+ ```csharp
313
+ // 1585633785954 is the current unix time stamp, with the unit being millisecond;
314
+ // the corresponding Beijing time is 2020-03-31 13:49:45
315
+ TDAnalytics.CalibrateTime(1585633785954);
316
+ ```
317
+
318
+ - You can also set the address of NTP server, after which SDK would try to obtain the current time from the uploaded NTP server address and calibrate the SDK time. If you failed to obtain the current return results within the default timeout interval (3s), local time would be used to track data.
319
+ ```csharp
320
+ // use the NTP service of Apple Inc for time calibration
321
+ TDAnalytics.CalibrateTimeWithNtp("time.apple.com");
322
+ ```
323
+
324
+ <quote-container>
325
+ 1. Using NTP service for time calibration would create some uncertainties. It is suggested that you use a time stamp for time calibration as the priority
326
+ 2. You should select your NTP server address carefully to ensure that the device of the user could obtain server time rapidly under sound network conditions
327
+ </quote-container>
328
+
329
+ ### 5.4 Flush
330
+ You can call the `Flush` API to report data to TE immediately .
331
+ ```csharp
332
+ TDAnalytics.Flush();
333
+ ```
334
+
335
+ ### 5.5 Country/Region code
336
+ In some business scenarios, if you need to know the country/region code of the user device, you can get it through`GetLocalRegion`
337
+ ```csharp
338
+ TDAnalytics.GetLocalRegion();
339
+ ```
340
+
341
+ ### 5.6 Supports Lua-style invocation.
342
+ If you need to directly call in a Lua file, you can use the encapsulated Lua API. [Click to download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2Funity%2Fta_unity_lua_sdk.zip).
343
+ After downloading, import TDAnalytics.lua and TDAnalyticsProxy.cs into your project.
344
+ The usage example is as follows:
345
+ ```lua
346
+ local config = {
347
+ appId = "AppId",
348
+ serverUrl = "ServerUrl",
349
+ enableLog = true, -- Enable logging, default is false
350
+ mode = 'debug' -- Default is 'normal'
351
+ }
352
+
353
+ -- Initialize the SDK
354
+ TDAnalytics.init(config);
355
+
356
+ -- If the user is logged in, set the user's account ID as the unique identifier
357
+ TDAnalytics.login("TA")
358
+
359
+ -- After setting common event properties, every event will include these properties
360
+ local superProperties = {}
361
+ superProperties["channel"] = "ta" -- String
362
+ superProperties["age"] = 1 -- Number
363
+ superProperties["isSuccess"] = true -- Boolean
364
+ superProperties["birthday"] = os.date("%Y-%m-%d %H:%M:%S") -- Time
365
+ superProperties["object"] = { key="value" } -- Object
366
+ superProperties["object_arr"] = { { key="value" } } -- Array of objects
367
+ superProperties["arr"] = { "value" } -- Array
368
+ TDAnalytics.setSuperProperties(superProperties) -- Set common event properties
369
+
370
+ -- Send an event
371
+ TDAnalytics.track("product_buy", {
372
+ product_name="Product Name"
373
+ });
374
+
375
+ -- Set user properties
376
+ TDAnalytics.userSet({
377
+ user_name = "TE"
378
+ })
379
+ ```
380
+
381
+ ### 5.7 WeChat automatic data collection
382
+ For the WeChat Mini-Game platform, the following automatic event collection is currently supported: show events, hide events, and launch events. The integration steps are as follows:
383
+ - Download the WeChat Mini-Game Plugin:
384
+ Go to the menu: Window → Package Manager → + → Add package from git url
385
+ PackageManager Git URL: https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git
386
+ - Define Custom Macro:
387
+ Go to the menu: Edit → Project Settings → Scripting Define Symbols
388
+ Add a new global macro: TD_WEIXIN_GAME_MODE
389
+ Click the Apply button to save the settings.
390
+ - Add Assembly Dependency:
391
+ In the Project window, navigate to: ThinkingAnalytics → TDAnalytics (Assembly Definition) → Assembly Definition References → + → Select WxWasmSDKRuntime
392
+ Example usage:
393
+ ```json
394
+ // Enable automatic event collection, supporting show, hide, and launch events
395
+ TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.AppStart | TDAutoTrackEventType.AppEnd | TDAutoTrackEventType.AppInstall);
396
+ ```
@@ -0,0 +1,176 @@
1
+ ---
2
+ code: unity_sdk_installation
3
+ name: "Unity"
4
+ wikiToken: NaFYwOKI1iN5mgkTPQwcZY0tnRg
5
+ parentWikiToken: FgrswqlHEiE45HkQve4cU0NFnbd
6
+ updateTime: 1779765101000
7
+ sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unity_sdk_installation
8
+ ---
9
+ ::: tip
10
+ Before you begin, please read [Preparations before Data Ingestion](https://thinkingdata.feishu.cn/wiki/OhD8we9iai6Xk5kM1QNc8ITRnQe)
11
+ Unity SDK Support: iOS, Android, Unity Editor, Windows, Mac, WebGL, Switch, Xbox、PS4/5, Wechat Mini Game, Douyin Mini Game, OPPO Quick Game.
12
+ The lowest Unity Editor version required is 5.4.0
13
+ The size of Unity SDK is around 320 KB
14
+ :::
15
+ **Latest version:** v3.4.8
16
+ **Update time:** 2026/05/26
17
+ **Resource download: **[**SDK**](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnity%2Fta_unity_sdk_v3.4.8.zip)**, **[**Source Code**](https%3A%2F%2Fgithub.com%2FThinkingDataAnalytics%2Funity-sdk%2Ftags)
18
+ ::: warning Notice
19
+ The current documentation applies to v3.0.0 and later versions. For historical versions, please refer to the [Data Ingestion Guide - Unity (V2)](https%3A%2F%2Fdocs.thinkingdata.cn%2Fta-manual%2Fv4.1%2Fen%2Finstallation%2Finstallation_menu%2Fclient_sdk%2Fgame_engine_sdk_installation%2Funity_sdk_installation%2Funity_sdk_installation.html), [SDK Download (v2.6.1)](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnity%2Fta_unity_sdk_v2.6.1.zip).
20
+ :::
21
+ ## **1. ****SDK**** Integration**
22
+ ### **1.1 Manual Integration**
23
+ 1. Download and unzip [Unity SDK](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnity%2Fta_unity_sdk_v3.4.8.zip)
24
+ 2. Double click `ta_unity_sdk.unitypackage` to import SDK. Or open menu`Assets > Import Package > Custom Package`, select `ta_unity_sdk.unitypackage` to import SDK
25
+ <callout emoji="unicorn_face" background-color="light-orange" border-color="light-orange">
26
+ When upgrading the unitypackage from version 3.3.0 to 3.4+.x, you must delete the original SDK first before importing the new package.
27
+ This is because: An occasional TS file loss issue may occur when exporting to the HarmonyOS platform using the Unity Engine. Currently, all relevant files have been renamed to .tslib. If the previous files are not deleted, a file naming conflict will arise.
28
+ </callout>
29
+
30
+ ### **1.2 Package Manager Integration**
31
+ After version 2.4.1 , Unity SDK support `Package Manager` Integration
32
+ 3. Open menu `Window` - `Package Manager`
33
+ 4. Click `+` , and select `Add package from git URL...`
34
+ 5. Input `https://github.com/ThinkingDataAnalytics/unity-sdk.git` , and click `Add`, wait for loading to complete
35
+ ## **2. Initialization**
36
+ We recommend to initialize the SDK manually, and also provide a way to automatically initialize the SDK by loading prefabs.
37
+ ### **2.1 Manual initialization**
38
+ ```csharp
39
+ //Initialize SDK
40
+ //Method 1
41
+ TDAnalytics.Init("APPID","SERVER");
42
+ //Method 2
43
+ TDConfig config = new TDConfig("APPID","SERVER");
44
+ TDAnalytics.Init(config);
45
+ ```
46
+
47
+ ### **2.2 Automatic initialization**
48
+ <callout emoji="first_place_medal" background-color="light-orange" border-color="light-orange">
49
+ HarmonyOS currently does not support automatic collection.
50
+ </callout>
51
+
52
+ 6. Add prefab named `TDAnalytics` to GameObject, and set project information
53
+ <image token="Br9obI1KUonQEyxC5CPcXwAinvb" width="724" height="636" align="center"/>
54
+
55
+ The configuration items in the picture are:
56
+ **Configuration**
57
+ - **Start Manually: **Enable manual initialization
58
+ - If `Start Manually` is selected, you need to call `TDAnalytics.Init()` to complete SDK initialization
59
+ - If `Start Manually` is not selected, SDK will be initialized when the prefab ThinkingAnalytics is loaded
60
+ - **Enable Log: **Enable log output
61
+ - If `Enable Log` is selected, SDK will output log on the consoles to debugging. You can check whether the event data is correctly reported to TE in the Unity Editor. For invalid properties, a warning log will be displayed on the console
62
+ **Tokens**
63
+ One Token represents one instance. If you need to report data to multiple projects, you can click "+" to add project configuration
64
+ - **APP ID: **The APPID of your project, which can be found on the project management page of the TE.
65
+ - **SERVER URL**:
66
+ - If you are using a SaaS version, please check the receiver URL on this page
67
+ <image token="HnN8berA7o8DU1xkBEpchChOnig" width="1674" height="1318" align="left"/>
68
+
69
+ - If you are using a privatized deployment version, please bind the data tracking URL with a domain name and configure it with an HTTPS certificate: `https://bind the domain name with the data tracking URL`
70
+ <quote-container>
71
+ Since some devices restrict HTTP requests by default, please use HTTPS protocol only.
72
+ </quote-container>
73
+
74
+ - **MODE**: The SDK mode, please be sure to use the NORMAL mode in the production environment.
75
+ ### 2.3 Initialize via ProjectSettings
76
+ If the SDK version is greater than or equal to 3.3.0-beta.1, you can configure the initialization parameters through ProjectSettings.
77
+ <image token="QOKfbyOB8ofB3IxMN89cf5DVn8c" width="2104" height="1296" align="center"/>
78
+
79
+ - **APP ID**: The APPID of your project, which can be found on the project management page of the TE.
80
+ - **SERVER URL**: Need to be configured, which is the URL of the data receiving end:
81
+ - If you are using a cloud service, enter the following URL: https://global-receiver-ta.thinkingdata.cn
82
+ - If you are using a privately deployed version, please enter the following URL: https://data collection address
83
+ - **MODE**: SDK instance running mode. Please use NORMAL mode for the build environment.
84
+ - **Enable Log : **Log switch
85
+ - **Network Type :**Set the reporting network status
86
+ - **Time Zone :**Set the default time zone
87
+ <quote-container>
88
+ 注意:由于一些设备默认禁止明文传输,因此强烈建议您使用 HTTPS 格式的接收端地址
89
+ </quote-container>
90
+
91
+ ## **3. Common Features**
92
+ We suggest that you read [User Identification Rules](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc) before using common features; SDK would generate a random number that would be used as the distinct ID, and save the ID locally. Before the user logs in, the distinct ID would be used as the identification ID. Note: The distinct ID would change after the user reinstalled the App or used the APP with a new device.
93
+ ### **3.1 Login**
94
+ When the users log in , `Login` could be called to set the account ID of the user. TE platform would use the account ID as the identification ID, and this ID would be saved before `Logout` is called. The previous account ID would be replaced if `Login` has been called multiple times.
95
+ ```csharp
96
+ // The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
97
+ TDAnalytics.Login("TE");
98
+ ```
99
+
100
+ <quote-container>
101
+ **Login events wouldn't be uploaded in this method.**
102
+ </quote-container>
103
+
104
+ ### 3.2 **Super Properties**
105
+ Super properties refer to properties that each event might have. You can call `SetSuperProperties` to set super properties. It is recommended that you set super properties first before sending data. Some important properties (e.g., the membership class of users, source channels, etc.) should be set in each event. At this time, you can set these properties as super properties.
106
+ ```csharp
107
+ Dictionary<string, object> superProperties = new Dictionary<string, object>();
108
+ superProperties["channel"] = "te";//string
109
+ superProperties["age"] = 1;//number
110
+ superProperties["isSuccess"] = true;//boolean
111
+ superProperties["birthday"] = DateTime.Now;//time
112
+ superProperties["object"] = new Dictionary<string, object>(){{ "key", "value"}};//object
113
+ superProperties["object_arr"] = new List<object>() {new Dictionary<string, object>(){{ "key", "value" }}};//object array
114
+ superProperties["arr"] = new List<object>() { "value" };//array
115
+ TDAnalytics.SetSuperProperties(superProperties);//set super properties
116
+ ```
117
+
118
+ Super properties would be saved in local storage, and will not need to be called every time the App is opened. If the super properties set previously are uploaded after calling `SetSuperProperties`, previous properties would be replaced.
119
+ - 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.
120
+ - Value, the value of the property, supports string, numbers, boolean, time, object, array object, and array
121
+ <quote-container>
122
+ **The requirements for event properties and user properties are the same with that for super properties**
123
+ </quote-container>
124
+
125
+ ### **3.3 Automatically Track Events**
126
+ The following code is an example of install, active and inactive events. To get more information about the automatic tracking of SDK, please refer to [Automatic Event Tracking](https://thinkingdata.feishu.cn/wiki/VK92wPhIqirJJAknRxLcG3fsnNe)
127
+ ```csharp
128
+ //enable auto-tracking events
129
+ TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.AppInstall | TDAutoTrackEventType.AppStart | TDAutoTrackEventType.AppEnd);
130
+ ```
131
+
132
+ ### **3.4 Sending Events**
133
+ 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:
134
+ ```csharp
135
+ Dictionary<string, object> properties = new Dictionary<string, object>(){{"product_name", "商品名"}};
136
+ TDAnalytics.Track("product_buy", properties);
137
+ ```
138
+
139
+ The event name is string type. It could only start with a character and could contain figures, characters, and an underline "_", with a maximum length of 50 characters.
140
+ ### **3.5 User Properties**
141
+ You can set general user properties by calling `UserSet` api. The original properties would be replaced by the properties uploaded via this api. The data type of newly-created user properties must be the same as the uploaded properties. User name setting is taken as the example here:
142
+ ```csharp
143
+ //the username now is TA
144
+ TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
145
+ //the username now is TE
146
+ TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});
147
+ ```
148
+
149
+ ## **4. Best Practice**
150
+ The following sample code covers all the above-mentioned operations. It is recommended that the SDK be used in the following steps:
151
+ ```csharp
152
+ if (privacy policy is authorized)
153
+ {
154
+ //Initialize SDK
155
+ TDAnalytics.Init("APPID", "SERVER");
156
+ //if the user has logged in, the account ID of the user could be set as the unique identifier
157
+ TDAnalytics.Login("TE");
158
+ //After setting super properties, each event would have super properties
159
+ Dictionary<string, object> superProperties = new Dictionary<string, object>();
160
+ superProperties["channel"] = "te";//string
161
+ superProperties["age"] = 1;//number
162
+ superProperties["isSuccess"] = true;//boolean
163
+ superProperties["birthday"] = DateTime.Now;//time
164
+ superProperties["object"] = new Dictionary<string, object>(){{ "key", "value"}};//object
165
+ superProperties["object_arr"] = new List<object>() {new Dictionary<string, object>(){{ "key", "value" }}};//object array
166
+ superProperties["arr"] = new List<object>() { "value" };//array
167
+ TDAnalytics.SetSuperProperties(superProperties);//set super properties
168
+ //Enable auto-tracking
169
+ TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.AppInstall | TDAutoTrackEventType.AppStart | TDAutoTrackEventType.AppEnd);
170
+ //Upload events
171
+ Dictionary<string, object> properties = new Dictionary<string, object>(){{"product_name", "商品名"}};
172
+ TDAnalytics.Track("product_buy", properties);
173
+ //Set user properties
174
+ TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
175
+ }
176
+ ```