@thinkingai/ae-cli 1.0.30 → 6.0.16-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{auth-U25QJU5D.js → auth-DYC2BGLM.js} +2 -3
- package/dist/{auth-H3GJD55A.js → auth-GHBMJ5ZR.js} +33 -17
- package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
- package/dist/{chunk-SF3KTPIC.js → chunk-5OC7CYCG.js} +2 -2
- package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
- package/dist/{chunk-I42JGQ2J.js → chunk-BJX3GXWC.js} +3 -5
- package/dist/{chunk-GLNZSDKO.js → chunk-DMMEPCST.js} +4 -6
- package/dist/{chunk-VJFUB3H3.js → chunk-I5CRVM2S.js} +3 -3
- package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
- package/dist/{chunk-JM34JPCO.js → chunk-RSHMZ3LG.js} +178 -4
- package/dist/{client-IN42F223.js → client-2UJ63MVQ.js} +3 -4
- package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
- package/dist/index.js +2530 -28
- package/dist/{model-VZCYNIOG.js → model-SJSOZTRS.js} +2 -2
- package/dist/{raw-WJIWC6YP.js → raw-7NVWSVJP.js} +5 -7
- package/dist/{sync-NVASAISS.js → sync-GRVO4K3U.js} +3 -3
- package/dist/{te-agent-YV4DXEXK.js → te-agent-KZRIEN4N.js} +468 -46
- package/dist/{te-analysis-CB3DA5I5.js → te-analysis-VAR4KUOK.js} +144 -29
- package/dist/{te-audience-W7SCQFC7.js → te-audience-KMKYI2YJ.js} +22 -15
- package/dist/{te-common-FBXVWBSI.js → te-common-WNCZB7R7.js} +4 -5
- package/dist/{te-community-LNVDZSGW.js → te-community-JEEFXPB3.js} +10 -11
- package/dist/{te-dataops-IPCSSWYH.js → te-dataops-GD3XBYCS.js} +11 -12
- package/dist/{te-engage-KARARMIR.js → te-engage-4XHCTS6I.js} +4 -5
- package/dist/{te-kb-2Z2CARN3.js → te-kb-B62KFP2A.js} +96 -8
- package/dist/{te-meta-PDKLMWXN.js → te-meta-EPZGQN56.js} +9 -10
- package/dist/{te-team-SW5B7DHO.js → te-team-YY24VORI.js} +6 -7
- package/dist/tracking/i18n/resources/cli/en.json +153 -0
- package/dist/tracking/i18n/resources/cli/ja.json +153 -0
- package/dist/tracking/i18n/resources/cli/ko.json +153 -0
- package/dist/tracking/i18n/resources/cli/zh.json +153 -0
- package/package.json +9 -3
- package/skills/ae-agent/SKILL.md +65 -25
- package/skills/ae-analysis/SKILL.md +108 -8
- package/skills/ae-analysis/references/cancel_query.md +39 -0
- package/skills/ae-analysis/references/drilldown_user_events.md +4 -2
- package/skills/ae-analysis/references/drilldown_users.md +4 -2
- package/skills/ae-analysis/references/get_bi_panel_detail.md +35 -0
- package/skills/ae-analysis/references/list_alerts.md +1 -1
- package/skills/ae-analysis/references/list_bi_panels.md +35 -0
- package/skills/ae-analysis/references/list_cluster_members.md +4 -1
- package/skills/ae-analysis/references/list_dashboards.md +1 -1
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/list_events.md +1 -1
- package/skills/ae-analysis/references/list_metrics.md +1 -1
- package/skills/ae-analysis/references/list_project_mark_times.md +1 -1
- package/skills/ae-analysis/references/list_properties.md +1 -1
- package/skills/ae-analysis/references/list_public_access_links.md +1 -1
- package/skills/ae-analysis/references/list_reports.md +1 -1
- package/skills/ae-analysis/references/list_tag_members.md +4 -1
- package/skills/ae-analysis/references/query_adhoc.md +6 -5
- package/skills/ae-analysis/references/query_bi_panel_data.md +58 -0
- package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -1
- package/skills/ae-analysis/references/query_entity_details.md +5 -2
- package/skills/ae-analysis/references/query_event_details.md +4 -1
- package/skills/ae-analysis/references/query_report_data.md +2 -2
- package/skills/ae-analysis-global/SKILL.md +3 -1
- package/skills/ae-analysis-intent/SKILL.md +132 -0
- package/skills/ae-data-integration-helper/SKILL.md +242 -0
- package/skills/ae-data-integration-helper/references/android_sdk_faq.md +179 -0
- package/skills/ae-data-integration-helper/references/c_sdk_compilation.md +83 -0
- package/skills/ae-data-integration-helper/references/c_sdk_faq.md +416 -0
- package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +123 -0
- package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +365 -0
- package/skills/ae-data-integration-helper/references/index.md +56 -0
- package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/java_sdk_faq.md +406 -0
- package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +129 -0
- package/skills/ae-data-integration-helper/references/logbus2_guide.md +309 -0
- package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +348 -0
- package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +115 -0
- package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/python_sdk_faq.md +232 -0
- package/skills/ae-data-integration-helper/references/restful_api_notes.md +74 -0
- package/skills/ae-data-integration-helper/references/sdk_log_guide.md +316 -0
- package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +107 -0
- package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +115 -0
- package/skills/ae-generate-tracking-code/SKILL.md +629 -0
- package/skills/ae-generate-tracking-code/references/autotrack-enum.md +183 -0
- package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +202 -0
- package/skills/ae-generate-tracking-code/references/datax-config.md +43 -0
- package/skills/ae-generate-tracking-code/references/debug-script.md +102 -0
- package/skills/ae-generate-tracking-code/references/logbus-config.md +200 -0
- package/skills/ae-generate-tracking-code/references/modes.md +83 -0
- package/skills/ae-generate-tracking-code/references/restful-call.md +36 -0
- package/skills/ae-generate-tracking-code/references/sdk-index.md +128 -0
- package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +206 -0
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +394 -0
- package/skills/ae-generate-tracking-code/references/te-api.md +181 -0
- package/skills/ae-generate-tracking-plan/SKILL.md +1083 -0
- package/skills/ae-generate-tracking-plan/references/autotrack-events.md +273 -0
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +425 -0
- package/skills/ae-generate-tracking-plan/references/te-api.md +100 -0
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +152 -0
- package/skills/ae-kb/SKILL.md +38 -5
- package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +104 -0
- package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +117 -0
- package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +72 -0
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +86 -0
- package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +80 -0
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.md" +40 -0
- package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.xlsx +0 -0
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.md +40 -0
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.xlsx +0 -0
- package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +92 -0
- package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
- package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.md +130 -0
- package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.xlsx +0 -0
- package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +52 -0
- package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +68 -0
- package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.md +108 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.xlsx +0 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +63 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +101 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +84 -0
- package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +79 -0
- package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +105 -0
- package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +83 -0
- package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/wiki/te-docs/index.md +225 -0
- package/wiki/te-docs/raw/advanced-data-type/first-event-check.md +66 -0
- package/wiki/te-docs/raw/advanced-data-type/updated-event.md +87 -0
- package/wiki/te-docs/raw/advanced-data-type.md +16 -0
- package/wiki/te-docs/raw/data-ingestion-guide/about-gdpr.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/automatic-event-tracking.md +431 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/multi-instance.md +66 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/preset-properties.md +466 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/third-party-integration.md +127 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced.md +513 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android.md +228 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/c-advanced.md +419 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c.md +110 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/client-side-sdk-faq.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/cpp-advanced.md +366 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/release-notes.md +103 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp.md +201 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/automatically-track-events.md +117 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/preset-properties.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced.md +267 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/release-notes.md +82 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter.md +139 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/automatically-track-events.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/debugging-and-logging.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/preset-properties.md +18 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced.md +305 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/release-notes.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native.md +137 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/release-notes.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/automatically-track-events.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/debugging-and-logging.md +53 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/multi-instance.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/preset-properties.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/support-native.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced.md +331 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app.md +156 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform.md +12 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/multi-instance.md +21 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/preset-properties.md +249 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced.md +301 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x.md +281 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/automatic-event-tracking.md +70 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/debugging-and-logging.md +57 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/native-support.md +104 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/preset-properties.md +91 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance.md +374 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/compliance.md +35 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/release-notes.md +109 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator.md +170 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/compliance.md +28 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/debugging-and-logging.md +58 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/preset-properties.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md +204 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/release-notes.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona.md +269 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/automatic-event-tracking.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/native-pluggable.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/preset-properties.md +212 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/third-party-integration.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced.md +396 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity.md +176 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/release-notes.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/automatic-event-tracking.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/debugging-and-logging.md +31 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/preset-properties.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/third-party-integrations.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal.md +190 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine.md +14 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/h5-and-app-sdk-connection.md +147 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/instant-app-and-game.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/automatic-event-tracking.md +272 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/debugging-and-logging.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/multi-instance.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/preset-properties.md +484 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/third-party-integrations.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced.md +682 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/release-notes.md +163 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios.md +304 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/compliance.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/automatic-event-tracking.md +136 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/debugging-and-logging.md +48 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/preset-properties.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced.md +462 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/release-notes.md +107 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript.md +208 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/debugging-and-logging.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/preset-properties.md +118 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced.md +556 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos.md +231 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md +610 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md +1215 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools.md +15 -0
- package/wiki/te-docs/raw/data-ingestion-guide/privacy-policy.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/restful-api-user-guide.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-FM9Cwz.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-RSyfw7.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging.md +89 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-OxzWw.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-VuE3wr.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-IauKwI.md +175 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-YAilwk.md +210 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced.md +211 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-PVazwa.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-TADbwY.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes.md +69 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-V2W3wv.md +131 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-Zf9Jwl.md +179 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/debugging-and-logging.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced.md +113 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/release-notes.md +34 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/debugging-and-logging.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced.md +157 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/release-notes.md +72 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang.md +148 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced.md +223 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/release-notes.md +88 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java.md +174 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/debugging-and-logging.md +46 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced.md +182 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/release-notes.md +61 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/debugging-and-logging.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced.md +225 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/debugging-and-logging.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced.md +216 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php.md +173 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/debugging-and-logging.md +40 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced.md +206 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python.md +116 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/release-notes.md +44 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk.md +22 -0
- package/wiki/te-docs/raw/data-ingestion-guide/thinkingdata-privacy-policy.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide.md +48 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/data-rules.md +396 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/preset-properties-and-system-fields.md +957 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/user-identification-rules.md +723 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion.md +203 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//345/220/210/350/247/204/346/214/207/345/215/227.md +96 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//346/233/264/346/226/260/346/227/245/345/277/227.md +97 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +52 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +447 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227.md +370 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +172 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//346/233/264/346/226/260/346/227/245/345/277/227.md +209 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +71 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +49 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +125 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +498 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227.md +612 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217.md +373 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//345/220/210/350/247/204/346/214/207/345/215/227.md +26 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//346/233/264/346/226/260/346/227/245/345/277/227.md +32 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +30 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +61 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227.md +236 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua.md +200 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//346/233/264/346/226/260/346/227/245/345/277/227.md +83 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +66 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +62 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +358 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227.md +615 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret.md +166 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//346/233/264/346/226/260/346/227/245/345/277/227.md +87 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +71 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +61 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +406 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227.md +597 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair.md +179 -0
- package/wiki/te-docs/schema.md +16 -0
- package/wiki/te-docs/synthesis/batch-ingest-comparison.md +324 -0
- package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +538 -0
- package/wiki/te-docs/synthesis/restful-api-reference.md +363 -0
- package/wiki/te-docs/synthesis/sdk-selection.md +372 -0
- package/wiki/te-docs/synthesis/server-sdk-overview.md +449 -0
- package/dist/chunk-U6TKB3IV.js +0 -171
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: corona_sdk_compliance
|
|
3
|
+
name: "Compliance"
|
|
4
|
+
wikiToken: Tt0Awcm2biW6LYkDB7NcLOfynEb
|
|
5
|
+
parentWikiToken: QjOXwKuZFiw4JLk477Fcuzmnnnb
|
|
6
|
+
updateTime: 1774249160000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=corona_sdk_compliance
|
|
8
|
+
---
|
|
9
|
+
## **1. Filling out SDK-related Contents in The Privacy Policy**
|
|
10
|
+
### **1.1 Collecting and Acquiring Data**
|
|
11
|
+
The following content is suggested to fill out in accordance with the actual conditions in the column of collecting and acquiring your personal data in the *Privacy Policy*.
|
|
12
|
+
When you activate and use the APP, we would collect information about your device (including IDFV, AndroidID, OS, device model, device manufacturer, system version, application process information, etc.) through TDAnalytics-SDK to analyze the effect you achieved by using the App via statistics.
|
|
13
|
+
### **1.2 Sharing with authorized partners**
|
|
14
|
+
The following content is suggested to fill out in accordance with the actual conditions in the column of sharing with authorized partners in the *Privacy Policy*.
|
|
15
|
+
TDAnalytics-SDK: collect information about your device (including IDFV, AndroidID, OS, device model, device manufacturer, system version, application process information, etc.) and your network information to perform data analysis ,so as to improve our products and services
|
|
16
|
+
## **2. ****SDK**** Compliance Steps**
|
|
17
|
+
ThinkingData SDK needs to be initialized after the user agrees with the *Privacy Policy.*
|
|
18
|
+
```lua
|
|
19
|
+
local TDAnalytics = require("TDAnalytics")
|
|
20
|
+
-- determine whether to enable data tracking according to the Privacy Policy
|
|
21
|
+
if (authorized) {
|
|
22
|
+
local params = {
|
|
23
|
+
appId = "YOUR_APP_ID",
|
|
24
|
+
serverUrl = "YOUR_SERVER_URL"
|
|
25
|
+
}
|
|
26
|
+
TDAnalytics.init(params)
|
|
27
|
+
}
|
|
28
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: corona_sdk_autotrack
|
|
3
|
+
name: "Automatic Event Tracking"
|
|
4
|
+
wikiToken: QsdxwfT04iDDK8kNLAEc6z5YnRb
|
|
5
|
+
parentWikiToken: VgpBwhQ5aiThtUklu2Gc60vnngg
|
|
6
|
+
updateTime: 1774249154000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=corona_sdk_autotrack
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Corona SDK Automatic Event Tracking events including installation, open, close.
|
|
11
|
+
- `appInstall`: behavior of APP installation
|
|
12
|
+
- `appStart`: Open APP, including activiting APP and resuming APP from the background
|
|
13
|
+
- `appEnd`: Close APP, including disabling the APP and calling in the background while tracking the duration of the enabling process
|
|
14
|
+
You can enable auto-tracking during initialization
|
|
15
|
+
```lua
|
|
16
|
+
-- enable auto-tracking
|
|
17
|
+
local params = {
|
|
18
|
+
appId = "YOUR_APP_ID",
|
|
19
|
+
serverUrl = "YOUR_SERVER_URL",
|
|
20
|
+
autoTrack = {
|
|
21
|
+
"appStart", "appEnd", "appInstall"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
TDAnalytics.init( params )
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
<quote-container>
|
|
28
|
+
Note: If you need to set distinct ID, please call `setDistinctId` before enabling auto-tracking.
|
|
29
|
+
</quote-container>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: corona_sdk_debug
|
|
3
|
+
name: "Debugging and Logging"
|
|
4
|
+
wikiToken: KD2swm89oihx9jkaOtWc3tbHnLc
|
|
5
|
+
parentWikiToken: VgpBwhQ5aiThtUklu2Gc60vnngg
|
|
6
|
+
updateTime: 1774251986000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=corona_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
|
+
```lua
|
|
13
|
+
-- enable printing logs
|
|
14
|
+
local params = {
|
|
15
|
+
appId = "YOUR_APP_ID",
|
|
16
|
+
serverUrl = "YOUR_SERVER_URL",
|
|
17
|
+
enableLog = true, -- true:enable printing logs, false:disable printing logs
|
|
18
|
+
}
|
|
19
|
+
-- initialize SDK
|
|
20
|
+
TDAnalytics.init( params )
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
<quote-container>
|
|
24
|
+
After opening the log, you can check data tracking of SDK by filtering logs related to ThinkingData in IDE.
|
|
25
|
+
</quote-container>
|
|
26
|
+
|
|
27
|
+
## **2. Debugging**
|
|
28
|
+
You need to follow the following two steps to enable the Debug mode:
|
|
29
|
+
2. Enable the debug mode at the client side
|
|
30
|
+
The sample code for enabling the Debug mode on the client side is as follows:
|
|
31
|
+
```lua
|
|
32
|
+
--[[
|
|
33
|
+
Set the operation mode as the Debug mode
|
|
34
|
+
normal mode: the data would be saved in caches and reported according to relevant cache policies under the NORMAL mode by default. It is recommended to use the mode in an online environment
|
|
35
|
+
debug mode: report data item by item. If problems occur, the user would be notified with logs and anomalies. It is recommended to use the Debug mode in an online environment
|
|
36
|
+
debugOnly mode: data would be verified without being stored; it is not recommended to use the DebugOnly mode in an online environment
|
|
37
|
+
]]--
|
|
38
|
+
local params = {
|
|
39
|
+
appId = "YOUR_APP_ID",
|
|
40
|
+
serverUrl = "YOUR_SERVER_URL",
|
|
41
|
+
debugMode = "debug", -- normal, debug, debugOnly
|
|
42
|
+
}
|
|
43
|
+
-- initialize SDK
|
|
44
|
+
TDAnalytics.init( params )
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
3. Add Device
|
|
48
|
+
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.
|
|
49
|
+
<image token="AjpSb0APLolIhhxsLmgcx1ZunRb" width="2782" height="1284" align="left"/>
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
Device ID could be obtained by the following three means:
|
|
53
|
+
- #Device_id property in the event data of TE
|
|
54
|
+
- Client-side log: DeviceID would be printed as log after SDK is initialized
|
|
55
|
+
- Call API:[Device ID](https://thinkingdata.feishu.cn/wiki/VgpBwhQ5aiThtUklu2Gc60vnngg)
|
|
56
|
+
<quote-container>
|
|
57
|
+
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.
|
|
58
|
+
</quote-container>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: corona_sdk_preset_properties
|
|
3
|
+
name: "Preset Properties"
|
|
4
|
+
wikiToken: C2SDwUKQ2iYFz9kgSDnc1U8yntc
|
|
5
|
+
parentWikiToken: VgpBwhQ5aiThtUklu2Gc60vnngg
|
|
6
|
+
updateTime: 1774251987000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=corona_sdk_preset_properties
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<quote-container>
|
|
11
|
+
Preset Properties will have differences on different platforms, for details: [Android](https://thinkingdata.feishu.cn/wiki/MBnZwHrO0ibkd9ksCSBc7dxEnic), [iOS](https://thinkingdata.feishu.cn/wiki/Ny61w1VIbi5Qeok94fRcJhulned).
|
|
12
|
+
</quote-container>
|
|
13
|
+
|
|
14
|
+
### **1. Getting Preset Properties**
|
|
15
|
+
If you need to use the preset properties of the client SDK when tracking events on the server, then you can use `getPresetProperties` to get these properties and upload them to the server.
|
|
16
|
+
```lua
|
|
17
|
+
-- get preset properties object
|
|
18
|
+
TDAnalytics.getPresetProperties( function (ret)
|
|
19
|
+
local presetProperties = ret
|
|
20
|
+
print( "current presetProperties = " .. presetProperties )
|
|
21
|
+
end )
|
|
22
|
+
--[[
|
|
23
|
+
{
|
|
24
|
+
"#carrier": "T-Mobile", -- information about operator of the SIM card. Operation information of the primary card should be got under dual-card dual-standby mode
|
|
25
|
+
"#os": "Android", -- device os name, e.g., Android, iOS
|
|
26
|
+
"#device_id": "abb8e87bfb5ce66c", -- device ID
|
|
27
|
+
"#screen_height": 2264, -- screen height
|
|
28
|
+
"#screen_width": 1080, -- screen height
|
|
29
|
+
"#bundle_id": "com.sw.thinkingdatademo", -- bundle ID
|
|
30
|
+
"#manufacturer": "realme", -- device manufacturer, e.g. HuaWei
|
|
31
|
+
"#device_model": "RMX1991", -- device model
|
|
32
|
+
"#system_language": "zh", -- system language
|
|
33
|
+
"#os_version": "10", -- os version
|
|
34
|
+
"#network_type": "WIFI", -- network type
|
|
35
|
+
"#zone_offset": 8, -- time zone offset
|
|
36
|
+
"#app_version":"1.0" -- APP version
|
|
37
|
+
}
|
|
38
|
+
]]--
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
<quote-container>
|
|
42
|
+
IP, nation and city information are parsed and generated by the server. The client shall not provide the api to get such properties
|
|
43
|
+
</quote-container>
|
package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: corona_sdk_advanced
|
|
3
|
+
name: "Corona-Advanced"
|
|
4
|
+
wikiToken: VgpBwhQ5aiThtUklu2Gc60vnngg
|
|
5
|
+
parentWikiToken: QjOXwKuZFiw4JLk477Fcuzmnnnb
|
|
6
|
+
updateTime: 1774251985000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=corona_sdk_advanced
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## **1. Managing User Identity**
|
|
11
|
+
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.
|
|
12
|
+
### **1.1. Identify**
|
|
13
|
+
::: tip
|
|
14
|
+
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.
|
|
15
|
+
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.
|
|
16
|
+
:::
|
|
17
|
+
If your App has its own distinct ID management system for each user, you can call `setDistinctId` to set the distinct ID:
|
|
18
|
+
```lua
|
|
19
|
+
-- set distinct ID as Thinker
|
|
20
|
+
TDAnalytics.setDistinctId("Thinker");
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If you need to obtain the current distinct ID, please call `getDistinctId`:
|
|
24
|
+
```lua
|
|
25
|
+
-- returns distinct ID
|
|
26
|
+
TDAnalytics.getDistinctId( function (ret)
|
|
27
|
+
print( "distinctId = " .. ret )
|
|
28
|
+
end )
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### **1.2 Login**
|
|
32
|
+
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.
|
|
33
|
+
```lua
|
|
34
|
+
-- The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
|
|
35
|
+
TDAnalytics.login("TE");
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
<quote-container>
|
|
39
|
+
Note: Login events wouldn't be uploaded in this method.
|
|
40
|
+
</quote-container>
|
|
41
|
+
|
|
42
|
+
### **1.3 Removing Account ID**
|
|
43
|
+
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.
|
|
44
|
+
```lua
|
|
45
|
+
TDAnalytics.logout();
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
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.
|
|
49
|
+
<quote-container>
|
|
50
|
+
**Logout events wouldn't be uploaded in this method.**
|
|
51
|
+
</quote-container>
|
|
52
|
+
|
|
53
|
+
## **2. Sending Events**
|
|
54
|
+
After SDK is initialized, you can track users behaviour data. In general, ordinary events could meet business requirements. You can also use the First/Updatable Event based on your own service scenario.
|
|
55
|
+
### **2.1 Ordinary Events**
|
|
56
|
+
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:
|
|
57
|
+
```lua
|
|
58
|
+
local properties = { product_name="product name"}
|
|
59
|
+
TDAnalytics.track("product_buy", properties)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### **2.2 First Events**
|
|
63
|
+
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.
|
|
64
|
+
```lua
|
|
65
|
+
TDAnalytics.trackFirst("device_activation", {test_string="first_string"})
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
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:
|
|
69
|
+
```lua
|
|
70
|
+
-- set the user ID as the first_check_id of the first event to track the first initialization event of the user.
|
|
71
|
+
TDAnalytics.trackFirst("account_activation", {test_string="first_string"} , "TA")
|
|
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
|
+
```lua
|
|
81
|
+
-- The event property status is 3 after reporting, with the price being 100
|
|
82
|
+
TDAnalytics.trackUpdate("UPDATABLE_EVENT", {
|
|
83
|
+
status = 3,
|
|
84
|
+
price = 100
|
|
85
|
+
}, "Update_EventId")
|
|
86
|
+
|
|
87
|
+
-- The event property status is 5 after reporting, with the price remaining the same
|
|
88
|
+
TDAnalytics.trackUpdate("UPDATABLE_EVENT", {
|
|
89
|
+
status = 5
|
|
90
|
+
}, "Update_EventId")
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### **2.4 Overwritable Events**
|
|
94
|
+
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.
|
|
95
|
+
```lua
|
|
96
|
+
-- The event property status is 3 after reporting, with the price being 100
|
|
97
|
+
TDAnalytics.trackOverwrite("OVERWRITABLE_EVENT", {
|
|
98
|
+
status = 3,
|
|
99
|
+
price = 100
|
|
100
|
+
}, "Overwrite_EventId")
|
|
101
|
+
|
|
102
|
+
-- The event property status is 5 after reporting, with the price deleted
|
|
103
|
+
TDAnalytics.trackOverwrite("OVERWRITABLE_EVENT", {
|
|
104
|
+
status = 5
|
|
105
|
+
}, "Overwrite_EventId")
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### **2.5 Super Properties**
|
|
109
|
+
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>static super properties>preset properties`.
|
|
110
|
+
#### **2.5.1 Static Super Properties**
|
|
111
|
+
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.
|
|
112
|
+
```lua
|
|
113
|
+
-- set super properties
|
|
114
|
+
TDAnalytics.setSuperProperties({vip_level = 2})
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
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.
|
|
118
|
+
```lua
|
|
119
|
+
-- clear a super property named 'Channel'
|
|
120
|
+
TDAnalytics.unsetSuperProperties("Channel")
|
|
121
|
+
-- clear all super properties
|
|
122
|
+
TDAnalytics.clearSuperProperties()
|
|
123
|
+
-- get all super properties
|
|
124
|
+
TDAnalytics.getSuperProperties( function (ret)
|
|
125
|
+
local superProperties = ret
|
|
126
|
+
print( "current superProperties = " .. superProperties )
|
|
127
|
+
end )
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### **2.6 Timing Events**
|
|
131
|
+
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.
|
|
132
|
+
```lua
|
|
133
|
+
-- The following instance has recorded the time the user spent on a certain product page
|
|
134
|
+
-- The user enters the product page and starts the timing
|
|
135
|
+
TDAnalytics.timeEvent("stay_shop")
|
|
136
|
+
-- do some thing...
|
|
137
|
+
-- the timing would end when the user leaves the product page. "stay_shop" event would carry#duration, a property representing event duration.
|
|
138
|
+
TDAnalytics.track("stay_shop", {})
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## **3. User Properties**
|
|
142
|
+
User property setting APIs supported by TE include: `userSet`, `userSetOnce`, `userAdd`, `userUnset`, `userDelete`, `userAppend` .
|
|
143
|
+
### **3.1 UserSet**
|
|
144
|
+
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:
|
|
145
|
+
```lua
|
|
146
|
+
-- current username is TA
|
|
147
|
+
TDAnalytics.userSet({user_name = "TA"})
|
|
148
|
+
-- current username is TE
|
|
149
|
+
TDAnalytics.userSet({user_name = "TE"})
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### **3.2 UserSetOnce**
|
|
153
|
+
If the user property you want to upload only needs to be set once, you can call `userSetOnce` to set the property. If such property had been set before, this message would be neglected. Let's take the setting of the first payment time as an example:
|
|
154
|
+
```lua
|
|
155
|
+
--first_payment_time is '2018-01-01 01:23:45.678'
|
|
156
|
+
TDAnalytics.userSetOnce({first_payment_time = "2018-01-01 01:23:45.678"})
|
|
157
|
+
-- first_payment_time is '2018-01-01 01:23:45.678' as before
|
|
158
|
+
TDAnalytics.userSetOnce({first_payment_time = "2018-12-31 01:23:45.678"})
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### **3.3 UserAdd**
|
|
162
|
+
When you want to upload numeric attributes for cumulative operation, you can call `userAdd`.
|
|
163
|
+
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:
|
|
164
|
+
```lua
|
|
165
|
+
-- current total_revenue is 30
|
|
166
|
+
TDAnalytics.userAdd({total_revenue = 30})
|
|
167
|
+
-- current total_revenue is 678
|
|
168
|
+
TDAnalytics.userAdd({total_revenue = 648})
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
<quote-container>
|
|
172
|
+
The property key is a string, and the Value is only allowed to be a numeric value.
|
|
173
|
+
</quote-container>
|
|
174
|
+
|
|
175
|
+
### **3.4 UserUnset**
|
|
176
|
+
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.
|
|
177
|
+
```lua
|
|
178
|
+
-- remove a user property named 'age'
|
|
179
|
+
TDAnalytics.userUnset("age")
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### **3.5 UserDelete**
|
|
183
|
+
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.
|
|
184
|
+
```lua
|
|
185
|
+
-- remove all user properties
|
|
186
|
+
TDAnalytics.userDelete()
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### **3.6 UserAppend**
|
|
190
|
+
You can call `userAppend` to add user properties of array type.
|
|
191
|
+
```lua
|
|
192
|
+
-- append user properties with array
|
|
193
|
+
TDAnalytics.userAppend({user_list = {"apple", "ball"}})
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## **4. Other**
|
|
197
|
+
### **4.1 ****Device ID**
|
|
198
|
+
You can call `getDeviceId` to obtain the device ID:
|
|
199
|
+
```lua
|
|
200
|
+
-- get device ID
|
|
201
|
+
TDAnalytics.getDeviceId( function (ret)
|
|
202
|
+
print( "deviceId = " .. ret )
|
|
203
|
+
end )
|
|
204
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: corona_sdk_release_note
|
|
3
|
+
name: "Release Notes"
|
|
4
|
+
wikiToken: WFj4wJBoXihzDgkEzFbc6UJjnHh
|
|
5
|
+
parentWikiToken: QjOXwKuZFiw4JLk477Fcuzmnnnb
|
|
6
|
+
updateTime: 1774249161000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=corona_sdk_release_note
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 2.0.1
|
|
11
|
+
**Date: 2023/11/24 **[Download](https://download.thinkingdata.cn/client/Corona/ta_corona_sdk_v2.0.1.zip)
|
|
12
|
+
**Notes:**
|
|
13
|
+
- Code optimization
|
|
14
|
+
## 2.0.0
|
|
15
|
+
**Date: 2023/09/06 **[Download](https://download.thinkingdata.cn/client/Corona/ta_corona_sdk_v2.0.0.zip)
|
|
16
|
+
**Notes:**
|
|
17
|
+
- Code optimization
|
|
18
|
+
## 1.0.1
|
|
19
|
+
**Date: 2023/03/21 **[Download](https://download.thinkingdata.cn/client/Corona/ta_corona_sdk_v1.0.1.zip)
|
|
20
|
+
**Notes:**
|
|
21
|
+
- Code optimization
|
|
22
|
+
## 1.0.0
|
|
23
|
+
**Date: 2022/09/15**
|
|
24
|
+
**Notes:**
|
|
25
|
+
- Support setting of visitor ID and user account
|
|
26
|
+
- Support event and user attribute reporting
|
|
27
|
+
- Support automatic reporting of startup/shutdown/installation events
|
|
28
|
+
- Support public attribute interface
|
|
29
|
+
- Support timeEvent interface
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: corona_sdk_installation
|
|
3
|
+
name: "Corona"
|
|
4
|
+
wikiToken: QjOXwKuZFiw4JLk477Fcuzmnnnb
|
|
5
|
+
parentWikiToken: FgrswqlHEiE45HkQve4cU0NFnbd
|
|
6
|
+
updateTime: 1774251985000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=en-US&code=corona_sdk_installation
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
::: tip
|
|
11
|
+
Before you begin, please read [Preparations before Data Ingestion](https://thinkingdata.feishu.cn/wiki/OhD8we9iai6Xk5kM1QNc8ITRnQe)
|
|
12
|
+
Corona SDK supports iOS, Android
|
|
13
|
+
The size of Corona SDK (aar format) is around 0.5 MB
|
|
14
|
+
:::
|
|
15
|
+
**Latest version:** v2.0.1
|
|
16
|
+
**Update time:** November 24, 2023
|
|
17
|
+
**Resource download: **[SDK](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2Frelease%2Fta_corona_sdk.zip), [Source Code](https%3A%2F%2Fgithub.com%2FThinkingDataAnalytics%2Fcorona-sdk%2Ftags)
|
|
18
|
+
::: warning Notice
|
|
19
|
+
The current documentation applies to v2.0.0 and later versions. For historical versions, please refer to the [Data Ingestion Guide - Corona (V1)](https%3A%2F%2Fdocs.thinkingdata.cn%2Fta-manual%2Fv4.1%2Fen%2Finstallation%2Finstallation_menu%2Fclient_sdk%2Fgame_engine_sdk_installation%2Fcorona_sdk_installation%2Fcorona_sdk_installation.html), [SDK Download (v1.0.1)](https%3A%2F%2Fdownload.thinkingdata.cn%2Fclient%2FCorona%2Fta_corona_sdk_v1.0.1.zip).
|
|
20
|
+
:::
|
|
21
|
+
## **1. ****SDK**** Integration**
|
|
22
|
+
- **Corona Setting**
|
|
23
|
+
- Download and unzip [Corona SDK](https://download.thinkingdata.cn/client/release/ta_corona_sdk.zip), and copy `TDAnalytics.lua` to Corona
|
|
24
|
+
- **Android Setting**
|
|
25
|
+
- Copy `android/ThinkingPluginProxy.java` to `android/plugin/src/main/java/plugin/library`
|
|
26
|
+
- Open Android project file with Android Studio, then switch to Android Mode. Add dependencies in `build.gradle` and click `Sync Now` to update it
|
|
27
|
+
```bash
|
|
28
|
+
dependencies {
|
|
29
|
+
implementation 'cn.thinkingdata.android:ThinkingAnalyticsSDK:3.0.0'
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
<image token="IAW9b4t1yoS1zlxkTVmcx5TVnwg" width="1278" height="997" align="center"/>
|
|
34
|
+
|
|
35
|
+
- Add code to `plugin.library.LuaLoader` like this
|
|
36
|
+
::: tip
|
|
37
|
+
If you don't add any code in `plugin.library.LuaLoader`, you can copy `android/LuaLoader.java` to `android/plugin/src/main/java/plugin/library` to replace the original file
|
|
38
|
+
:::
|
|
39
|
+
```java
|
|
40
|
+
public int invoke(LuaState L) {
|
|
41
|
+
NamedJavaFunction[] luaFunctions = new NamedJavaFunction[] {
|
|
42
|
+
...
|
|
43
|
+
// TDAnalytics: add code
|
|
44
|
+
new ThinkingBridgingWrapper(),
|
|
45
|
+
...
|
|
46
|
+
};
|
|
47
|
+
String libName = L.toString( 1 );
|
|
48
|
+
L.register(libName, luaFunctions);
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public void dispatchEvent(final String message) {
|
|
53
|
+
CoronaEnvironment.getCoronaActivity().getRuntimeTaskDispatcher().send( new CoronaRuntimeTask() {
|
|
54
|
+
@Override
|
|
55
|
+
public void executeUsing(CoronaRuntime runtime) {
|
|
56
|
+
|
|
57
|
+
LuaState L = runtime.getLuaState();
|
|
58
|
+
CoronaLua.newEvent( L, EVENT_NAME );
|
|
59
|
+
|
|
60
|
+
...
|
|
61
|
+
// TDAnalytics: add code
|
|
62
|
+
JSONObject jsonObject = null;
|
|
63
|
+
String newMessage = null;
|
|
64
|
+
String type = null;
|
|
65
|
+
try {
|
|
66
|
+
jsonObject = new JSONObject(message);
|
|
67
|
+
newMessage = jsonObject.optString("message");
|
|
68
|
+
type = jsonObject.optString("type");
|
|
69
|
+
} catch (Exception ignored) {
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (!TextUtils.isEmpty(newMessage) && !TextUtils.isEmpty(type)) {
|
|
73
|
+
L.pushString(newMessage);
|
|
74
|
+
L.setField(-2, "message");
|
|
75
|
+
L.pushString(type);
|
|
76
|
+
L.setField(-2, "type");
|
|
77
|
+
} else {
|
|
78
|
+
L.pushString(message);
|
|
79
|
+
L.setField(-2, "message");
|
|
80
|
+
}
|
|
81
|
+
...
|
|
82
|
+
|
|
83
|
+
try {
|
|
84
|
+
CoronaLua.dispatchEvent( L, fListener, 0 );
|
|
85
|
+
} catch (Exception ignored) {
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
} );
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
...
|
|
92
|
+
// TDAnalytics: add code
|
|
93
|
+
@SuppressWarnings({"WeakerAccess", "SameReturnValue"})
|
|
94
|
+
public int thinkingBridging(LuaState L) {
|
|
95
|
+
CoronaActivity activity = CoronaEnvironment.getCoronaActivity();
|
|
96
|
+
if (activity == null) {
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
String word = L.checkString( 1 );
|
|
101
|
+
JSONObject params = null;
|
|
102
|
+
try {
|
|
103
|
+
params = new JSONObject(word);
|
|
104
|
+
} catch (JSONException e) {
|
|
105
|
+
params = new JSONObject();
|
|
106
|
+
}
|
|
107
|
+
String method = params.optString("method");
|
|
108
|
+
if (method.length() > 0) {
|
|
109
|
+
try {
|
|
110
|
+
Class aClass = Class.forName("plugin.library.ThinkingPluginProxy");
|
|
111
|
+
Method aMethod = aClass.getDeclaredMethod(method, JSONObject.class);
|
|
112
|
+
JSONObject jsonObject = (JSONObject) aMethod.invoke(aClass, params);
|
|
113
|
+
if (jsonObject != null && jsonObject.getClass() == JSONObject.class && jsonObject.has("message")) {
|
|
114
|
+
(new Thread() {
|
|
115
|
+
@Override
|
|
116
|
+
public void run() {
|
|
117
|
+
dispatchEvent(jsonObject.toString());
|
|
118
|
+
}
|
|
119
|
+
}).start();
|
|
120
|
+
}
|
|
121
|
+
} catch (Exception e) {
|
|
122
|
+
e.printStackTrace();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return 0;
|
|
126
|
+
}
|
|
127
|
+
...
|
|
128
|
+
|
|
129
|
+
...
|
|
130
|
+
// TDAnalytics: add code
|
|
131
|
+
@SuppressWarnings("unused")
|
|
132
|
+
private class ThinkingBridgingWrapper implements NamedJavaFunction {
|
|
133
|
+
@Override
|
|
134
|
+
public String getName() {
|
|
135
|
+
return "thinkingBridging";
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@Override
|
|
139
|
+
public int invoke(LuaState L) {
|
|
140
|
+
return thinkingBridging(L);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
...
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
- **iOS**** Setting**
|
|
148
|
+
- Open iOS project with Xcode, add files in `ios/ThinkingAnalyticsSDK` to directory named App
|
|
149
|
+
<image token="MUGMb5urConcL4xWQexcfXHwnSf" width="1278" height="994" align="left"/>
|
|
150
|
+
|
|
151
|
+
- Enable ARC support, select **TARGETS** -> **App** -> **Build Settings** -> **Objective-C Automatic Reference Counting**, and set it to **YES**
|
|
152
|
+
<image token="Ov9gbxSQpoLPcOxiMCFcFOrtnQc" width="2556" height="1988" align="center"/>
|
|
153
|
+
|
|
154
|
+
- Disable ARC for **ThinkingPluginLibrary.mm**, select **TARGETS** -> **App** -> **Build Phases** -> **Compile Sources** -> **ThinkingPluginLibrary.mm**, and add **-fno-objc-arc**
|
|
155
|
+
<image token="Tkp7bK8MnoDVfKxNZcucEYnHnMc" width="2556" height="1988" align="center"/>
|
|
156
|
+
|
|
157
|
+
## **2. Initialization**
|
|
158
|
+
```lua
|
|
159
|
+
-- import TDAnalytics
|
|
160
|
+
local TDAnalytics = require("TDAnalytics")
|
|
161
|
+
|
|
162
|
+
-- initialize TDAnalytics
|
|
163
|
+
local params = {
|
|
164
|
+
appId = "YOUR_APP_ID",
|
|
165
|
+
serverUrl = "YOUR_SERVER_URL"
|
|
166
|
+
}
|
|
167
|
+
TDAnalytics.init(params)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
<quote-container>
|
|
171
|
+
Note: Since some devices restrict HTTP requests by default, please use HTTPS protocol only.
|
|
172
|
+
</quote-container>
|
|
173
|
+
|
|
174
|
+
## **3. Common Features**
|
|
175
|
+
We suggested that you read [User Identification Rules](https://thinkingdata.feishu.cn/wiki/Pov9wECdsi2QQsk4NN9cEPsvnyc) before using common functions; SDK would generate a random number that would be used as the distinct ID, and save the ID locally. Before the user logs in, the distinct ID would be used as the identification ID. Note: The distinct ID would change after the user reinstalled the App or use the APP with a new device.
|
|
176
|
+
### **3.1 Login**
|
|
177
|
+
When the users log in , `login` could be called to set the account ID of the user. TE platform would use the account ID as the identification ID, and this ID would be saved before `logout` is called. The previous account ID would be replaced if `login` has been called multiple times.
|
|
178
|
+
```lua
|
|
179
|
+
-- The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
|
|
180
|
+
TDAnalytics.login("TE")
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
<quote-container>
|
|
184
|
+
Note: Login events wouldn't be uploaded in this method.
|
|
185
|
+
</quote-container>
|
|
186
|
+
|
|
187
|
+
### **3.2 Super Properties**
|
|
188
|
+
Super properties refer to properties that each event might have. You can call `setSuperProperties` to set super properties. It is recommended that you set super properties first before sending data. Some important properties (e.g., the membership class of users, source channels, etc.) should be set in each event. At this time, you can set these properties as super properties.
|
|
189
|
+
```lua
|
|
190
|
+
-- set super properties
|
|
191
|
+
TDAnalytics.setSuperProperties({
|
|
192
|
+
channel = "App Store",
|
|
193
|
+
trip = {"Car", "Train"}
|
|
194
|
+
})
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Super properties would be saved in local storage, and will not need to be called every time the App is opened. If the super properties set previously are uploaded after calling `setSuperProperties`, previous properties would be replaced.
|
|
198
|
+
- 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.
|
|
199
|
+
- Value, the value of the property, supports string, numbers, Boolean, time, object, array object, and array
|
|
200
|
+
<quote-container>
|
|
201
|
+
Note: The requirements for event properties and user properties are the same with that for super properties
|
|
202
|
+
</quote-container>
|
|
203
|
+
|
|
204
|
+
### **3.3 Automatically Track Events**
|
|
205
|
+
The following code is an example of tracking installation, open_app and close_app events. To get more information about the automatic tracking of SDK, please refer to [Automatic Event Tracking](https://thinkingdata.feishu.cn/wiki/QsdxwfT04iDDK8kNLAEc6z5YnRb)
|
|
206
|
+
```lua
|
|
207
|
+
-- enable auto-tracking
|
|
208
|
+
-- appInstall=enable auto-track APP installation
|
|
209
|
+
-- appStart=enable auto-track open APP
|
|
210
|
+
-- appEnd=enable auto-track close APP
|
|
211
|
+
local params = {
|
|
212
|
+
appId = "YOUR_APP_ID",
|
|
213
|
+
serverUrl = "YOUR_SERVER_URL",
|
|
214
|
+
autoTrack = {
|
|
215
|
+
"appStart", "appEnd", "appInstall"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
TDAnalytics.init( params )
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### **3.4 Sending Events**
|
|
222
|
+
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:
|
|
223
|
+
```lua
|
|
224
|
+
TDAnalytics.track("product_buy", {product_name="product name"});
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
The event name is string type. It could only start with a character and could contain figures, characters, and an underline "_", with a maximum length of 50 characters.
|
|
228
|
+
### **3.5 User Properties**
|
|
229
|
+
You can set general user properties by calling `user_set` API. The original properties would be replaced by the properties uploaded via this API. The data type of newly-created user properties must be the same as the uploaded properties. User name setting is taken as the example here:
|
|
230
|
+
```lua
|
|
231
|
+
-- set user properties
|
|
232
|
+
TDAnalytics.userSet({user_name = "TE"})
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## **4. Best Practice**
|
|
236
|
+
The following sample code covers all the above-mentioned operations. It is recommended that the SDK be used in the following steps:
|
|
237
|
+
```lua
|
|
238
|
+
-- import ThinkingAnalyticsAPI
|
|
239
|
+
local TDAnalytics = require("TDAnalytics")
|
|
240
|
+
|
|
241
|
+
if (privacy policy is authorized) {
|
|
242
|
+
-- initialize SDK
|
|
243
|
+
local params = {
|
|
244
|
+
appId = "YOUR_APP_ID",
|
|
245
|
+
serverUrl = "YOUR_SERVER_URL"
|
|
246
|
+
}
|
|
247
|
+
TDAnalytics.init(params)
|
|
248
|
+
|
|
249
|
+
-- if the user has logged in, the account ID of the user could be set as the unique identifier
|
|
250
|
+
TDAnalytics.login("TE")
|
|
251
|
+
|
|
252
|
+
-- After setting super properties, each event would have super properties
|
|
253
|
+
local superProperties = {}
|
|
254
|
+
superProperties["channel"] = "TE" -- string
|
|
255
|
+
superProperties["age"] = 1 -- number
|
|
256
|
+
superProperties["isSuccess"] = true -- boolean
|
|
257
|
+
superProperties["birthday"] = os.date("%Y-%m-%d %H:%M:%S") -- time
|
|
258
|
+
superProperties["object"] = { key="value" } -- object
|
|
259
|
+
superProperties["object_arr"] = { { key="value" } } -- array object
|
|
260
|
+
superProperties["arr"] = { "value" } -- array
|
|
261
|
+
TDAnalytics.setSuperProperties(superProperties) -- set super properties
|
|
262
|
+
|
|
263
|
+
-- track event
|
|
264
|
+
TDAnalytics.track("product_buy", {product_name="product name"});
|
|
265
|
+
|
|
266
|
+
-- set user properties
|
|
267
|
+
TDAnalytics.userSet({user_name = "TE"})
|
|
268
|
+
}
|
|
269
|
+
```
|