@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.
- package/dist/{auth-U25QJU5D.js → auth-DYC2BGLM.js} +2 -3
- package/dist/{auth-H3GJD55A.js → auth-GHBMJ5ZR.js} +33 -17
- package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
- package/dist/{chunk-SF3KTPIC.js → chunk-5OC7CYCG.js} +2 -2
- package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
- package/dist/{chunk-I42JGQ2J.js → chunk-BJX3GXWC.js} +3 -5
- package/dist/{chunk-GLNZSDKO.js → chunk-DMMEPCST.js} +4 -6
- package/dist/{chunk-VJFUB3H3.js → chunk-I5CRVM2S.js} +3 -3
- package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
- package/dist/{chunk-JM34JPCO.js → chunk-RSHMZ3LG.js} +178 -4
- package/dist/{client-IN42F223.js → client-2UJ63MVQ.js} +3 -4
- package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
- package/dist/index.js +2530 -28
- package/dist/{model-VZCYNIOG.js → model-SJSOZTRS.js} +2 -2
- package/dist/{raw-WJIWC6YP.js → raw-7NVWSVJP.js} +5 -7
- package/dist/{sync-NVASAISS.js → sync-GRVO4K3U.js} +3 -3
- package/dist/{te-agent-YV4DXEXK.js → te-agent-KZRIEN4N.js} +468 -46
- package/dist/{te-analysis-CB3DA5I5.js → te-analysis-VAR4KUOK.js} +144 -29
- package/dist/{te-audience-W7SCQFC7.js → te-audience-KMKYI2YJ.js} +22 -15
- package/dist/{te-common-FBXVWBSI.js → te-common-WNCZB7R7.js} +4 -5
- package/dist/{te-community-LNVDZSGW.js → te-community-JEEFXPB3.js} +10 -11
- package/dist/{te-dataops-IPCSSWYH.js → te-dataops-GD3XBYCS.js} +11 -12
- package/dist/{te-engage-KARARMIR.js → te-engage-4XHCTS6I.js} +4 -5
- package/dist/{te-kb-2Z2CARN3.js → te-kb-B62KFP2A.js} +96 -8
- package/dist/{te-meta-PDKLMWXN.js → te-meta-EPZGQN56.js} +9 -10
- package/dist/{te-team-SW5B7DHO.js → te-team-YY24VORI.js} +6 -7
- package/dist/tracking/i18n/resources/cli/en.json +153 -0
- package/dist/tracking/i18n/resources/cli/ja.json +153 -0
- package/dist/tracking/i18n/resources/cli/ko.json +153 -0
- package/dist/tracking/i18n/resources/cli/zh.json +153 -0
- package/package.json +9 -3
- package/skills/ae-agent/SKILL.md +65 -25
- package/skills/ae-analysis/SKILL.md +108 -8
- package/skills/ae-analysis/references/cancel_query.md +39 -0
- package/skills/ae-analysis/references/drilldown_user_events.md +4 -2
- package/skills/ae-analysis/references/drilldown_users.md +4 -2
- package/skills/ae-analysis/references/get_bi_panel_detail.md +35 -0
- package/skills/ae-analysis/references/list_alerts.md +1 -1
- package/skills/ae-analysis/references/list_bi_panels.md +35 -0
- package/skills/ae-analysis/references/list_cluster_members.md +4 -1
- package/skills/ae-analysis/references/list_dashboards.md +1 -1
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/list_events.md +1 -1
- package/skills/ae-analysis/references/list_metrics.md +1 -1
- package/skills/ae-analysis/references/list_project_mark_times.md +1 -1
- package/skills/ae-analysis/references/list_properties.md +1 -1
- package/skills/ae-analysis/references/list_public_access_links.md +1 -1
- package/skills/ae-analysis/references/list_reports.md +1 -1
- package/skills/ae-analysis/references/list_tag_members.md +4 -1
- package/skills/ae-analysis/references/query_adhoc.md +6 -5
- package/skills/ae-analysis/references/query_bi_panel_data.md +58 -0
- package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -1
- package/skills/ae-analysis/references/query_entity_details.md +5 -2
- package/skills/ae-analysis/references/query_event_details.md +4 -1
- package/skills/ae-analysis/references/query_report_data.md +2 -2
- package/skills/ae-analysis-global/SKILL.md +3 -1
- package/skills/ae-analysis-intent/SKILL.md +132 -0
- package/skills/ae-data-integration-helper/SKILL.md +242 -0
- package/skills/ae-data-integration-helper/references/android_sdk_faq.md +179 -0
- package/skills/ae-data-integration-helper/references/c_sdk_compilation.md +83 -0
- package/skills/ae-data-integration-helper/references/c_sdk_faq.md +416 -0
- package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +123 -0
- package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +365 -0
- package/skills/ae-data-integration-helper/references/index.md +56 -0
- package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/java_sdk_faq.md +406 -0
- package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +129 -0
- package/skills/ae-data-integration-helper/references/logbus2_guide.md +309 -0
- package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +348 -0
- package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +115 -0
- package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/python_sdk_faq.md +232 -0
- package/skills/ae-data-integration-helper/references/restful_api_notes.md +74 -0
- package/skills/ae-data-integration-helper/references/sdk_log_guide.md +316 -0
- package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +107 -0
- package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +115 -0
- package/skills/ae-generate-tracking-code/SKILL.md +629 -0
- package/skills/ae-generate-tracking-code/references/autotrack-enum.md +183 -0
- package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +202 -0
- package/skills/ae-generate-tracking-code/references/datax-config.md +43 -0
- package/skills/ae-generate-tracking-code/references/debug-script.md +102 -0
- package/skills/ae-generate-tracking-code/references/logbus-config.md +200 -0
- package/skills/ae-generate-tracking-code/references/modes.md +83 -0
- package/skills/ae-generate-tracking-code/references/restful-call.md +36 -0
- package/skills/ae-generate-tracking-code/references/sdk-index.md +128 -0
- package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +206 -0
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +394 -0
- package/skills/ae-generate-tracking-code/references/te-api.md +181 -0
- package/skills/ae-generate-tracking-plan/SKILL.md +1083 -0
- package/skills/ae-generate-tracking-plan/references/autotrack-events.md +273 -0
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +425 -0
- package/skills/ae-generate-tracking-plan/references/te-api.md +100 -0
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +152 -0
- package/skills/ae-kb/SKILL.md +38 -5
- 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
- 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
- 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
- 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
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +72 -0
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- 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
- 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
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +80 -0
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- 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
- 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
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.md +40 -0
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.xlsx +0 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/wiki/te-docs/index.md +225 -0
- package/wiki/te-docs/raw/advanced-data-type/first-event-check.md +66 -0
- package/wiki/te-docs/raw/advanced-data-type/updated-event.md +87 -0
- package/wiki/te-docs/raw/advanced-data-type.md +16 -0
- package/wiki/te-docs/raw/data-ingestion-guide/about-gdpr.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/automatic-event-tracking.md +431 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/multi-instance.md +66 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/preset-properties.md +466 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/third-party-integration.md +127 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced.md +513 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android.md +228 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/c-advanced.md +419 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c.md +110 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/client-side-sdk-faq.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/cpp-advanced.md +366 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/release-notes.md +103 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp.md +201 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/automatically-track-events.md +117 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/preset-properties.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced.md +267 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/release-notes.md +82 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter.md +139 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/automatically-track-events.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/debugging-and-logging.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/preset-properties.md +18 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced.md +305 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/release-notes.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native.md +137 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/release-notes.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/automatically-track-events.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/debugging-and-logging.md +53 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/multi-instance.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/preset-properties.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/support-native.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced.md +331 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app.md +156 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform.md +12 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/multi-instance.md +21 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/preset-properties.md +249 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced.md +301 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x.md +281 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/automatic-event-tracking.md +70 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/debugging-and-logging.md +57 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/native-support.md +104 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/preset-properties.md +91 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance.md +374 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/compliance.md +35 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/release-notes.md +109 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator.md +170 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/compliance.md +28 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/debugging-and-logging.md +58 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/preset-properties.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md +204 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/release-notes.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona.md +269 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/automatic-event-tracking.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/native-pluggable.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/preset-properties.md +212 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/third-party-integration.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced.md +396 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity.md +176 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/release-notes.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/automatic-event-tracking.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/debugging-and-logging.md +31 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/preset-properties.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/third-party-integrations.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal.md +190 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine.md +14 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/h5-and-app-sdk-connection.md +147 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/instant-app-and-game.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/automatic-event-tracking.md +272 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/debugging-and-logging.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/multi-instance.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/preset-properties.md +484 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/third-party-integrations.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced.md +682 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/release-notes.md +163 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios.md +304 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/compliance.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/automatic-event-tracking.md +136 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/debugging-and-logging.md +48 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/preset-properties.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced.md +462 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/release-notes.md +107 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript.md +208 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/debugging-and-logging.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/preset-properties.md +118 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced.md +556 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos.md +231 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md +610 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md +1215 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools.md +15 -0
- package/wiki/te-docs/raw/data-ingestion-guide/privacy-policy.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/restful-api-user-guide.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-FM9Cwz.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-RSyfw7.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging.md +89 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-OxzWw.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-VuE3wr.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-IauKwI.md +175 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-YAilwk.md +210 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced.md +211 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-PVazwa.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-TADbwY.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes.md +69 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-V2W3wv.md +131 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-Zf9Jwl.md +179 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/debugging-and-logging.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced.md +113 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/release-notes.md +34 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/debugging-and-logging.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced.md +157 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/release-notes.md +72 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang.md +148 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced.md +223 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/release-notes.md +88 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java.md +174 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/debugging-and-logging.md +46 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced.md +182 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/release-notes.md +61 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/debugging-and-logging.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced.md +225 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/debugging-and-logging.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced.md +216 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php.md +173 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/debugging-and-logging.md +40 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced.md +206 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python.md +116 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/release-notes.md +44 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk.md +22 -0
- package/wiki/te-docs/raw/data-ingestion-guide/thinkingdata-privacy-policy.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide.md +48 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/data-rules.md +396 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/preset-properties-and-system-fields.md +957 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/user-identification-rules.md +723 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion.md +203 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +172 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/wiki/te-docs/schema.md +16 -0
- package/wiki/te-docs/synthesis/batch-ingest-comparison.md +324 -0
- package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +538 -0
- package/wiki/te-docs/synthesis/restful-api-reference.md +363 -0
- package/wiki/te-docs/synthesis/sdk-selection.md +372 -0
- package/wiki/te-docs/synthesis/server-sdk-overview.md +449 -0
- package/dist/chunk-U6TKB3IV.js +0 -171
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
---
|
|
2
|
+
topic: SDK Selection Guide
|
|
3
|
+
sources:
|
|
4
|
+
- raw/data-ingestion-guide.md
|
|
5
|
+
- raw/data-ingestion-guide/client-sdk.md
|
|
6
|
+
- raw/data-ingestion-guide/server-sdk.md
|
|
7
|
+
- raw/data-ingestion-guide/data-import-tools.md
|
|
8
|
+
- raw/preparations-before-data-ingestion.md
|
|
9
|
+
generated: 2026-06-16
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# SDK Selection Guide
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
ThinkingData (AE) provides three primary data ingestion methods: **Client SDK**, **Server SDK**, and **Data Import Tools**. Each approach serves distinct use cases and comes with its own trade-offs. This guide helps you understand when to choose each method, and how to combine them for a robust data tracking architecture.
|
|
17
|
+
|
|
18
|
+
Before selecting an ingestion method, you must complete three foundational steps:
|
|
19
|
+
|
|
20
|
+
1. **Define your data tracking scheme** based on business analysis requirements (what events, what properties, what user attributes).
|
|
21
|
+
2. **Obtain your Project APP ID** and **data receiver URL** from the AE console (SaaS users find it on the project management page; private deployment users configure a custom URL).
|
|
22
|
+
3. **Verify receiver connectivity** by visiting `https://YOUR_RECEIVER_URL/health-check` -- the page should return `ok`.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Data Ingestion Methods at a Glance
|
|
27
|
+
|
|
28
|
+
| Dimension | Client SDK | Server SDK | Data Import Tools |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| **Primary role** | Collect user behavior on client devices (app, web, game) | Track business logic events from backend services | Import historical data or stream logs into AE |
|
|
31
|
+
| **Deployment** | Embedded in client app (Android, iOS, JS, Unity, etc.) | Integrated into backend server code | Standalone process or plugin (LogBus, DataX, Filebeat) |
|
|
32
|
+
| **Data captured** | User interactions (clicks, page views, installs), device info, app state | Transactions, API calls, server-side business events, core metrics | Existing log files, database tables, third-party data |
|
|
33
|
+
| **Timeliness** | Near real-time | Near real-time | Varies: LogBus is real-time streaming; DataX is batch-oriented |
|
|
34
|
+
| **Device information** | Automatically included | Not available (server does not know device details) | Depends on source data |
|
|
35
|
+
| **Accuracy** | Good for UI interactions; may miss events when offline | High (server events are deterministic) | Depends on source data quality |
|
|
36
|
+
| **Ease of setup** | Simple -- SDK handles formatting, batching, retry | Moderate -- requires server code changes | Moderate to complex -- requires data pipeline configuration |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Client SDK
|
|
41
|
+
|
|
42
|
+
### Description
|
|
43
|
+
|
|
44
|
+
The Client SDK is embedded directly in your end-user applications. It automatically tracks device information, manages user identity (generating a `#distinct_id` by default), and sends events to the AE receiver. The SDK handles data formatting, batching, and network retry logic for you.
|
|
45
|
+
|
|
46
|
+
### Supported Platforms
|
|
47
|
+
|
|
48
|
+
| Category | Platforms |
|
|
49
|
+
|---|---|
|
|
50
|
+
| **Native Mobile** | Android, iOS, MacOS |
|
|
51
|
+
| **Web / H5** | JavaScript |
|
|
52
|
+
| **Game Engines** | Unity, Unreal, Cocos2d-x, CocosCreator, Corona |
|
|
53
|
+
| **Cross-Platform** | React Native, Flutter |
|
|
54
|
+
| **Desktop / Embedded** | C++, C# |
|
|
55
|
+
|
|
56
|
+
### Key Capabilities
|
|
57
|
+
|
|
58
|
+
- **Automatic device information collection**: The SDK automatically tracks preset properties such as device model, OS version, screen resolution, network type, and carrier.
|
|
59
|
+
- **User identification management**: Generates a random `#distinct_id` for anonymous users, and accepts `#account_id` after login. Both IDs are carried on every event, enabling cross-device user stitching.
|
|
60
|
+
- **Automatic event tracking**: Common behaviors like app install, app start, and app end can be collected automatically (depending on the SDK variant).
|
|
61
|
+
- **Offline buffering**: Events are queued locally when the device is offline and sent when connectivity is restored.
|
|
62
|
+
|
|
63
|
+
### When to Use
|
|
64
|
+
|
|
65
|
+
- You need to capture user-facing interactions: page views, button taps, form submissions, video plays, in-game actions.
|
|
66
|
+
- You need device-level context (OS version, device model, carrier, screen size) for your analysis.
|
|
67
|
+
- Your application has an unauthenticated browsing experience and you need to track anonymous users before they log in.
|
|
68
|
+
- You are building a mobile app, web app, or mobile game.
|
|
69
|
+
|
|
70
|
+
### Pros
|
|
71
|
+
|
|
72
|
+
- Minimal developer effort for basic setup -- usually a few lines of initialization code.
|
|
73
|
+
- SDK handles data formatting, retry, and batching automatically.
|
|
74
|
+
- Preset properties (device info, app version, etc.) are tracked without extra work.
|
|
75
|
+
- Offline buffering ensures data is not lost during connectivity gaps.
|
|
76
|
+
|
|
77
|
+
### Cons
|
|
78
|
+
|
|
79
|
+
- Cannot track server-side business logic (payment verification, API calls, database writes).
|
|
80
|
+
- Subject to ad-blockers and network restrictions on web.
|
|
81
|
+
- Data may be lost if the user uninstalls the app before events are flushed.
|
|
82
|
+
- Some events (e.g., purchase completion confirmation) are more reliable when tracked server-side.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Server SDK
|
|
87
|
+
|
|
88
|
+
### Description
|
|
89
|
+
|
|
90
|
+
The Server SDK is integrated into your backend application code. Unlike the Client SDK, it does not run on the user's device and therefore cannot collect device-level information. However, it provides deterministic, tamper-proof event tracking for business-critical operations. The Server SDK typically works with a **LoggerConsumer + LogBus** architecture for production deployments: the SDK writes events to log files, and LogBus reads, transforms, and forwards them to the AE receiver.
|
|
91
|
+
|
|
92
|
+
### Supported Languages
|
|
93
|
+
|
|
94
|
+
| Language | Language |
|
|
95
|
+
|---|---|
|
|
96
|
+
| Golang | Python |
|
|
97
|
+
| Java | Ruby |
|
|
98
|
+
| C | C# |
|
|
99
|
+
| Node.js | PHP |
|
|
100
|
+
| Lua | C++ |
|
|
101
|
+
| ErLang | |
|
|
102
|
+
|
|
103
|
+
### Key Capabilities
|
|
104
|
+
|
|
105
|
+
- **Accurate business event tracking**: Events are generated directly from your backend logic, ensuring correctness and completeness.
|
|
106
|
+
- **Batch and async sending**: Supports multiple consumer modes (LoggerConsumer for log output, BatchConsumer for direct API sending, AsyncConsumer for non-blocking sends).
|
|
107
|
+
- **User data management**: APIs to set user properties (`user_set`, `user_setOnce`, `user_add`, `user_del`, `user_append`).
|
|
108
|
+
- **No device-level preset properties**: You must manually pass any contextual data needed in analysis.
|
|
109
|
+
|
|
110
|
+
### When to Use
|
|
111
|
+
|
|
112
|
+
- You need to track business transactions: payment success/failure, order creation, subscription changes, API call results.
|
|
113
|
+
- You want tamper-proof data that cannot be manipulated on the client side.
|
|
114
|
+
- You need to import historical or batched data from your backend databases.
|
|
115
|
+
- You are combining server-side tracking with LogBus for high-throughput, fault-tolerant data pipelines (the recommended production architecture).
|
|
116
|
+
|
|
117
|
+
### Pros
|
|
118
|
+
|
|
119
|
+
- Highest data accuracy and reliability for backend events.
|
|
120
|
+
- Immune to client-side ad-blockers, network issues, or uninstalls.
|
|
121
|
+
- Full control over what is tracked and when.
|
|
122
|
+
- Easily integrates with existing backend logging and monitoring infrastructure.
|
|
123
|
+
|
|
124
|
+
### Cons
|
|
125
|
+
|
|
126
|
+
- Cannot collect device information or client-side user behavior.
|
|
127
|
+
- Requires coordination between frontend and backend to link user identities (you must pass `#distinct_id` or `#account_id`).
|
|
128
|
+
- More development effort than a simple Client SDK integration.
|
|
129
|
+
- No built-in offline buffering -- you must handle failures at the application or pipeline level.
|
|
130
|
+
|
|
131
|
+
### Recommended Architecture: Server SDK + LogBus
|
|
132
|
+
|
|
133
|
+
The AE team's recommended server-side tracking architecture pairs the **Server SDK** with **LogBus**. The flow works as follows:
|
|
134
|
+
|
|
135
|
+
1. Your application code calls the Server SDK to track events.
|
|
136
|
+
2. The SDK (configured with `LoggerConsumer`) writes event data to a log file in a structured format.
|
|
137
|
+
3. LogBus tails the log file, batches events, and forwards them to the AE receiver over HTTP.
|
|
138
|
+
|
|
139
|
+
This architecture is preferred because:
|
|
140
|
+
- **Stability**: The SDK is decoupled from network delivery; log files persist if LogBus is temporarily down.
|
|
141
|
+
- **Timeliness**: LogBus streams data continuously with low latency.
|
|
142
|
+
- **Efficiency**: LogBus handles batching, compression, and retry logic, keeping your application code simple.
|
|
143
|
+
- **Fault tolerance**: If the AE receiver is unreachable, LogBus retries without affecting your application.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Data Import Tools
|
|
148
|
+
|
|
149
|
+
### Description
|
|
150
|
+
|
|
151
|
+
Data Import tools are standalone utilities for importing existing or historical data into AE. They are not embedded in application code; instead, they operate on log files, databases, or message queues. The main distinction is between **streaming tools** (LogBus) and **batch tools** (DataX, Filebeat + Logstash).
|
|
152
|
+
|
|
153
|
+
### Available Tools
|
|
154
|
+
|
|
155
|
+
| Tool | Type | Use Case |
|
|
156
|
+
|---|---|---|
|
|
157
|
+
| **LogBus2** | Streaming (resident service) | High-throughput real-time log streaming; recommended for production Server SDK pipelines |
|
|
158
|
+
| **LogBus (v1)** | Streaming (resident service) | Legacy version; use LogBus2 for new projects |
|
|
159
|
+
| **LogBus Windows** | Streaming (resident service) | Windows Server deployments |
|
|
160
|
+
| **ta-datax-writer** | Batch (on-demand) | Import heterogeneous data from multiple data sources (MySQL, HDFS, etc.); not resident |
|
|
161
|
+
| **Filebeat + Logstash** | Streaming (resident service) | Organizations already using ELK stack for log collection |
|
|
162
|
+
|
|
163
|
+
### When to Use
|
|
164
|
+
|
|
165
|
+
- **Historical data migration**: You have months or years of existing event data in databases or logs that need to be imported into AE.
|
|
166
|
+
- **Batch data import**: You periodically need to load data from an external system (CRM, ERP, data warehouse).
|
|
167
|
+
- **High-throughput server-side data pipeline**: LogBus is the recommended companion to the Server SDK for production environments.
|
|
168
|
+
- **ELK stack integration**: Your organization already uses Filebeat and Logstash for log collection, and you want to forward a subset of logs to AE.
|
|
169
|
+
|
|
170
|
+
### Tool Comparison
|
|
171
|
+
|
|
172
|
+
| Dimension | LogBus (v1/v2) | DataX (ta-datax-writer) | Filebeat + Logstash |
|
|
173
|
+
|---|---|---|---|
|
|
174
|
+
| **Operation mode** | Resident daemon, continuous streaming | On-demand batch job | Resident daemon, continuous streaming |
|
|
175
|
+
| **Data sources** | Log files (from Server SDK LoggerConsumer) | MySQL, Oracle, HDFS, Hive, and more | Any log source Filebeat can tail |
|
|
176
|
+
| **Timeliness** | Near real-time (seconds) | Batch (hours, scheduled) | Near real-time (seconds) |
|
|
177
|
+
| **Fault tolerance** | Built-in retry, checkpoint, and resume | Manual re-run on failure | Filebeat registry tracks position |
|
|
178
|
+
| **Heterogeneous data** | No (structured JSON logs expected) | Yes (rich data source connector support) | No (log-oriented) |
|
|
179
|
+
| **Best for** | Production server-side tracking pipeline | One-time or periodic historical data imports | Existing ELK users adding AE as output |
|
|
180
|
+
|
|
181
|
+
### Pros
|
|
182
|
+
|
|
183
|
+
- Enable importing large volumes of historical data without changing application code.
|
|
184
|
+
- LogBus provides production-grade resilience with checkpointing and automatic retry.
|
|
185
|
+
- DataX supports a wide variety of data sources.
|
|
186
|
+
- Decoupled from application logic -- no code changes needed for import workflows.
|
|
187
|
+
|
|
188
|
+
### Cons
|
|
189
|
+
|
|
190
|
+
- Additional infrastructure to deploy and monitor (LogBus requires a running process).
|
|
191
|
+
- Batch tools (DataX) do not guarantee real-time data delivery.
|
|
192
|
+
- Requires careful data format mapping to AE's event schema.
|
|
193
|
+
- Not suitable for collecting user-device-level information (use Client SDK for that).
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Selection Decision Matrix
|
|
198
|
+
|
|
199
|
+
Use the following table to guide your choice based on your primary requirement.
|
|
200
|
+
|
|
201
|
+
| Your Requirement | Recommended Method | Rationale |
|
|
202
|
+
|---|---|---|
|
|
203
|
+
| Track user clicks, page views, app interactions | **Client SDK** | Runs on device; captures UI events and device context automatically |
|
|
204
|
+
| Track payment completion, order fulfillment | **Server SDK** | Server-side events are authoritative and tamper-proof |
|
|
205
|
+
| Import 12 months of historical user activity | **DataX (ta-datax-writer)** | Batch-oriented; supports multiple database sources |
|
|
206
|
+
| High-throughput production event pipeline | **Server SDK + LogBus2** | Decoupled architecture with fault tolerance and low latency |
|
|
207
|
+
| Both client behavior and server business events | **Client SDK + Server SDK** (combined) | Each tracks what it does best; link via `#distinct_id` / `#account_id` |
|
|
208
|
+
| Existing ELK stack, want to add AE | **Filebeat + Logstash** | Leverages existing infrastructure with AE output plugin |
|
|
209
|
+
| Mobile game analytics (Unity/Unreal) | **Client SDK (Unity/Unreal)** | Game engine SDKs include engine-specific preset properties |
|
|
210
|
+
| Minimal setup for a quick prototype | **Client SDK (JavaScript / Android / iOS)** | Fastest time-to-first-event; SDK handles formatting |
|
|
211
|
+
| GDPR-sensitive or server-only data | **Server SDK** | Data never touches end-user devices |
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Combining Methods
|
|
216
|
+
|
|
217
|
+
In practice, most production systems use a combination of methods. A typical architecture looks like this:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
221
|
+
│ Mobile App │────▶│ Client SDK │────▶│ │
|
|
222
|
+
│ (Android/iOS)│ │ (device info,│ │ │
|
|
223
|
+
│ │ │ user actions)│ │ │
|
|
224
|
+
└──────────────┘ └──────────────┘ │ │
|
|
225
|
+
│ AE Receiver │
|
|
226
|
+
┌──────────────┐ ┌──────────────┐ │ │
|
|
227
|
+
│ Backend App │────▶│ Server SDK │────▶│ │
|
|
228
|
+
│ (Go/Java/Py) │ │ (LoggerConsumer)│ │ │
|
|
229
|
+
│ │ │ │ │ │ │
|
|
230
|
+
└──────────────┘ └───────┼────────┘ │ │
|
|
231
|
+
│ log file │ │
|
|
232
|
+
┌──────▼────────┐ │ │
|
|
233
|
+
│ LogBus2 │────▶│ │
|
|
234
|
+
│ (streams logs) │ │ │
|
|
235
|
+
└───────────────┘ └──────────────┘
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Key integration point**: Both Client SDK and Server SDK must use the same `#distinct_id` or `#account_id` for a given user. The typical pattern is:
|
|
239
|
+
1. Client SDK generates a `#distinct_id` on first launch.
|
|
240
|
+
2. After login, the client calls `login(accountId)` to set the `#account_id`.
|
|
241
|
+
3. The client passes the `#account_id` (or `#distinct_id`) to the backend with each API request.
|
|
242
|
+
4. The Server SDK uses this ID when tracking server-side events for the same user.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Pre-ingestion Checklist
|
|
247
|
+
|
|
248
|
+
Before starting any of these approaches, ensure you have:
|
|
249
|
+
|
|
250
|
+
| Requirement | How to Obtain |
|
|
251
|
+
|---|---|
|
|
252
|
+
| **Project APP ID** | Check the project management page in AE console |
|
|
253
|
+
| **Receiver URL** | For SaaS: check the project settings page. For private deployment: configure a custom URL |
|
|
254
|
+
| **Receiver health verified** | Visit `https://RECEIVER_URL/health-check` in a browser; should return `ok` |
|
|
255
|
+
| **Data tracking scheme defined** | Document which events to track, their properties, data types, and trigger conditions |
|
|
256
|
+
| **User identification scheme defined** | Decide how you will set `#distinct_id` and `#account_id` across client and server |
|
|
257
|
+
| **Data format compliance planned** | Event/property names: letters, digits, and underscores only, max 50 chars. Event names are case-sensitive; property names are case-insensitive. |
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Data Format Considerations
|
|
262
|
+
|
|
263
|
+
Regardless of which ingestion method you choose, all data sent to AE must conform to the same data model:
|
|
264
|
+
|
|
265
|
+
### Supported Data Types
|
|
266
|
+
|
|
267
|
+
| AE Data Type | Example Value | JSON Type | Notes |
|
|
268
|
+
|---|---|---|---|
|
|
269
|
+
| **Numeric** | `123`, `1.23` | Number | Range: -9E15 to 9E15 |
|
|
270
|
+
| **Text** | `"ABC"`, `"Shanghai"` | String | Max 2 KB per value (default) |
|
|
271
|
+
| **Time** | `"2019-01-01 00:00:00"` | String | Format: `yyyy-MM-dd HH:mm:ss` or `yyyy-MM-dd HH:mm:ss.SSS` |
|
|
272
|
+
| **Boolean** | `true`, `false` | Boolean | -- |
|
|
273
|
+
| **List** | `["a","1","true"]` | Array(String) | Max 500 elements; all elements coerced to strings |
|
|
274
|
+
| **Object** | `{"hero_name":"Liu Bei","hero_level":22}` | Object | Max 100 sub-properties |
|
|
275
|
+
| **Object Group** | `[{...}, {...}]` | Array(Object) | Max 500 objects |
|
|
276
|
+
|
|
277
|
+
**Important**: AE determines a property's data type based on the first received value. Subsequent data with a conflicting type for the same property will be silently dropped. Define types carefully in your tracking plan before beginning ingestion.
|
|
278
|
+
|
|
279
|
+
### Naming Rules
|
|
280
|
+
|
|
281
|
+
- Event names and property names may only contain letters, digits, and underscores (`_`).
|
|
282
|
+
- Names must start with a letter.
|
|
283
|
+
- Maximum length: 50 characters.
|
|
284
|
+
- Event names are **case-sensitive** (e.g., `PaymentSuccess` and `paymentsuccess` are different events).
|
|
285
|
+
- Property names are **case-insensitive** (e.g., `OrderId` and `orderid` are treated as the same property).
|
|
286
|
+
|
|
287
|
+
### Preset Properties
|
|
288
|
+
|
|
289
|
+
Properties prefixed with `#` (e.g., `#app_version`, `#os_version`, `#device_model`) are **preset properties** automatically collected by the Client SDK. You do not need to set them manually. The Server SDK and data import tools do not populate preset properties, so you must include any necessary context in your custom properties.
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Quick Reference: Supported Platforms by Method
|
|
294
|
+
|
|
295
|
+
### Client SDK -- Platform Coverage
|
|
296
|
+
|
|
297
|
+
| Platform | SDK Available |
|
|
298
|
+
|---|---|
|
|
299
|
+
| Android | Yes |
|
|
300
|
+
| iOS | Yes |
|
|
301
|
+
| Web / H5 | Yes (JavaScript) |
|
|
302
|
+
| Unity | Yes |
|
|
303
|
+
| Unreal | Yes |
|
|
304
|
+
| Cocos Creator | Yes |
|
|
305
|
+
| Cocos2d-x | Yes |
|
|
306
|
+
| Corona | Yes |
|
|
307
|
+
| React Native | Yes |
|
|
308
|
+
| Flutter | Yes |
|
|
309
|
+
| C++ | Yes |
|
|
310
|
+
| C# | Yes |
|
|
311
|
+
| MacOS | Yes |
|
|
312
|
+
|
|
313
|
+
### Server SDK -- Language Coverage
|
|
314
|
+
|
|
315
|
+
| Language | SDK Available |
|
|
316
|
+
|---|---|
|
|
317
|
+
| Golang | Yes |
|
|
318
|
+
| Java | Yes |
|
|
319
|
+
| Python | Yes |
|
|
320
|
+
| Node.js | Yes |
|
|
321
|
+
| Ruby | Yes |
|
|
322
|
+
| C | Yes |
|
|
323
|
+
| C# | Yes |
|
|
324
|
+
| C++ | Yes |
|
|
325
|
+
| PHP | Yes |
|
|
326
|
+
| Lua | Yes |
|
|
327
|
+
| ErLang | Yes |
|
|
328
|
+
|
|
329
|
+
### Data Import Tools -- Coverage
|
|
330
|
+
|
|
331
|
+
| Tool | Environment | Data Sources |
|
|
332
|
+
|---|---|---|
|
|
333
|
+
| LogBus2 | Linux, macOS | Log files (JSON) |
|
|
334
|
+
| LogBus (v1) | Linux, macOS | Log files (JSON) |
|
|
335
|
+
| LogBus Windows | Windows | Log files (JSON) |
|
|
336
|
+
| DataX (ta-datax-writer) | Cross-platform (Java) | MySQL, Oracle, HDFS, Hive, and more |
|
|
337
|
+
| Filebeat + Logstash | Cross-platform | Any Filebeat-compatible source |
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Decision Flowchart
|
|
342
|
+
|
|
343
|
+
When choosing your ingestion approach, work through these questions in order:
|
|
344
|
+
|
|
345
|
+
1. **Do you need to track user interactions on a client device (tap, swipe, page view)?**
|
|
346
|
+
- Yes → Use **Client SDK** for those events.
|
|
347
|
+
- No → Go to question 2.
|
|
348
|
+
|
|
349
|
+
2. **Do you need to track business logic events on your backend (payments, orders, API calls)?**
|
|
350
|
+
- Yes → Use **Server SDK**. For production, configure with `LoggerConsumer` and add **LogBus2** as the delivery pipeline.
|
|
351
|
+
- No → Go to question 3.
|
|
352
|
+
|
|
353
|
+
3. **Do you need to import historical or batch data from existing systems?**
|
|
354
|
+
- Yes → Use **DataX (ta-datax-writer)** for heterogeneous sources, or **LogBus** if data is already in log files.
|
|
355
|
+
- No → Go to question 4.
|
|
356
|
+
|
|
357
|
+
4. **Do you need a REST API for direct, programmatic event submission?**
|
|
358
|
+
- Yes → Use the **Restful API** (see separate documentation). This is suitable for custom integrations where no SDK or tool fits.
|
|
359
|
+
|
|
360
|
+
For most applications, the answer will be a combination of **Client SDK** (for user-facing events) and **Server SDK + LogBus** (for backend business events), with **DataX** reserved for one-time historical data imports.
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## Additional Resources
|
|
365
|
+
|
|
366
|
+
- [AE Basic Knowledge & Data Rules](https://thinkingdata.feishu.cn/docx/PCFEdBbNOo306LxIghpc7IfinHf) -- Essential reading on AE data model and field constraints.
|
|
367
|
+
- [User Identification Rules](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc) -- How AE resolves `#distinct_id` and `#account_id` into a single `#user_id`.
|
|
368
|
+
- [Preset Properties & System Fields](https://thinkingdata.feishu.cn/wiki/HoS9wEGASi5cpMkA2KocFLkfndg) -- Complete list of `#`-prefixed properties collected automatically by Client SDKs.
|
|
369
|
+
- [Restful API User Guide](https://thinkingdata.feishu.cn/wiki/Jsp1w2ewJiXA2wkBvU8ckXxhn6g) -- Direct HTTP-based event submission.
|
|
370
|
+
- [GitHub: ThinkingDataAnalytics](https://github.com/ThinkingDataAnalytics) -- Open-source SDK implementations and tools.
|
|
371
|
+
|
|
372
|
+
For questions about your tracking architecture, consult an AE analyst or reach out through the support group chat.
|