@thinkingai/ae-cli 1.0.28 → 6.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -16
- package/README.zh.md +1 -16
- package/dist/{auth-H2376DEF.js → auth-DYC2BGLM.js} +2 -2
- package/dist/{auth-5NSDQFQB.js → auth-GHBMJ5ZR.js} +31 -12
- package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
- package/dist/chunk-5OC7CYCG.js +98 -0
- package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
- package/dist/{chunk-LU7SXK4Q.js → chunk-BJX3GXWC.js} +2 -2
- package/dist/{chunk-WCHI7725.js → chunk-DMMEPCST.js} +47 -6
- package/dist/{chunk-IMBKVXKY.js → chunk-EGEIXA2Z.js} +82 -10
- package/dist/{chunk-AD5V3ZPJ.js → chunk-I5CRVM2S.js} +98 -10
- package/dist/chunk-NOO24N7W.js +11 -0
- package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
- package/dist/{chunk-CAQYQA4R.js → chunk-RSHMZ3LG.js} +15 -1
- package/dist/{client-FCMK3XEK.js → client-2UJ63MVQ.js} +3 -3
- package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
- package/dist/index.js +2549 -29
- package/dist/{model-EZ6K7FXI.js → model-SJSOZTRS.js} +5 -7
- package/dist/{raw-VEF3D6UD.js → raw-7NVWSVJP.js} +4 -4
- package/dist/{sync-NRODEVNH.js → sync-GRVO4K3U.js} +120 -23
- package/dist/{te-agent-7U7JLJKU.js → te-agent-KZRIEN4N.js} +468 -47
- package/dist/{te-analysis-A2OSGHQ4.js → te-analysis-VAR4KUOK.js} +145 -28
- package/dist/{te-audience-LI67PPGO.js → te-audience-KMKYI2YJ.js} +23 -14
- package/dist/{te-common-35WVU3C5.js → te-common-WNCZB7R7.js} +5 -4
- package/dist/{te-community-LEAP6PWT.js → te-community-JEEFXPB3.js} +11 -10
- package/dist/{te-dataops-N2LGZBOX.js → te-dataops-GD3XBYCS.js} +33 -32
- package/dist/{te-engage-H7C72Z46.js → te-engage-4XHCTS6I.js} +5 -4
- package/dist/{te-kb-I2OKTBAI.js → te-kb-B62KFP2A.js} +97 -7
- package/dist/{te-meta-HBTIEDRO.js → te-meta-EPZGQN56.js} +10 -9
- package/dist/{te-team-EM5OWRQL.js → te-team-YY24VORI.js} +16 -12
- 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 +66 -26
- 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-KAEZTSXN.js +0 -99
- package/dist/chunk-OJDNO5QY.js +0 -63
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: python_sdk_installation
|
|
3
|
+
name: "Python"
|
|
4
|
+
wikiToken: YoPdwzGBMiRyS7kTY5pcmWHpnjf
|
|
5
|
+
parentWikiToken: IKVPwn4NfiIhijk5EcAcMf6pn7e
|
|
6
|
+
updateTime: 1774252012000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=python_sdk_installation
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
::: tip
|
|
11
|
+
Before you begin, please read [<text color="purple" underline="true">Preparation before Data Ingestion</text>](https://thinkingdata.feishu.cn/wiki/OhD8we9iai6Xk5kM1QNc8ITRnQe).
|
|
12
|
+
:::
|
|
13
|
+
**Latest version: **v3.0.0
|
|
14
|
+
**Update time: **2023-10-07
|
|
15
|
+
**Resource download: **[Source Code](https%3A%2F%2Fgithub.com%2FThinkingDataAnalytics%2Fpython-sdk)
|
|
16
|
+
::: warning Notice
|
|
17
|
+
Current documentation applies to v3.0.0 and later. For historical versions, see [Data Ingestion Guide - Python (V2)](https%3A%2F%2Fdocs.thinkingdata.cn%2Fta-manual%2Fv4.1%2Fen%2Finstallation%2Finstallation_menu%2Fserver_sdk%2Fpython_sdk_installation%2Fpython_sdk_installation.html)
|
|
18
|
+
:::
|
|
19
|
+
## **SDK**** Integration**
|
|
20
|
+
1.1 Get Python SDK through `pip`
|
|
21
|
+
```shell
|
|
22
|
+
# install SDK
|
|
23
|
+
pip install ThinkingDataSdk
|
|
24
|
+
|
|
25
|
+
# update SDK
|
|
26
|
+
pip install --upgrade ThinkingDataSdk
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
1.2 Logbus Integration
|
|
30
|
+
We recommend using SDK+LogBus to track and report data on server. You can refer to the following documents to complete the installation of Logbus:[ LogBus User Guide](https://thinkingdata.feishu.cn/wiki/SlE6wOEK3isQvukzEbnc5V0inNa)
|
|
31
|
+
## **Initialization**
|
|
32
|
+
The following is the sample code for SDK initialization:
|
|
33
|
+
```python
|
|
34
|
+
from tgasdk.sdk import *
|
|
35
|
+
te = TDAnalytics(TDLogConsumer("LOG_DIRECTORY"))
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`LOG_DIRECTORY` is the path of the folder written to the local directory. You need to set the `LogBus` listening folder address to this address in order to use `LogBus` for data listening upload.
|
|
39
|
+
`LOG_FILE_PREFIX` Indicates the prefix of the log file name.
|
|
40
|
+
## **Common Features**
|
|
41
|
+
In order to ensure that the distinct ID and account ID can be bound smoothly, if your game uses the distinct ID and account ID, we strongly recommend that you upload these two IDs at the same time, otherwise the account will not match, causing users to double count. For specific ID binding rules, please refer to the chapter on [User Identification Rules](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc).
|
|
42
|
+
### 3.1 **Sending Events**
|
|
43
|
+
You can call `track` to upload events. It is suggested that you set event properties based on the data tracking plan drafted previously. Here is an example of a user buying an item:
|
|
44
|
+
```python
|
|
45
|
+
distinct_id = "ABCDEF123456"
|
|
46
|
+
account_id = "TE10001"
|
|
47
|
+
properties = {
|
|
48
|
+
"#time": datetime.datetime.now(),
|
|
49
|
+
"#ip": "192.168.1.1",
|
|
50
|
+
"Product_Name": "商品名",
|
|
51
|
+
"Price": 30,
|
|
52
|
+
"OrderId": "订单号abc_123"
|
|
53
|
+
}
|
|
54
|
+
try:
|
|
55
|
+
te.track(distinct_id, account_id, "Payment", properties)
|
|
56
|
+
except Exception as e:
|
|
57
|
+
print(e)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- Key is the name of the property and refers to the string type. It must start with a character, and contain numbers, characters (insensitive to case, and upper cases would be transformed into lower cases by TE) and underscores "_", with a maximum length of 50 characters.
|
|
61
|
+
- Value, the value of the property, supports string, numbers, Boolean, time, object, array object, and array
|
|
62
|
+
<quote-container>
|
|
63
|
+
**The requirements for event properties and user properties are the same as that for super properties**
|
|
64
|
+
</quote-container>
|
|
65
|
+
|
|
66
|
+
### 3.2** User Properties**
|
|
67
|
+
You can set general user properties by calling `user_set` API. The original properties would be replaced by the properties uploaded via this API. If no user properties are set before, user properties will be newly created. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
|
|
68
|
+
```python
|
|
69
|
+
properties = {"user_name": "ABC"}
|
|
70
|
+
try:
|
|
71
|
+
te.user_set(account_id="account_id", distinct_id="distinct_id", properties=properties)
|
|
72
|
+
except Exception as e:
|
|
73
|
+
print(e)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 3.3 Reported data
|
|
77
|
+
When using `TDLogConsumer`, the captured events are converted to json strings and then added to the cache array. Data is written to disk only when the number of array elements exceeds the set capacity. The default capacity is 5. You can set the size of `buffer_size` in the `TDLogConsumer` constructor.
|
|
78
|
+
You can call the `flush()` api to report data to the TE immediately under certain service scenarios. However, frequent calls to `flush()` can result in degraded service performance.
|
|
79
|
+
```python
|
|
80
|
+
te.flush();
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 3.4 Close SDK
|
|
84
|
+
```python
|
|
85
|
+
te.close()
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
<quote-container>
|
|
89
|
+
Close and exit the SDK. Please call this api before closing the server to avoid data loss in the cache
|
|
90
|
+
</quote-container>
|
|
91
|
+
|
|
92
|
+
## **Best Practice**
|
|
93
|
+
The following sample code covers all the above-mentioned operations. It is recommended that the codes be used in the following steps:
|
|
94
|
+
```python
|
|
95
|
+
from tgasdk.sdk import *
|
|
96
|
+
|
|
97
|
+
te = TDAnalytics(TDLogConsumer("LOG_DIRECTORY"))
|
|
98
|
+
|
|
99
|
+
properties = {
|
|
100
|
+
"#time": datetime.datetime.now(),
|
|
101
|
+
"#ip": "192.168.1.1",
|
|
102
|
+
"Product_Name": "goods_name"
|
|
103
|
+
}
|
|
104
|
+
try:
|
|
105
|
+
te.track("distinct_id", "account_id", "Payment", properties)
|
|
106
|
+
except Exception as e:
|
|
107
|
+
print(e)
|
|
108
|
+
|
|
109
|
+
user_properties = {"user_name": "ABC"}
|
|
110
|
+
try:
|
|
111
|
+
te.user_set(account_id="account_id", distinct_id="distinct_id", properties=user_properties)
|
|
112
|
+
except Exception as e:
|
|
113
|
+
print(e)
|
|
114
|
+
|
|
115
|
+
te.flush()
|
|
116
|
+
```
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: ruby_sdk_release_note
|
|
3
|
+
name: "Release Notes"
|
|
4
|
+
wikiToken: NuXswgQPZi5K9OkaxzWctlxcnMe
|
|
5
|
+
parentWikiToken: S8vpwcvIxiPflykjVPScH7dTnyd
|
|
6
|
+
updateTime: 1780898293000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_release_note
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## v2.0.2
|
|
11
|
+
**Date: 2026/06/05**
|
|
12
|
+
**Notes:**
|
|
13
|
+
- Supports multi-threaded invocation
|
|
14
|
+
## v2.0.1
|
|
15
|
+
**Date: 2026/05/13**
|
|
16
|
+
**Notes:**
|
|
17
|
+
- Supports multi-threaded invocation
|
|
18
|
+
## v2.0.0
|
|
19
|
+
**Date: 2023/09/20**
|
|
20
|
+
**Notes:**
|
|
21
|
+
- Modified module name, incompatible with older versions
|
|
22
|
+
## v1.2.1
|
|
23
|
+
**Date: 2023/03/20**
|
|
24
|
+
**Notes:**
|
|
25
|
+
- Compatible ruby 3
|
|
26
|
+
- Supports a different '#app_id' for each event
|
|
27
|
+
## v1.2.0
|
|
28
|
+
**Date:****2020/08/28**
|
|
29
|
+
**Notes:**
|
|
30
|
+
- Added track_update interface to support updatable events
|
|
31
|
+
- Added track_overwrite interface to support rewritable events
|
|
32
|
+
## v1.1.0
|
|
33
|
+
**Date:****2020/02/11**
|
|
34
|
+
**Notes:**
|
|
35
|
+
- Data type support array type
|
|
36
|
+
- Added user_append interface to support attribute appending of user's array type
|
|
37
|
+
- BatchConsumer performance optimization: support to choose whether to compress; remove Base64 encoding
|
|
38
|
+
- DebugConsumer Optimization: More complete and accurate validation of data at the server level
|
|
39
|
+
## v1.0.0
|
|
40
|
+
**Date:****2019-11-20**
|
|
41
|
+
**Notes:**
|
|
42
|
+
- Support three modes of reporting: DebugConsumer, BatchConsumer, LoggerConsumer.
|
|
43
|
+
- Support event reporting and user feature reporting.
|
|
44
|
+
- Supports public event properties.
|
package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: ruby_sdk_debug
|
|
3
|
+
name: "Debugging and Logging"
|
|
4
|
+
wikiToken: VpzSwR4BZiAigmkidffcx4n0nHc
|
|
5
|
+
parentWikiToken: CKuawiPqPi1o3pkdExtc3VB7nsn
|
|
6
|
+
updateTime: 1774249288000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_debug
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
::: warning Notice
|
|
11
|
+
The SDK Debug mode is used only for access debugging. Do not apply it to the production environment.
|
|
12
|
+
:::
|
|
13
|
+
During the process of SDK Integration, you can perform real-time debugging by checking SDK logs in the IDE console or using the Debug function of TE.
|
|
14
|
+
## Logging
|
|
15
|
+
```python
|
|
16
|
+
ThinkingData::set_enable_log(true)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Debugging
|
|
20
|
+
You need to follow the following two steps to enable the Debug mode:
|
|
21
|
+
#### 2.1 Use DebugConsumer
|
|
22
|
+
The sample code for enabling the Debug mode on the client side is as follows:
|
|
23
|
+
```python
|
|
24
|
+
consumer = ThinkingData::TDDebugConsumer.new('SERVER_URL', 'APPID', device_id: "123456789")
|
|
25
|
+
te = ThinkingData::TDAnalytics.new(consumer)
|
|
26
|
+
|
|
27
|
+
DEMO_ACCOUNT_ID = '123'
|
|
28
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
29
|
+
|
|
30
|
+
properties = {
|
|
31
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
32
|
+
prop_date: Time.now,
|
|
33
|
+
prop_double: 134.1,
|
|
34
|
+
prop_string: 'hello world',
|
|
35
|
+
prop_bool: true,
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### 2.2 Add Device
|
|
42
|
+
To avoid launching the Debug mode in the production environment, it is required that only specified device can enable Debug mode. The Debug mode can only be enabled for devices whose ID has been configured in the "Debug data" sector on the "tracking management" page of the TE.
|
|
43
|
+
<image token="WsAdb3pD5ohbjIxmizDcJO5onIg" width="1280" height="590" align="center"/>
|
|
44
|
+
|
|
45
|
+
<quote-container>
|
|
46
|
+
It can only be used for data verification at the integration stage, and should not be used in the online environment.
|
|
47
|
+
</quote-container>
|
package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: ruby_sdk_preset_properties
|
|
3
|
+
name: "Preset Properties"
|
|
4
|
+
wikiToken: Chi4w6Kkpixz5lk5zdKckvOrnWe
|
|
5
|
+
parentWikiToken: CKuawiPqPi1o3pkdExtc3VB7nsn
|
|
6
|
+
updateTime: 1774249290000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_preset_properties
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
The following present properties are properties that all events in SDK would have.
|
|
11
|
+
|
|
12
|
+
<lark-table rows="8" cols="4" column-widths="169,152,140,259">
|
|
13
|
+
|
|
14
|
+
<lark-tr>
|
|
15
|
+
<lark-td>
|
|
16
|
+
Property name
|
|
17
|
+
</lark-td>
|
|
18
|
+
<lark-td>
|
|
19
|
+
Display name
|
|
20
|
+
</lark-td>
|
|
21
|
+
<lark-td>
|
|
22
|
+
Property type
|
|
23
|
+
</lark-td>
|
|
24
|
+
<lark-td>
|
|
25
|
+
Instruction
|
|
26
|
+
</lark-td>
|
|
27
|
+
</lark-tr>
|
|
28
|
+
<lark-tr>
|
|
29
|
+
<lark-td>
|
|
30
|
+
#ip
|
|
31
|
+
</lark-td>
|
|
32
|
+
<lark-td>
|
|
33
|
+
IP address
|
|
34
|
+
</lark-td>
|
|
35
|
+
<lark-td>
|
|
36
|
+
Text
|
|
37
|
+
</lark-td>
|
|
38
|
+
<lark-td>
|
|
39
|
+
IP address of the user, based on which TE would get the geographical location of the user
|
|
40
|
+
</lark-td>
|
|
41
|
+
</lark-tr>
|
|
42
|
+
<lark-tr>
|
|
43
|
+
<lark-td>
|
|
44
|
+
#country
|
|
45
|
+
</lark-td>
|
|
46
|
+
<lark-td>
|
|
47
|
+
Country
|
|
48
|
+
</lark-td>
|
|
49
|
+
<lark-td>
|
|
50
|
+
Text
|
|
51
|
+
</lark-td>
|
|
52
|
+
<lark-td>
|
|
53
|
+
The country where the user is located; generated based on the IP address
|
|
54
|
+
</lark-td>
|
|
55
|
+
</lark-tr>
|
|
56
|
+
<lark-tr>
|
|
57
|
+
<lark-td>
|
|
58
|
+
#country_code
|
|
59
|
+
</lark-td>
|
|
60
|
+
<lark-td>
|
|
61
|
+
Country code
|
|
62
|
+
</lark-td>
|
|
63
|
+
<lark-td>
|
|
64
|
+
Text
|
|
65
|
+
</lark-td>
|
|
66
|
+
<lark-td>
|
|
67
|
+
The code of the country where the user is located (ISO 3166-1 alpha-2, two English characters in upper case); generated based on the IP address
|
|
68
|
+
</lark-td>
|
|
69
|
+
</lark-tr>
|
|
70
|
+
<lark-tr>
|
|
71
|
+
<lark-td>
|
|
72
|
+
#province
|
|
73
|
+
</lark-td>
|
|
74
|
+
<lark-td>
|
|
75
|
+
Province
|
|
76
|
+
</lark-td>
|
|
77
|
+
<lark-td>
|
|
78
|
+
Text
|
|
79
|
+
</lark-td>
|
|
80
|
+
<lark-td>
|
|
81
|
+
The province where the user is located; generated based on the IP address
|
|
82
|
+
</lark-td>
|
|
83
|
+
</lark-tr>
|
|
84
|
+
<lark-tr>
|
|
85
|
+
<lark-td>
|
|
86
|
+
#city
|
|
87
|
+
</lark-td>
|
|
88
|
+
<lark-td>
|
|
89
|
+
City
|
|
90
|
+
</lark-td>
|
|
91
|
+
<lark-td>
|
|
92
|
+
Text
|
|
93
|
+
</lark-td>
|
|
94
|
+
<lark-td>
|
|
95
|
+
The city where the user is located; generated based on the IP address
|
|
96
|
+
</lark-td>
|
|
97
|
+
</lark-tr>
|
|
98
|
+
<lark-tr>
|
|
99
|
+
<lark-td>
|
|
100
|
+
#lib
|
|
101
|
+
</lark-td>
|
|
102
|
+
<lark-td>
|
|
103
|
+
SDK type
|
|
104
|
+
</lark-td>
|
|
105
|
+
<lark-td>
|
|
106
|
+
Text
|
|
107
|
+
</lark-td>
|
|
108
|
+
<lark-td>
|
|
109
|
+
The type of SDK which you integrate, e.g., Golang, etc.
|
|
110
|
+
</lark-td>
|
|
111
|
+
</lark-tr>
|
|
112
|
+
<lark-tr>
|
|
113
|
+
<lark-td>
|
|
114
|
+
#lib_version
|
|
115
|
+
</lark-td>
|
|
116
|
+
<lark-td>
|
|
117
|
+
SDK version
|
|
118
|
+
</lark-td>
|
|
119
|
+
<lark-td>
|
|
120
|
+
Text
|
|
121
|
+
</lark-td>
|
|
122
|
+
<lark-td>
|
|
123
|
+
The version of the SDK which you integrate
|
|
124
|
+
</lark-td>
|
|
125
|
+
</lark-tr>
|
|
126
|
+
</lark-table>
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: ruby_sdk_advanced
|
|
3
|
+
name: "Ruby-Advanced"
|
|
4
|
+
wikiToken: CKuawiPqPi1o3pkdExtc3VB7nsn
|
|
5
|
+
parentWikiToken: S8vpwcvIxiPflykjVPScH7dTnyd
|
|
6
|
+
updateTime: 1774249286000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_advanced
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## **Sending Events**
|
|
11
|
+
After SDK is initialized, you can track user behaviour data. In general, ordinary events could meet business requirements. You can also use the First/Updatable Event based on your own business requirements.
|
|
12
|
+
### 1.1 **Ordinary Events**
|
|
13
|
+
You can call `track` to upload events. It is suggested that you set event properties based on the document about data tracking drafted previously. Procurement of a commodity by a user is taken as the example here:
|
|
14
|
+
```ruby
|
|
15
|
+
DEMO_ACCOUNT_ID = '123'
|
|
16
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
17
|
+
|
|
18
|
+
properties = {
|
|
19
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
20
|
+
prop_date: Time.now,
|
|
21
|
+
prop_double: 134.1,
|
|
22
|
+
prop_string: 'hello world',
|
|
23
|
+
prop_bool: true,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 1.2 **First Events**
|
|
30
|
+
The First Events refers to events that would only be recorded once for the ID of a certain device or other dimensions. For example, under certain scenarios, you may want to record the activation event on a certain device. In this case, you can perform data tracking with the First Event.
|
|
31
|
+
If you want to judge whether an event is the First Event from other dimensions, you can define a first_check_id for the First Event:
|
|
32
|
+
```ruby
|
|
33
|
+
DEMO_ACCOUNT_ID = '123'
|
|
34
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
35
|
+
|
|
36
|
+
properties = {
|
|
37
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
38
|
+
prop_date: Time.now,
|
|
39
|
+
prop_double: 134.1,
|
|
40
|
+
prop_string: 'hello world',
|
|
41
|
+
prop_bool: true,
|
|
42
|
+
}
|
|
43
|
+
ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, first_check_id:'first_id', properties: properties)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
<quote-container>
|
|
47
|
+
Note: Since the server has to check whether the event is the First Event, the First Event will be put in storage one hour later by default.
|
|
48
|
+
</quote-container>
|
|
49
|
+
|
|
50
|
+
### 1.3 ** Updatable Events**
|
|
51
|
+
You can meet the requirements for event data modification under specific scenarios through Updatable Event. The TE would determine the data to be updated according to the event name and event ID.
|
|
52
|
+
```ruby
|
|
53
|
+
DEMO_ACCOUNT_ID = '123'
|
|
54
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
55
|
+
|
|
56
|
+
properties = {
|
|
57
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
58
|
+
prop_date: Time.now,
|
|
59
|
+
prop_double: 134.1,
|
|
60
|
+
prop_string: 'hello world',
|
|
61
|
+
prop_bool: true,
|
|
62
|
+
}
|
|
63
|
+
ta.track_update(event_name: 'update', event_id: 'id123', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties:properties)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 1.4 **Overwritable Event****s**
|
|
67
|
+
Despite the similarity with Updatable Event, Overwritable Event would cover all historical data with the latest data. Looking from the perspective of effect, such a process is equivalent to the behavior of deleting the previous data while putting the latest data in storage. The TE would determine the data to be updated according to the event name and event ID.
|
|
68
|
+
```ruby
|
|
69
|
+
DEMO_ACCOUNT_ID = '123'
|
|
70
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
71
|
+
|
|
72
|
+
properties = {
|
|
73
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
74
|
+
prop_date: Time.now,
|
|
75
|
+
prop_double: 134.1,
|
|
76
|
+
prop_string: 'hello world',
|
|
77
|
+
prop_bool: true,
|
|
78
|
+
}
|
|
79
|
+
ta.track_overwrite(event_name: 'update', event_id: 'id123', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties:properties)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## **User Properties**
|
|
83
|
+
User property setting APIs supported by the TE include: `user_set`, `user_set_once`, `user_add`, `user_append`, `user_uniq_append`, `user_unset`, `user_del`.
|
|
84
|
+
### 2.1 user_set
|
|
85
|
+
You can call `user_set` to set general user properties. The original properties would be replaced if the properties uploaded via the API are used. If user properties are not set before, user properties will be created. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
|
|
86
|
+
```ruby
|
|
87
|
+
DEMO_ACCOUNT_ID = '123'
|
|
88
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
89
|
+
|
|
90
|
+
user_data = {
|
|
91
|
+
array: ["str1", 11, 22.22],
|
|
92
|
+
prop_double: 134.12,
|
|
93
|
+
prop_string: 'hello',
|
|
94
|
+
prop_int: 666,
|
|
95
|
+
}
|
|
96
|
+
ta.user_set(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_data)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 2.2 user_set_once
|
|
100
|
+
If the user property you want to upload only needs to be set once, you can call `user_set_once` to set the property. If such property had been set before, this message would be ignored. Let's take the setting of the first payment time as an example::
|
|
101
|
+
```ruby
|
|
102
|
+
user_set_once_data = {
|
|
103
|
+
prop_int_new: 888,
|
|
104
|
+
}
|
|
105
|
+
ta.user_set_once(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_set_once_data)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 2.3 user_add
|
|
109
|
+
When you want to upload numeric property for cumulative operation, you can call `user_add`.
|
|
110
|
+
If the property has not been set, it would be given a value of 0 before computing. A negative value could be uploaded, which is equivalent to subtraction operation. Let's take the accumulative payment amount as an example:
|
|
111
|
+
```ruby
|
|
112
|
+
ta.user_add(distinct_id: DEMO_DISTINCT_ID, properties: {prop_int: 10, prop_double: 15.88})
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
<quote-container>
|
|
116
|
+
The property key is a string, and the value is only allowed to be a numeric value.
|
|
117
|
+
</quote-container>
|
|
118
|
+
|
|
119
|
+
### 2.4 user_append
|
|
120
|
+
You can call `user_append` to add user properties of array type.
|
|
121
|
+
```ruby
|
|
122
|
+
user_append_data = {
|
|
123
|
+
array: %w[33 44]
|
|
124
|
+
}
|
|
125
|
+
ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data)
|
|
126
|
+
|
|
127
|
+
user_append_data_new = {
|
|
128
|
+
array: %w[44 55]
|
|
129
|
+
}
|
|
130
|
+
ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data_new)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 2.5 user_uniq_append
|
|
134
|
+
You can delete duplicated user property by calling `user_uniq_append` interface. If you call `user_append` interface, duplicated user property might not be deleted.
|
|
135
|
+
```ruby
|
|
136
|
+
user_append_data = {
|
|
137
|
+
array: %w[33 44]
|
|
138
|
+
}
|
|
139
|
+
ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data)
|
|
140
|
+
|
|
141
|
+
user_uniq_append_data = {
|
|
142
|
+
array: %w[44 55]
|
|
143
|
+
}
|
|
144
|
+
ta.user_uniq_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_uniq_append_data)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 2.6 user_unset
|
|
148
|
+
When you need to clear the user properties of users, you can call `user_unset` to clear specific properties. `user_unset` would not create properties that have not been created in the cluster.
|
|
149
|
+
```ruby
|
|
150
|
+
ta.user_unset(distinct_id: DEMO_DISTINCT_ID, property: [:prop_string, :prop_int])
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 2.7 user_del
|
|
154
|
+
You can call `user_del` to delete a user. After deleting the user, you would no longer be able to inquire about its user property, but could still query the events triggered by the user.
|
|
155
|
+
```ruby
|
|
156
|
+
ta.user_del(distinct_id: DEMO_DISTINCT_ID)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## **Other**
|
|
160
|
+
### 3.1 BatchConsumer
|
|
161
|
+
::: warning Notice
|
|
162
|
+
When the amount of data is too large or the network is abnormal, there is a risk of data loss. And it is not recommended to use it in a production environment
|
|
163
|
+
:::
|
|
164
|
+
Batches transmit data to the TE in real time, without the need for a transmission tool.
|
|
165
|
+
```ruby
|
|
166
|
+
consumer = ThinkingData::TDBatchConsumer.new('SERVER_URL', 'APPID', 30)
|
|
167
|
+
ta = ThinkingData::TDAnalytics.new(consumer)
|
|
168
|
+
|
|
169
|
+
DEMO_ACCOUNT_ID = '123'
|
|
170
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
171
|
+
|
|
172
|
+
properties = {
|
|
173
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
174
|
+
prop_date: Time.now,
|
|
175
|
+
prop_double: 134.1,
|
|
176
|
+
prop_string: 'hello world',
|
|
177
|
+
prop_bool: true,
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Instruction on parameters:
|
|
184
|
+
- `APPID`: The APPID of your project, which can be found on the project management page of TE.
|
|
185
|
+
- `SERVER_URL`:
|
|
186
|
+
- If you are using a SaaS version, please check the receiver URL on this page
|
|
187
|
+
<image token="FlHEbKx8moxDYmxoD91ccNgynic" width="1674" height="1318" align="center"/>
|
|
188
|
+
|
|
189
|
+
- If you use the private deployment version, you can customize the data tracking URL .
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: ruby_sdk_installation
|
|
3
|
+
name: "Ruby"
|
|
4
|
+
wikiToken: S8vpwcvIxiPflykjVPScH7dTnyd
|
|
5
|
+
parentWikiToken: IKVPwn4NfiIhijk5EcAcMf6pn7e
|
|
6
|
+
updateTime: 1780898277000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=ruby_sdk_installation
|
|
8
|
+
---
|
|
9
|
+
::: tip
|
|
10
|
+
Before you begin, please read [<text color="purple" underline="true">Preparation before Data Ingestion</text>](https://thinkingdata.feishu.cn/wiki/OhD8we9iai6Xk5kM1QNc8ITRnQe).
|
|
11
|
+
:::
|
|
12
|
+
**Latest version**: v2.0.2
|
|
13
|
+
**Update time**: 2026-06-05
|
|
14
|
+
**Resource download**: [Source Code](https%3A%2F%2Fgithub.com%2FThinkingDataAnalytics%2Fruby-sdk)
|
|
15
|
+
::: warning Notice
|
|
16
|
+
Current documentation applies to v3.0.0 and later. For historical versions, see [Data Ingestion Guide - Ruby (V1)](https%3A%2F%2Fdocs.thinkingdata.cn%2Fta-manual%2Fv4.1%2Fen%2Finstallation%2Finstallation_menu%2Fserver_sdk%2Fruby_sdk_installation%2Fruby_sdk_installation.html)
|
|
17
|
+
:::
|
|
18
|
+
## **SDK**** Integration**
|
|
19
|
+
1.1 Please use `gem` command to get the SDK package.
|
|
20
|
+
```shell
|
|
21
|
+
# install SDK
|
|
22
|
+
gem install thinkingdata-ruby
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
1.2 Logbus Integration
|
|
26
|
+
We recommend using SDK+LogBus to track and report data on server. You can refer to the following documents to complete the installation of LogBus:[ LogBus User Guide](https://thinkingdata.feishu.cn/wiki/SlE6wOEK3isQvukzEbnc5V0inNa)
|
|
27
|
+
## **Initialization**
|
|
28
|
+
The following is the sample code for SDK initialization:
|
|
29
|
+
```ruby
|
|
30
|
+
require 'thinkingdata-ruby'
|
|
31
|
+
|
|
32
|
+
consumer = ThinkingData::TDLoggerConsumer.new("LOG_DIRECTORY")
|
|
33
|
+
ta = ThinkingData::TDAnalytics.new(consumer)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`LOG_DIRECTORY` is the local folder path.
|
|
37
|
+
## **Common Features**
|
|
38
|
+
In order to ensure that the distinct ID and account ID can be bound smoothly, if your game uses the distinct ID and account ID, we strongly recommend that you upload these two IDs at the same time, otherwise the account will not match, causing users to double count. For specific ID binding rules, please refer to the chapter on [User Identification Rules](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc).
|
|
39
|
+
### 3.1 **Sending Events**
|
|
40
|
+
You can call `track` to upload events. It is suggested that you set event properties based on the data tracking plan drafted previously. Here is an example of a user buying an item:
|
|
41
|
+
```ruby
|
|
42
|
+
DEMO_ACCOUNT_ID = '123'
|
|
43
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
44
|
+
|
|
45
|
+
properties = {
|
|
46
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
47
|
+
prop_date: Time.now,
|
|
48
|
+
prop_double: 134.1,
|
|
49
|
+
prop_string: 'hello world',
|
|
50
|
+
prop_bool: true,
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
- Key is the name of the property and refers to the string type. It must start with a character, and contain numbers, characters (insensitive to case, and upper cases would be transformed into lower cases by TE) and underscores "_", with a maximum length of 50 characters.
|
|
57
|
+
- Value, the value of the property, supports string, numbers, Boolean, time, object, array object, and array
|
|
58
|
+
<quote-container>
|
|
59
|
+
**The requirements for event properties and user properties are the same as that for super properties**
|
|
60
|
+
</quote-container>
|
|
61
|
+
|
|
62
|
+
### 3.2** User Properties**
|
|
63
|
+
You can set general user properties by calling `user_set` API. The original properties would be replaced by the properties uploaded via this API. If no user properties are set before, user properties will be newly created. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
|
|
64
|
+
```ruby
|
|
65
|
+
DEMO_ACCOUNT_ID = '123'
|
|
66
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
67
|
+
|
|
68
|
+
user_data = {
|
|
69
|
+
array: ["str1", 11, 22.22],
|
|
70
|
+
prop_date: Time.now,
|
|
71
|
+
prop_double: 134.12,
|
|
72
|
+
prop_string: 'hello',
|
|
73
|
+
prop_int: 666,
|
|
74
|
+
}
|
|
75
|
+
ta.user_set(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_data)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3.3 Reported data
|
|
79
|
+
When `TDLoggingConsumer` is used, the SDK will write the collected data to disk in real time.
|
|
80
|
+
### 3.4 Close SDK
|
|
81
|
+
```ruby
|
|
82
|
+
ta.close
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
<quote-container>
|
|
86
|
+
Close and exit the SDK. Please call this api before closing the server to avoid data loss in the cache
|
|
87
|
+
</quote-container>
|
|
88
|
+
|
|
89
|
+
## **Best Practice**
|
|
90
|
+
The following sample code covers all the above-mentioned operations. It is recommended that the codes be used in the following steps:
|
|
91
|
+
```ruby
|
|
92
|
+
require 'thinkingdata-ruby'
|
|
93
|
+
|
|
94
|
+
ThinkingData::set_stringent(false)
|
|
95
|
+
ThinkingData::set_enable_log(false)
|
|
96
|
+
|
|
97
|
+
consumer = ThinkingData::TDLoggerConsumer.new( 'LOG_DIRECTORY', 'hourly')
|
|
98
|
+
ta = ThinkingData::TDAnalytics.new(consumer, my_error_handler, uuid: true)
|
|
99
|
+
|
|
100
|
+
DEMO_ACCOUNT_ID = '123'
|
|
101
|
+
DEMO_DISTINCT_ID = 'aaa'
|
|
102
|
+
|
|
103
|
+
properties = {
|
|
104
|
+
array: ["str1", "11", Time.now, "2020-02-11 17:02:52.415"],
|
|
105
|
+
prop_date: Time.now,
|
|
106
|
+
prop_double: 134.1,
|
|
107
|
+
prop_string: 'hello world',
|
|
108
|
+
prop_bool: true,
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
ta.track(event_name: 'test_event', distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: properties)
|
|
112
|
+
|
|
113
|
+
user_data = {
|
|
114
|
+
array: ["str1", 11, 22.22],
|
|
115
|
+
prop_date: Time.now,
|
|
116
|
+
prop_double: 134.12,
|
|
117
|
+
prop_string: 'hello',
|
|
118
|
+
prop_int: 666,
|
|
119
|
+
}
|
|
120
|
+
ta.user_set(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_data)
|
|
121
|
+
|
|
122
|
+
user_append_data = {
|
|
123
|
+
array: %w[33 44]
|
|
124
|
+
}
|
|
125
|
+
ta.user_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_append_data)
|
|
126
|
+
|
|
127
|
+
user_uniq_append_data = {
|
|
128
|
+
array: %w[44 55]
|
|
129
|
+
}
|
|
130
|
+
ta.user_uniq_append(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_uniq_append_data)
|
|
131
|
+
|
|
132
|
+
user_set_once_data = {
|
|
133
|
+
prop_int_new: 888,
|
|
134
|
+
}
|
|
135
|
+
ta.user_set_once(distinct_id: DEMO_DISTINCT_ID, account_id: DEMO_ACCOUNT_ID, properties: user_set_once_data)
|
|
136
|
+
|
|
137
|
+
ta.user_add(distinct_id: DEMO_DISTINCT_ID, properties: {prop_int: 10, prop_double: 15.88})
|
|
138
|
+
|
|
139
|
+
ta.user_unset(distinct_id: DEMO_DISTINCT_ID, property: [:prop_string, :prop_int])
|
|
140
|
+
|
|
141
|
+
ta.user_del(distinct_id: DEMO_DISTINCT_ID)
|
|
142
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: server_sdk_menu
|
|
3
|
+
name: "Server SDK"
|
|
4
|
+
wikiToken: IKVPwn4NfiIhijk5EcAcMf6pn7e
|
|
5
|
+
parentWikiToken: AWr4wIMGYi9FB7ksPi4c17kNnxh
|
|
6
|
+
updateTime: 1774252005000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=server_sdk_menu
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
- The server SDK mainly includes:
|
|
11
|
+
[<text underline="true">Golang</text>](https://thinkingdata.feishu.cn/wiki/GVHiwdEmWixRWrk0ZdKcT2twnSn)
|
|
12
|
+
[<text underline="true">Java</text>](https://thinkingdata.feishu.cn/wiki/BuVmwRcFsi4Oq5knoDDcgJ3fnSN)
|
|
13
|
+
[<text underline="true">C </text>](https://thinkingdata.feishu.cn/wiki/Er3owqC0UiRR21kCDgZcY4qJn3e)
|
|
14
|
+
[<text underline="true">Node</text>](https://thinkingdata.feishu.cn/wiki/OoIKwLEiNiPgzhksi3xcUBEknbb)[<text underline="true">.js</text>](https://thinkingdata.feishu.cn/wiki/OoIKwLEiNiPgzhksi3xcUBEknbb)
|
|
15
|
+
[<text underline="true">Python </text>](https://thinkingdata.feishu.cn/wiki/YoPdwzGBMiRyS7kTY5pcmWHpnjf)
|
|
16
|
+
[<text underline="true">Ruby</text>](https://thinkingdata.feishu.cn/wiki/S8vpwcvIxiPflykjVPScH7dTnyd)
|
|
17
|
+
[C#](https://thinkingdata.feishu.cn/wiki/V2W3wvcfkiGW3lk9rrDcnosAnqi)
|
|
18
|
+
[PHP](https://thinkingdata.feishu.cn/wiki/G0BrwOPbXiAtIikbcv3cMEyonTf)
|
|
19
|
+
[Lua](https://thinkingdata.feishu.cn/wiki/CLL4wjPKtiEhkjkmbIqcrn3CnXd)
|
|
20
|
+
[C++](https://thinkingdata.feishu.cn/wiki/Zf9Jwl81biGtrbkmBhackD1Fn3c)
|
|
21
|
+
[ErLang](https://thinkingdata.feishu.cn/wiki/HCbFw6wKsiAj0Qkst6cctv3AnIf)
|
|
22
|
+
|