{"id":30668233,"url":"https://github.com/gameframex/com.gameframex.unity.gameanalytics.talkingdata.sdk","last_synced_at":"2025-08-31T23:46:57.240Z","repository":{"id":293386231,"uuid":"983870073","full_name":"GameFrameX/com.gameframex.unity.gameanalytics.talkingdata.sdk","owner":"GameFrameX","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-31T05:26:23.000Z","size":351,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-31T17:12:06.337Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GameFrameX.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-15T03:37:07.000Z","updated_at":"2025-05-31T05:26:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"594d541a-403a-4b35-ad95-5d45091fc6f9","html_url":"https://github.com/GameFrameX/com.gameframex.unity.gameanalytics.talkingdata.sdk","commit_stats":null,"previous_names":["gameframex/com.gameframex.unity.gameanalytics.talkingdata.sdk"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/GameFrameX/com.gameframex.unity.gameanalytics.talkingdata.sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameFrameX","download_url":"https://codeload.github.com/GameFrameX/com.gameframex.unity.gameanalytics.talkingdata.sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273056030,"owners_count":25037873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-31T23:46:53.099Z","updated_at":"2025-08-31T23:46:57.224Z","avatar_url":"https://github.com/GameFrameX.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## TalkingData Unity SDK\n\nTalkingData Unity 平台 SDK 由 `封装层` 和 `Native SDK` 两部分构成，目前 GitHub 上提供了封装层代码，需要从 [TalkingData官网](https://www.talkingdata.com/spa/sdk/#/universal?sdkPlatform=Unity) 下载最新版的 Android 和 iOS 平台 Native SDK，组合使用。\n\n### 集成说明\n\n1. 下载本项目（封装层）到本地；\n2. 访问 [TalkingData官网](https://www.talkingdata.com/spa/sdk/#/universal?sdkPlatform=Unity) 下载最新版的 Android 和 iOS 平台 TalkingData SDK (Native SDK)\n    - 方法1：选择 Unity 平台进行功能定制；\n    - 方法2：分别选择 Android 和 iOS 平台进行功能定制，请确保两个平台功能项一致；\n3. 将下载的最新版 `Native SDK` 复制到 `封装层` 中，构成完整的 Unity SDK。\n    - Android 平台  \n      将最新的 `.jar` 文件复制到 `Assets/Plugins/Android` 目录下\n    - iOS 平台  \n      将最新的 `.h` 和 `.a` 文件复制到 `Assets/Plugins/iOS` 目录下\n4. 按 `Native SDK` 功能选项对 `封装层` 代码进行必要的修改，详见“注意事项”第2条；\n5. 将 Unity SDK 集成您需要统计的工程中，并按 [集成文档](http://doc.talkingdata.com/posts/1026) 进行必要配置和功能调用。\n\n### 快速集成-配置权限\nAndroid 平台 SDK 需要获取适当的权限才可以正常工作，开发者需要在 AndroidManifest.xml 文件中添加下列所有权限申明。\n\n| 权限                           | 用途                                                                      |\n| ------------------------------ | ------------------------------------------------------------------------- |\n| INTERNET                       | 允许程序联网和发送统计数据的权限                                          |\n| ACCESS_NETWORK_STATE           | 允许应用检测网络连接状态，在网络异常状态下避免数据发送，节省流量和电量    |\n| READ_PHONE_STATE               | 允许应用以只读的方式访问手机设备的信息，通过获取的信息来唯一标识用户      |\n| ACCESS_WIFI_STATE              | 获取设备的MAC地址，同样用来标识唯一用户                                   |\n| WRITE_EXTERNAL_STORAGE         | 用于保存设备信息，以及记录日志                                            |\n| ACCESS_FINE_LOCATION（可选）   | 可通过GPS获取设备的位置信息，用来修正用户的地域分布数据，使报表数据更准确 |\n| ACCESS_COARSE_LOCATION（可选） | 用来获取该应用被使用的粗略位置信息                                        |\n\n### 快速集成-添加依赖框架\niOS 平台 SDK 需要添加适当的依赖框架才可以正常工作，开发者需要在编译生成的 Xcode 工程中添加下列所有依赖框架。\n\n| 框架                              | 用途                       |\n| --------------------------------- | -------------------------- |\n| AdServices.framework              | Apple Search Ads 归因      |\n| StoreKit.framework                | Apple SKAdNetwork 归因转化 |\n| AppTrackingTransparency.framework | 获取App跟踪授权状态        |\n| AdSupport.framework               | 获取advertisingIdentifier  |\n| CoreTelephony.framework           | 获取运营商标识             |\n| Security.framework                | 辅助存储设备标识           |\n| SystemConfiguration.framework     | 检测网络状况               |\n| libc++.                           | tbd 支持c++11标准          |\n| libz.tbd                          | 进行数据压缩               |\n\niOS 12.0 及以上系统获取 WiFi 信息时，需要添加 Access WiFi Information 选项：\n选择要添加的 Target，点击 +Capability，在弹出的框中双击 Access WiFi Information 进行添加。\n\niOS 14.0 及以上系统获取 IDFA 时，需要用户授权：\n在 Info.plist 中添加 Privacy - Tracking Usage Description Key，Type 为 String 类型，Value 为您的声明文字。\n\n### 注意事项\n\n1. 分别选择 Android 和 iOS 平台进行功能定制时，请确保两个平台功能项一致。\n2. 如果申请 Native SDK 时选择了可选功能，则需要在本项目中启用所选功能对应的封装层代码。  \n   a) 在 `Assets/Plugins/iOS/TalkingDataSDK.mm` 文件中释放所选行业或功能的宏定义。  \n   b) 在 Unity 中添加相应功能的宏定义  \n   打开 `Build Settings`，先在 `Platform` 中选择 `Android` 或 `iOS` 平台，再点击 `Switch Platform`。当切换完平台后，点击 `Player Settings`，然后在 `Other Settings` 的 `Scripting Define Symbols` 中输入所选行业或功能相应的宏（如果有多个宏，需要用分号隔开；Android 和 iOS 需要分别添加）。\n\n   各行业功能宏定义如下。\n\n   | 行业\u0026功能 | 宏定义       |\n   | --------- | ------------ |\n   | 电商零售  | TD_RETAIL    |\n   | 游戏娱乐  | TD_GAME      |\n   | 金融借贷  | TD_FINANCE   |\n   | 旅游出行  | TD_TOUR      |\n   | 在线教育  | TD_ONLINEEDU |\n   | 小说阅读  | TD_READING   |\n   | 其他行业  | TD_OTHER     |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.gameanalytics.talkingdata.sdk/lists"}