@thinkingai/ae-cli 1.0.30 → 6.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2526 -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,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: unreal_compliance
|
|
3
|
+
name: "Compliance"
|
|
4
|
+
wikiToken: Gck3wqzxcilHTNkssULcMweJngh
|
|
5
|
+
parentWikiToken: Tjh7wx7FYinevfkG0mwcLxsSnea
|
|
6
|
+
updateTime: 1774249118000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unreal_compliance
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## **1****. Fill ****I****n the ****SDK**** ****R****elated ****C****ontent in the ****P****rivacy ****P****olicy**
|
|
11
|
+
### **1.1 ****Collection and Acquisition**
|
|
12
|
+
Complete the following as appropriate in the Collection and Access to Your Personal Information section of the Privacy Policy.
|
|
13
|
+
When you are active, Thinking Data collects your device information (IDFV, AndroidID, operating system, device model, device manufacturer, system version, etc.) for statistical analysis of how you use it within App.
|
|
14
|
+
### **1.2 ****Share with Authorized Partners**
|
|
15
|
+
Complete the following as appropriate in the Sharing with Authorized Partners section of the Privacy Policy.
|
|
16
|
+
Thinking Data SDK: Collect your device information (IDFV, AndroidID, operating system, device model, device manufacturer, system version, etc.) and networking information for data analysis to improve our products and services.
|
|
17
|
+
## **2****. ****SDK**** Compliance Steps**
|
|
18
|
+
ThinkingData SDK requires you to ensure that users initialize the SDK after agreeing to the Privacy Policy
|
|
19
|
+
```cpp
|
|
20
|
+
// Judging whether to open data acquisition according to privacy protocol
|
|
21
|
+
if (Authorized Privacy Policy) {
|
|
22
|
+
UTDAnalytics::Initialize();
|
|
23
|
+
}
|
|
24
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: unreal_sdk_release_notes
|
|
3
|
+
name: "Release Notes"
|
|
4
|
+
wikiToken: ExckwzDZii358lk62GEcvQ18njy
|
|
5
|
+
parentWikiToken: Tjh7wx7FYinevfkG0mwcLxsSnea
|
|
6
|
+
updateTime: 1774249120000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unreal_sdk_release_notes
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## v3.0.3
|
|
11
|
+
**Date:** 10/11/2025 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v3.0.3.zip)
|
|
12
|
+
**Notes:**
|
|
13
|
+
- Known issues fixed
|
|
14
|
+
## v3.0.2
|
|
15
|
+
**Date:** 09/23/2025 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v3.0.2.zip)
|
|
16
|
+
**Notes:**
|
|
17
|
+
- Known issues fixed
|
|
18
|
+
## v3.0.1
|
|
19
|
+
**Date:** 08/04/2025 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v3.0.1.zip)
|
|
20
|
+
**Notes:**
|
|
21
|
+
- On the Windows platform, carry dynamic public properties when tracking
|
|
22
|
+
- Known issues fixed
|
|
23
|
+
## v3.0.0
|
|
24
|
+
**Date:** 03/21/2025 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v3.0.0.zip)
|
|
25
|
+
**Notes:**
|
|
26
|
+
- Windows underlying use of C++SDK
|
|
27
|
+
- Upgrade Android and iOS SDK
|
|
28
|
+
## v2.0.5
|
|
29
|
+
**Date:** 09/10/2024 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v2.0.5.zip)
|
|
30
|
+
**Notes:**
|
|
31
|
+
- Support clearing static public properties
|
|
32
|
+
- Fixed the issue of reporting data in DebugOnly mode
|
|
33
|
+
## v2.0.4
|
|
34
|
+
**Date:** 08/05/2024 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v2.0.4.zip)
|
|
35
|
+
**Notes:**
|
|
36
|
+
- Fixed known issues in Debug mode
|
|
37
|
+
## v2.0.3
|
|
38
|
+
**Date:** 05/15/2024 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v2.0.3.zip)
|
|
39
|
+
**Notes:**
|
|
40
|
+
- Fixed known issues
|
|
41
|
+
## v2.0.2
|
|
42
|
+
**Date:** 02/07/2024 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v2.0.2.zip)
|
|
43
|
+
**Notes:**
|
|
44
|
+
- Fixed known issues
|
|
45
|
+
## v2.0.1
|
|
46
|
+
**Date:** 11/04/2023 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v2.0.1.zip)
|
|
47
|
+
**Notes:**
|
|
48
|
+
- Migrated to UE5
|
|
49
|
+
## v2.0.0
|
|
50
|
+
**Date:** 09/23/2022 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v2.0.0.zip)
|
|
51
|
+
**Notes:**
|
|
52
|
+
- Migrated to UE5
|
|
53
|
+
## v1.6.0
|
|
54
|
+
**Date:** 09/23/2022 [Download](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FUnreal%2Fta_unreal_sdk_v1.6.0.zip)
|
|
55
|
+
**Notes:**
|
|
56
|
+
- Migrated to UE5
|
|
57
|
+
- Add PC preset attribute #zone_offset acquisition and time formatting logic
|
|
58
|
+
- Increase the PC event cache function, the reporting strategy is 15s or 20
|
|
59
|
+
- Add PC settings reporting status interface
|
|
60
|
+
- Fix some known issues
|
|
61
|
+
## v1.5.0
|
|
62
|
+
**Date:** 06/16/2022
|
|
63
|
+
**Notes:**
|
|
64
|
+
- Update iOS(2.8.0.1) and Android SDK(2.8.0.1) versions
|
|
65
|
+
- Android & IOS support data encryption
|
|
66
|
+
- Android & IOS support three-party data synchronization
|
|
67
|
+
- Android & IOS supports automatic collection of event callbacks
|
|
68
|
+
- Android & IOS support collecting Crash events
|
|
69
|
+
- Android & IOS support setTrackStatus interface
|
|
70
|
+
- All platforms support the UserUniqueAppend interface
|
|
71
|
+
- Interface optimization for setting dynamic public properties
|
|
72
|
+
- Added #install_time/#fps/#ram/#disk preset properties for PC
|
|
73
|
+
- Known bug fixes
|
|
74
|
+
## v1.4.1
|
|
75
|
+
**Date:** 03/15/2022
|
|
76
|
+
**Notes:**
|
|
77
|
+
- Update iOS(2.7.3) and Android SDK(2.7.3) versions
|
|
78
|
+
- Android & IOS support complex data types
|
|
79
|
+
- The new interface supports enabling automatic collection of events and passing in events that need to be enabled
|
|
80
|
+
- The new interface supports passing in custom attributes when automatic event collection is enabled
|
|
81
|
+
- Code structure adjustment
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: unreal_sdk_autotrack
|
|
3
|
+
name: "Automatic Event Tracking"
|
|
4
|
+
wikiToken: FDgww1mPCiPbO1k68GlcdDgKn1d
|
|
5
|
+
parentWikiToken: T3M0w3OWGi4LYjk1XYQcUCbCnff
|
|
6
|
+
updateTime: 1774249111000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unreal_sdk_autotrack
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Unreal SDK Automatic Event Tracking events including installation,open,close etc.
|
|
11
|
+
## **1. Introduction **
|
|
12
|
+
TE provides Apis for automatic data tracking. You can select the data to be tracked based on your needs.
|
|
13
|
+
Currently, the following types of events can be tracked automatically:
|
|
14
|
+
1. Install: behavior of APP installation
|
|
15
|
+
2. Open APP: including activiting APP and resuming APP from the background
|
|
16
|
+
3. Close APP: including disabling the APP and calling in the background while tracking the duration of the enabling process
|
|
17
|
+
4. Crash:Record crash information when the APP crashes
|
|
18
|
+
See below for more details on how to start tracking these events.
|
|
19
|
+
## **2. Enable Auto-Tracking**
|
|
20
|
+
You can call `EnableAutoTrack` to enable the auto-tracking function:
|
|
21
|
+
```cpp
|
|
22
|
+
UTDAnalytics::EnableAutoTrack();
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
You can also manually pass in the automatic collection events that need to be started:
|
|
26
|
+
```cpp {wrap}
|
|
27
|
+
TArray<FString> EventTypeList;
|
|
28
|
+
EventTypeList.Emplace(TEXT("ta_app_install"));
|
|
29
|
+
EventTypeList.Emplace(TEXT("ta_app_start"));
|
|
30
|
+
EventTypeList.Emplace(TEXT("ta_app_end"));
|
|
31
|
+
EventTypeList.Emplace(TEXT("ta_app_crash"));
|
|
32
|
+
UTDAnalytics::EnableAutoTrackWithType(EventTypeList, AppID);
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 3. Set custom properties
|
|
36
|
+
Since v1.4.1 , Supports setting custom attributes for automatic collection events. When a specified event is collected, the custom attributes will be merged into the event attributes and reported.
|
|
37
|
+
```cpp
|
|
38
|
+
TArray<FString> EventTypeList;
|
|
39
|
+
EventTypeList.Emplace(TEXT("ta_app_install"));
|
|
40
|
+
EventTypeList.Emplace(TEXT("ta_app_start"));
|
|
41
|
+
EventTypeList.Emplace(TEXT("ta_app_end"));
|
|
42
|
+
EventTypeList.Emplace(TEXT("ta_app_crash"));
|
|
43
|
+
UTDAnalytics::EnableAutoTrackWithTypeAndProperties(EventTypeList, TEXT("{\"autoTrackKey1\":\"autoTrackvalue1\",\"autoTrackKey2\":\"autoTrackvalue2\"}"), AppID);
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Set the automatic collection event callback
|
|
47
|
+
Since v1.5.0, Supports setting callback methods for automatic collection events. When a specified event is collected, the callback will be used to notify and return the current event attributes. You can forward data as needed, or add new event attributes as return.
|
|
48
|
+
```cpp
|
|
49
|
+
//Define the callback
|
|
50
|
+
FString UTAUserWidget::TAAutoTrackProperties(FString AutoTrackEventType, FString Properties)
|
|
51
|
+
{
|
|
52
|
+
//AutoTrackEventType automatically collects event types
|
|
53
|
+
//Properties The event properties carried by the current event
|
|
54
|
+
//processing logic
|
|
55
|
+
FDateTime TDateTime = FDateTime::Now();
|
|
56
|
+
int64 SecondTimestamp = TDateTime.ToUnixTimestamp();
|
|
57
|
+
int32 MillisecondPart = TDateTime.GetMillisecond();
|
|
58
|
+
FString TimeStr = *FString::Printf(TEXT("%llu"), SecondTimestamp);
|
|
59
|
+
TimeStr += *FString::Printf(TEXT("%lld"), MillisecondPart);
|
|
60
|
+
return "{\"auto_property1_name\":\"" + AutoTrackEventType + "\",\"auto_property2_time\":\"" + TimeStr + "\"}";
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//set callback
|
|
64
|
+
void UTAUserWidget::Call_TA_SetAutoTrackEventListener()
|
|
65
|
+
{
|
|
66
|
+
TArray<FString> EventTypeList;
|
|
67
|
+
EventTypeList.Emplace(TEXT("ta_app_install"));
|
|
68
|
+
EventTypeList.Emplace(TEXT("ta_app_start"));
|
|
69
|
+
EventTypeList.Emplace(TEXT("ta_app_end"));
|
|
70
|
+
EventTypeList.Emplace(TEXT("ta_app_crash"));
|
|
71
|
+
UTDAnalytics::SetAutoTrackEventListener(this, &UTAUserWidget::TAAutoTrackProperties, EventTypeList, AppID);
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
###
|
|
76
|
+
####
|
|
77
|
+
##
|
|
78
|
+
###
|
|
79
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: unreal_sdk_debug
|
|
3
|
+
name: "Debugging and Logging"
|
|
4
|
+
wikiToken: WVdPw5n3viZhGSkm7kZcgHnEnOf
|
|
5
|
+
parentWikiToken: T3M0w3OWGi4LYjk1XYQcUCbCnff
|
|
6
|
+
updateTime: 1774251976000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unreal_sdk_debug
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
During the process of SDK integration, you can perform real-time debugging by checking SDK's logs in the IDE console or using the Debug feature of TE.
|
|
11
|
+
## Printing Log
|
|
12
|
+
Check Enable Log in the TDAnalytics plugin
|
|
13
|
+
<quote-container>
|
|
14
|
+
After opening the log, you can check data tracking of SDK by filtering logs related to TDAnalytics in IDE.
|
|
15
|
+
</quote-container>
|
|
16
|
+
|
|
17
|
+
## **2. Debugging**
|
|
18
|
+
You need to follow the following two steps to enable the Debug mode:
|
|
19
|
+
1. Enable the debug mode at the client
|
|
20
|
+
Set the SDK MODE to Debug in the TDAnalytics plugin
|
|
21
|
+
2. Add Device
|
|
22
|
+
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 IDs have been configured in the "Debugger"sector on the "Tracking Management" page of TE when the client side has enabled the Debug mode.
|
|
23
|
+
<image token="DusOb9GysorLYfxMR4gcKOVBnfc" width="1280" height="590" align="center"/>
|
|
24
|
+
|
|
25
|
+
Device ID could be obtained by the following three means:
|
|
26
|
+
- #Device_id property in the event data of TE
|
|
27
|
+
- Client-side log: DeviceID would be printed as log after SDK is initialized
|
|
28
|
+
- Call API:[Device ID](https://thinkingdata.feishu.cn/wiki/T3M0w3OWGi4LYjk1XYQcUCbCnff)
|
|
29
|
+
<quote-container>
|
|
30
|
+
The Debug mode may undermine the data tracking quality and stability of the App. It could only be used for data verification at the integration stage, and should not be used in the online environment.
|
|
31
|
+
</quote-container>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: unreal_sdk_preset_properties
|
|
3
|
+
name: "Preset Properties"
|
|
4
|
+
wikiToken: YNhfwH1lyiPmEiktyZ9c7NRXnsg
|
|
5
|
+
parentWikiToken: T3M0w3OWGi4LYjk1XYQcUCbCnff
|
|
6
|
+
updateTime: 1774251977000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unreal_sdk_preset_properties
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
### **1. Preset Properties of All Events**
|
|
11
|
+
All Events in Unreal SDK would have the following preset property.
|
|
12
|
+
|
|
13
|
+
<quote-container>
|
|
14
|
+
The prefabricated attributes collected by each platform will have certain differences. For details, please refer to the following documents: [Android platform](https://thinkingdata.feishu.cn/wiki/MBnZwHrO0ibkd9ksCSBc7dxEnic) 、 [iOS platform](https://thinkingdata.feishu.cn/wiki/Ny61w1VIbi5Qeok94fRcJhulned)
|
|
15
|
+
</quote-container>
|
|
16
|
+
|
|
17
|
+
**Preset properties for ****Mac**** and Windows:**
|
|
18
|
+
|
|
19
|
+
<sheet token="CinXs6jDlhoD2FtyWYqc4yXgnjb_7VXZad"/>
|
|
20
|
+
|
|
21
|
+
### **Getting Preset Properties**
|
|
22
|
+
Since v1.3.0, Adds a pre-acquisition attribute API. The SDK will automatically add some built-in attributes when reporting event attributes. You can obtain preset attributes through this interface.
|
|
23
|
+
```cpp
|
|
24
|
+
FString PresetProperties = UTDAnalytics::GetPresetProperties();
|
|
25
|
+
```
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: unreal_sdk_thirdparty
|
|
3
|
+
name: "Third-party Integrations"
|
|
4
|
+
wikiToken: I1pgw7m8pix4lpku3L1cPzoZnRb
|
|
5
|
+
parentWikiToken: T3M0w3OWGi4LYjk1XYQcUCbCnff
|
|
6
|
+
updateTime: 1774249116000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unreal_sdk_thirdparty
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
The sample codes for the synchronization of multiple platform data are as follows:
|
|
11
|
+
```cpp
|
|
12
|
+
TArray<FString> EventTypeList;
|
|
13
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
|
|
14
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeIRONSOURCE"));
|
|
15
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
|
|
16
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
|
|
17
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
|
|
18
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRACKING"));
|
|
19
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRADPLUS"));
|
|
20
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
`EnableThirdPartySharingWithCustomProperties:`, an API that does not support bitwise operation, can be used to add additional parameters.
|
|
24
|
+
```cpp
|
|
25
|
+
TArray<FString> EventTypeList;
|
|
26
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
|
|
27
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeIRONSOURCE"));
|
|
28
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
|
|
29
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
|
|
30
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
|
|
31
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRACKING"));
|
|
32
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRADPLUS"));
|
|
33
|
+
|
|
34
|
+
TSharedPtr<FJsonObject> m_DataJsonObject = MakeShareable(new FJsonObject);
|
|
35
|
+
m_DataJsonObject->SetStringField(TEXT("thirdkey1"), TEXT("thirdvalue1"));
|
|
36
|
+
m_DataJsonObject->SetStringField(TEXT("thirdkey2"), TEXT("thirdvalue2"));
|
|
37
|
+
UTDAnalytics::EnableThirdPartySharingWithCustomProperties(EventTypeList, m_DataJsonObject, AppID);
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 1.AppsFlyer
|
|
41
|
+
Call this API before AppsFlyer SDK calls the Start API:
|
|
42
|
+
```cpp
|
|
43
|
+
TArray<FString> EventTypeList;
|
|
44
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
|
|
45
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
After the created role is registered (optional):
|
|
49
|
+
```cpp
|
|
50
|
+
UTDAnalytics::Login("account_id", AppID);
|
|
51
|
+
TArray<FString> EventTypeList;
|
|
52
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
|
|
53
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Every time you call the `Login` or `Identify `, you need to call `EnableThirdPartySharing` synchronously to update the user ID.
|
|
57
|
+
Note: Since AppFlyer's `setAdditionalData` is called each time, the user ID will be overwritten. You can set parameters via the` EnableThirdPartySharingWithCustomProperties` API we provide:
|
|
58
|
+
```cpp
|
|
59
|
+
TArray<FString> EventTypeList;
|
|
60
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
|
|
61
|
+
TSharedPtr<FJsonObject> m_DataJsonObject = MakeShareable(new FJsonObject);
|
|
62
|
+
m_DataJsonObject->SetStringField(TEXT("thirdkey1"), TEXT("thirdvalue1"));
|
|
63
|
+
m_DataJsonObject->SetStringField(TEXT("thirdkey2"), TEXT("thirdvalue2"));
|
|
64
|
+
UTDAnalytics::EnableThirdPartySharingWithCustomProperties(EventTypeList, m_DataJsonObject, AppID);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 2.Adjust
|
|
68
|
+
To be called before Adjust SDK initialization:
|
|
69
|
+
```cpp
|
|
70
|
+
TArray<FString> EventTypeList;
|
|
71
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
|
|
72
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
After the created role is registered (optional):
|
|
76
|
+
```cpp
|
|
77
|
+
UTDAnalytics::Login("account_id", AppID);
|
|
78
|
+
TArray<FString> EventTypeList;
|
|
79
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
|
|
80
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 3.Branch
|
|
84
|
+
To be called before the Branch initialize the session:
|
|
85
|
+
```cpp
|
|
86
|
+
TArray<FString> EventTypeList;
|
|
87
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
|
|
88
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
After the created role is registered (optional):
|
|
92
|
+
```cpp
|
|
93
|
+
UTDAnalytics::Login("account_id", AppID);
|
|
94
|
+
TArray<FString> EventTypeList;
|
|
95
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
|
|
96
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 4.TopOn
|
|
100
|
+
To be called before ATSDK.*init:*
|
|
101
|
+
```cpp
|
|
102
|
+
TArray<FString> EventTypeList;
|
|
103
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
|
|
104
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Every time you call the `Login` or `Identify `, you need to call `EnableThirdPartySharing` synchronously to update the user ID.
|
|
108
|
+
Note: Since TopOn's `initCustomMap` is called each time, the user ID will be overwritten. You can set parameters via the` EnableThirdPartySharingWithCustomProperties` API we provide:
|
|
109
|
+
```cpp
|
|
110
|
+
TArray<FString> EventTypeList;
|
|
111
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
|
|
112
|
+
TSharedPtr<FJsonObject> m_DataJsonObject = MakeShareable(new FJsonObject);
|
|
113
|
+
m_DataJsonObject->SetStringField(TEXT("thirdkey1"), TEXT("thirdvalue1"));
|
|
114
|
+
m_DataJsonObject->SetStringField(TEXT("thirdkey2"), TEXT("thirdvalue2"));
|
|
115
|
+
UTDAnalytics::EnableThirdPartySharingWithCustomProperties(EventTypeList, m_DataJsonObject, AppID);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 5.ReYun
|
|
119
|
+
To be called after the account is registered:
|
|
120
|
+
```cpp
|
|
121
|
+
UTDAnalytics::Login("account_id", AppID);
|
|
122
|
+
TArray<FString> EventTypeList;
|
|
123
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRACKING"));
|
|
124
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## 6.TradPlus
|
|
128
|
+
To be called before TradPlus SDK initialization:
|
|
129
|
+
```cpp
|
|
130
|
+
TArray<FString> EventTypeList;
|
|
131
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRADPLUS"));
|
|
132
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 7.IronSource
|
|
136
|
+
To be called after IronSource SDK initialization:
|
|
137
|
+
```cpp
|
|
138
|
+
TArray<FString> EventTypeList;
|
|
139
|
+
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeIRONSOURCE"));
|
|
140
|
+
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
|
|
141
|
+
```
|
package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: unreal_sdk_advanced
|
|
3
|
+
name: "Unreal-Advanced"
|
|
4
|
+
wikiToken: T3M0w3OWGi4LYjk1XYQcUCbCnff
|
|
5
|
+
parentWikiToken: Tjh7wx7FYinevfkG0mwcLxsSnea
|
|
6
|
+
updateTime: 1774251975000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=unreal_sdk_advanced
|
|
8
|
+
---
|
|
9
|
+
## 1**. Managing User Identity**
|
|
10
|
+
SDK instances would use random UUID as the default distinct ID of each user by default, which would be used as the identity identification ID of users under an unlogged-in state. It should be noted that the distinct ID would change after the user reinstalled the App or use the APP with a new device.
|
|
11
|
+
### **1.1. Identify**
|
|
12
|
+
::: tip
|
|
13
|
+
Generally speaking, you do not need to customize a distinct ID. Please ensure that you understand [<text underline="true">User Identification Rules</text>](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc)<text color="purple" underline="true"> </text>before setting a distinct ID.
|
|
14
|
+
If you need to change the distinct ID, please call the api immediately after SDK is initialized. To avoid the generation of useless accounts, please do not call such a process multiple times.
|
|
15
|
+
:::
|
|
16
|
+
If your App has its own distinct ID management system for each user, you can call `SetDistinctId` to set the distinct ID:
|
|
17
|
+
```cpp
|
|
18
|
+
// set distinct ID as Thinker
|
|
19
|
+
UTDAnalytics::SetDistinctId("Thinker");
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If you need to obtain the current distinct ID, please call `GetDistinctId`:
|
|
23
|
+
```cpp
|
|
24
|
+
FString distinctId = UTDAnalytics::GetDistinctId();
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### **1.2 Login**
|
|
28
|
+
When the users log in, `Login` could be called to set the account ID of the user. TE would use the account ID as the identity identification ID, and the account ID that has been set would be saved before `Logout` is called. The previous account ID would be replaced if `Login` has been called multiple times.
|
|
29
|
+
```cpp
|
|
30
|
+
// The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
|
|
31
|
+
UTDAnalytics::Login("TE");
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
<quote-container>
|
|
35
|
+
**Login events wouldn't be uploaded in this method.**
|
|
36
|
+
</quote-container>
|
|
37
|
+
|
|
38
|
+
### **1.3 Removing Account ID**
|
|
39
|
+
After the user logs out, `Logout` could be called to remove the account ID. The distinct ID would be used as the identity identification ID before the next time `Login` is called.
|
|
40
|
+
```java
|
|
41
|
+
UTDAnalytics::Logout();
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
It is recommended that you call logout upon explicit logout event. For example, call `Logout` when the user commits the behavior of canceling an account; do not call such a process when the App is closed.
|
|
45
|
+
<quote-container>
|
|
46
|
+
**Logout events wouldn't be uploaded in this method.**
|
|
47
|
+
</quote-container>
|
|
48
|
+
|
|
49
|
+
## **Sending Events**
|
|
50
|
+
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.
|
|
51
|
+
### **2.1 Ordinary Events**
|
|
52
|
+
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:
|
|
53
|
+
```cpp
|
|
54
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
55
|
+
Properties->SetStringField("product_name", "product name");
|
|
56
|
+
UTDAnalytics::Track("product_buy",Properties);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### **2.2 First Events**
|
|
60
|
+
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.
|
|
61
|
+
```cpp
|
|
62
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
63
|
+
Properties->SetStringField("key", "value");
|
|
64
|
+
UTDAnalytics::TrackFirst("device_activation",Properties);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
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:
|
|
68
|
+
```cpp
|
|
69
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
70
|
+
Properties->SetStringField("key", "value");
|
|
71
|
+
UTDAnalytics::TrackFirstWithId("account_activation", Properties,"TE");
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
<quote-container>
|
|
75
|
+
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.
|
|
76
|
+
</quote-container>
|
|
77
|
+
|
|
78
|
+
### **2.3 Updatable Events**
|
|
79
|
+
You can meet the requirements for event data modification under specific scenarios through Updatable Events. The ID of Updatable Events should be specified and uploaded when the objects of Updatable Events are created. TE would determine the data to be updated according to the event name and event ID.
|
|
80
|
+
```cpp
|
|
81
|
+
//The event property status is 3 after reporting, with the price being 100 TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
82
|
+
Properties->SetNumberField("status",3);
|
|
83
|
+
Properties->SetNumberField("price",100);
|
|
84
|
+
UTDAnalytics::TrackUpdate("UPDATABLE_EVENT", Properties,"test_event_id");
|
|
85
|
+
|
|
86
|
+
//The event property status is 5 after reporting, with the price remaining the same
|
|
87
|
+
TSharedPtr<FJsonObject> NewProperties = MakeShareable(new FJsonObject);
|
|
88
|
+
NewProperties->SetNumberField("status",5);
|
|
89
|
+
UTDAnalytics::TrackUpdate("UPDATABLE_EVENT",NewProperties,"test_event_id");
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### **2.4 Overwritable Events**
|
|
93
|
+
Despite the similarity with Updatable Events, Overwritable Events would replace all historical data with the latest data. Looking from the perspective of effect, such a process is equivalent to the behavior of deleting the previous data while putting the latest data in storage. TE would determine the data to be updated according to the event name and event ID.
|
|
94
|
+
```cpp
|
|
95
|
+
//The event property status is 3 after reporting, with the price being 100 TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject); TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
96
|
+
Properties->SetNumberField("status",3);
|
|
97
|
+
Properties->SetNumberField("price",100);
|
|
98
|
+
UTDAnalytics::TrackOverwrite("OVERWRITE_EVENT", Properties,"test_event_id");
|
|
99
|
+
|
|
100
|
+
//The event property status is 5 after reporting, with the price remaining the same
|
|
101
|
+
TSharedPtr<FJsonObject> NewProperties = MakeShareable(new FJsonObject);
|
|
102
|
+
NewProperties->SetNumberField("status",5);
|
|
103
|
+
UTDAnalytics::TrackOverwrite("OVERWRITE_EVENT",NewProperties,"test_event_id")
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### **2.5 Super Properties**
|
|
107
|
+
Super Properties refer to properties that would be uploaded by each event. Super Properties could be divided into `static super properties` and `dynamic super properties`based on the update frequency. You can select different methods for super property setting according to business requirements; we recommend that you set Super Properties first before sending events. In the same event, when the keys of Super Properties, self-defined event properties, and preset properties are the same, we would assign value according to the following priority: `self-defined properties>dynamic super properties>static super properties>preset properties`.
|
|
108
|
+
#### **2.5.1 Static Super Properties**
|
|
109
|
+
Static Super Properties are properties that all events might have and would change with a low frequency, for example, the user membership class. After setting static Super Properties through `SetSuperProperties`, SDK would use the preset Super Properties as the event properties when tracking events.
|
|
110
|
+
```cpp
|
|
111
|
+
TSharedPtr<FJsonObject> SuperProperties = MakeShareable(new FJsonObject);
|
|
112
|
+
SuperProperties->SetNumberField("vip_level",2);
|
|
113
|
+
UTDAnalytics::SetSuperProperties(SuperProperties);
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Static Super Properties would be saved in local storage, and should not be called every time the App is closed. If such properties already exist, the reset properties would replace the original properties. If such properties do not exist, properties would be newly created. In addition to property setting, we also provide other APIs to set and manage Static Super Properties and meet general business requirements.
|
|
117
|
+
```cpp
|
|
118
|
+
//get all certain super properties
|
|
119
|
+
TSharedPtr<FJsonObject> SuperProperties = UTDAnalytics::GetSuperProperties();
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### **2.5.2 Dynamic Super Properties**
|
|
123
|
+
Dynamic Super Properties that all events might have and would change with a high frequency, for example, the quantity of the gold coins the user possesses. After setting dynamic Super Properties
|
|
124
|
+
|
|
125
|
+
through `SetDynamicSuperPropertiesTracker`, SDK would obtain the properties in event tracking automatically, and add such properties to the event triggered.
|
|
126
|
+
```cpp
|
|
127
|
+
static FString TDReturnDyldParams() {
|
|
128
|
+
return "{\"dyld_property1\":\"value1\",\"dyld_property2\":\"value2\"}";
|
|
129
|
+
}
|
|
130
|
+
void UMyDemoWidget::callSetDynamicSuperPropertiesFunction(){
|
|
131
|
+
// since V1.5.0
|
|
132
|
+
UTDAnalytics::dynamicPropertiesMap.insert(pair<FString,FString(*)(void)>("inset your appid" ,&TDReturnDyldParams));
|
|
133
|
+
// since V1.5.0
|
|
134
|
+
UTDAnalytics::SetDynamicSuperProperties(this, &UMyDemoWidget::TDReturnDyldParams, "your appid");
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### **2.6 Timing Events**
|
|
139
|
+
If you need to record the duration of a certain event, you can call `TimeEvent` . Configure the name of the event you want to record. When you upload the event, `#duration` would be added to your event property automatically to record the duration of the event (Unit: second). It should be noted that only one task can be timed with the same event name.
|
|
140
|
+
```cpp
|
|
141
|
+
//The following instance has recorded the time the user spent on a certain product page
|
|
142
|
+
UTDAnalytics::TimeEvent("stay_shop");
|
|
143
|
+
/**do someting
|
|
144
|
+
.......
|
|
145
|
+
**/
|
|
146
|
+
//the timing would end when the user leaves the product page. "stay_shop" event would carry#duration, a property representing event duration.
|
|
147
|
+
UTDAnalytics::Track("stay_shop", "");
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
<quote-container>
|
|
152
|
+
Note: Windows/MacOS does not currently support recording event duration.
|
|
153
|
+
</quote-container>
|
|
154
|
+
|
|
155
|
+
## **3. User Properties**
|
|
156
|
+
User property setting APIs supported by TE include: `UserSet,UserSetOnce`,`UserAdd`,`UserUnset`,`UserDelete`,`UserAppend`,`UserUniqAppend`.
|
|
157
|
+
### 3.1 UserSet
|
|
158
|
+
You can call `UserSet` to set general user properties. The original properties would be replaced if the properties uploaded via the API are used. The type of newly-created user properties must conform to that of the uploaded properties. User name setting is taken as the example here:
|
|
159
|
+
```cpp
|
|
160
|
+
//the username now is TA
|
|
161
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
162
|
+
Properties->SetStringField("user_name", "TA");
|
|
163
|
+
UTDAnalytics::UserSet(Properties);
|
|
164
|
+
//the username now is TE
|
|
165
|
+
TSharedPtr<FJsonObject> NewProperties = MakeShareable(new FJsonObject);
|
|
166
|
+
NewProperties->SetStringField("user_name", "TE");
|
|
167
|
+
UTDAnalytics::UserSet(NewProperties);
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 3.2 UserSetOnce
|
|
171
|
+
If the user property you want to upload only needs to be set once, you can call `UserSetOnce` to set the property. If such property had been set before, this message would be ignored. Let's take the setting of the first payment time as an example:
|
|
172
|
+
```cpp
|
|
173
|
+
//first_payment_time is 2018-01-01 01:23:45.678
|
|
174
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
175
|
+
Properties->SetStringField("first_payment_time","2018-01-01 01:23:45.678");
|
|
176
|
+
UTDAnalytics::UserSetOnce(Properties);
|
|
177
|
+
//first_payment_time is still 2018-01-01 01:23:45.678
|
|
178
|
+
TSharedPtr<FJsonObject> NewProperties = MakeShareable(new FJsonObject);
|
|
179
|
+
NewProperties->SetStringField("first_payment_time","2018-12-31 01:23:45.678");
|
|
180
|
+
UTDAnalytics::UserSetOnce(NewProperties);
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 3.3 UserAdd
|
|
184
|
+
When you want to upload numeric attributes for cumulative operation, you can call `UserAdd`.
|
|
185
|
+
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:
|
|
186
|
+
```cpp
|
|
187
|
+
//in this case, the total_revenue is 30
|
|
188
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
189
|
+
Properties->SetNumberField("total_revenue",30);
|
|
190
|
+
UTDAnalytics::UserAdd(Properties);
|
|
191
|
+
//in this case, the total_revenue is 678
|
|
192
|
+
TSharedPtr<FJsonObject> NewProperties = MakeShareable(new FJsonObject);
|
|
193
|
+
NewProperties->SetNumberField("total_revenue",648);
|
|
194
|
+
UTDAnalytics::UserAdd(NewProperties);
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
<quote-container>
|
|
198
|
+
The set attribute key is a string, and the Value is only allowed to be a numeric value.
|
|
199
|
+
</quote-container>
|
|
200
|
+
|
|
201
|
+
### 3.4 UserDelete
|
|
202
|
+
You can call `UserDelete` to delete a user. After deleting the user, you would no longer be able to inquire about its user property, but could still query the events data triggered by the user.
|
|
203
|
+
```cpp
|
|
204
|
+
UTDAnalytics::UserDelete();
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 3.5 UserUnset
|
|
208
|
+
When you need to clear the user properties of users, you can call `UserUnset` to clear specific properties. `UserUnset` would not create properties that have not been created in the cluster.
|
|
209
|
+
```cpp
|
|
210
|
+
UTDAnalytics::UserUnset("userPropertyName");
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 3.6 UserAppend
|
|
214
|
+
You can call `UserAppend` to add user properties of array type.
|
|
215
|
+
```cpp
|
|
216
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
217
|
+
TArray< TSharedPtr<FJsonValue> > DataArray;
|
|
218
|
+
DataArray.Add(MakeShareable(new FJsonValueString("apple")));
|
|
219
|
+
DataArray.Add(MakeShareable(new FJsonValueString("ball")));
|
|
220
|
+
Properties->SetArrayField("user_list", DataArray);
|
|
221
|
+
UTDAnalytics::UserAppend(Properties);
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 3.7 UserUniqAppend
|
|
225
|
+
You can call `UserUniqueAppend` to add user properties of array type. You can delete duplicated user property by calling `UserUniqueAppend` interface. If you call `UserAppend` API, duplicated user property will be merged.
|
|
226
|
+
```cpp
|
|
227
|
+
// list is the value of user property user_list, JSONArray type
|
|
228
|
+
//in this case, the property value of user_list is ["apple","ball"]
|
|
229
|
+
TSharedPtr<FJsonObject> Properties = MakeShareable(new FJsonObject);
|
|
230
|
+
TArray< TSharedPtr<FJsonValue> > DataArray;
|
|
231
|
+
DataArray.Add(MakeShareable(new FJsonValueString("apple")));
|
|
232
|
+
DataArray.Add(MakeShareable(new FJsonValueString("ball")));
|
|
233
|
+
Properties->SetArrayField("user_list", DataArray);
|
|
234
|
+
UTDAnalytics::UserAppend(Properties);
|
|
235
|
+
|
|
236
|
+
//in this case, the property value of user_list is ["apple","apple","ball","cube"]
|
|
237
|
+
TSharedPtr<FJsonObject> Properties1 = MakeShareable(new FJsonObject);
|
|
238
|
+
TArray< TSharedPtr<FJsonValue> > DataArray1;
|
|
239
|
+
DataArray1.Add(MakeShareable(new FJsonValueString("apple")));
|
|
240
|
+
DataArray1.Add(MakeShareable(new FJsonValueString("cube")));
|
|
241
|
+
Properties->SetArrayField("user_list", DataArray1);
|
|
242
|
+
UTDAnalytics::UserAppend(Properties1);
|
|
243
|
+
|
|
244
|
+
//in this case, the property value of user_list is ["apple","ball","cube"]
|
|
245
|
+
UTDAnalytics::UserUniqueAppend(Properties1);
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## **4. Other**
|
|
249
|
+
### **4.1 ****Device ID**
|
|
250
|
+
You can call `GetDeviceId` to obtain the device ID:
|
|
251
|
+
```cpp
|
|
252
|
+
FString deviceId = UTDAnalytics::GetDeviceId();
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### **4.2 Time Calibration**
|
|
256
|
+
SDK would use local time as the event time by default. If the user modifies the device time manually, analysis would be affected. At this time, time calibration could be performed to ensure the accuracy of event time. We provide two time calibration methods: `timestamp` and `NTP` .
|
|
257
|
+
- You can use the current timestamp obtained from the server to calibrate the time of SDK. Thereafter, all calling operations not assigned with a specific time would use the calibrated time as the occurrence time, including event data and user property setting.
|
|
258
|
+
```java
|
|
259
|
+
// 1585633785954 is the current unix time stamp, with the unit being millisecond; the corresponding Beijing time is 2020-03-31 13:49:45
|
|
260
|
+
UTDAnalytics::CalibrateTime(1585633785954);
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
- You can also set the address of NTP server, after which SDK would try to obtain the current time from the uploaded NTP server address and calibrate the SDK time. If you failed to obtain the current return results within the default timeout interval (3s), local time would be used to track data.
|
|
264
|
+
```java
|
|
265
|
+
//use the NTP service of Apple Inc for time calibration
|
|
266
|
+
UTDAnalytics::CalibrateTimeWithNtp("time.apple.com");
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
<quote-container>
|
|
270
|
+
1. Time calibration may fail due to unstable NTP server. It is suggested that you use a time stamp for time calibration as the priority
|
|
271
|
+
2. You should select your NTP server address carefully to ensure that the device of the user could obtain server time rapidly under sound network conditions
|
|
272
|
+
</quote-container>
|
|
273
|
+
|
|
274
|
+
### 4.3 Flush
|
|
275
|
+
You can call the `Flush` API to report data to TE immediately .
|
|
276
|
+
```javascript
|
|
277
|
+
UTDAnalytics::Flush();
|
|
278
|
+
```
|