TalkingDataManager.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System.Collections.Generic;
  2. using Fort23.UTool;
  3. using UnityEngine;
  4. using Utility;
  5. public class TalkingDataManager : Singleton<TalkingDataManager>
  6. {
  7. private string appID = "965461C1FE104336864EF6D7EBABC2A7";
  8. #if Taptap
  9. private string channelID = "Taptap";
  10. #elif HaoYouKuaiBao
  11. private string channelID = "好友快报";
  12. #elif Google
  13. private string channelID = "Google";
  14. #else
  15. private string channelID = "Unity";
  16. #endif
  17. private bool isInitialized = false;
  18. public void CustomInit()
  19. {
  20. InitializeTalkingData();
  21. }
  22. /// <summary>
  23. /// 初始化TalkingData SDK
  24. /// </summary>
  25. public void InitializeTalkingData()
  26. {
  27. if (isInitialized) return;
  28. try
  29. {
  30. TalkingDataSDKConfig config = TalkingDataSDKConfig.CreateConfig();
  31. config.SetIMEIAndMEIDEnabled(true) //不允许收集IMEI和MEID
  32. .SetMACEnabled(true) //不允许收集MAC
  33. .SetAppListEnabled(true) //不允许收集应用列表
  34. .SetLocationEnabled(true) //不允许收集位置信息
  35. .SetWifiEnabled(true); //不允许收集网络信息
  36. TalkingDataSDK.SetConfig(config);
  37. TalkingDataSDK.BackgroundSessionEnabled();
  38. TalkingDataSDK.InitSDK(appID, channelID, "");
  39. TalkingDataSDK.StartA();
  40. isInitialized = true;
  41. LogTool.Log($"TalkingData 初始化成功 - AppID: {appID}, Channel: {channelID}");
  42. }
  43. catch (System.Exception e)
  44. {
  45. LogTool.Error($"TalkingData 初始化失败: {e.Message}");
  46. }
  47. }
  48. /// <summary>
  49. /// 账户登录
  50. /// </summary>
  51. public void OnLogin()
  52. {
  53. if (!isInitialized) return;
  54. try
  55. {
  56. TalkingDataProfile profile = TalkingDataProfile.CreateProfile();
  57. profile.SetName(PlayerManager.Instance.PlayerName);
  58. profile.SetType(TalkingDataProfileType.TYPE1);
  59. profile.SetGender(TalkingDataGender.UNKNOWN);
  60. Dictionary<string, object> eventValue = new Dictionary<string, object>
  61. {
  62. };
  63. TalkingDataSDK.OnLogin(PlayerManager.Instance.PlayerName, profile, eventValue);
  64. LogTool.Log($"TalkingData 设置账户: {PlayerManager.Instance.PlayerName}");
  65. }
  66. catch (System.Exception e)
  67. {
  68. LogTool.Error($"TalkingData 设置账户失败: {e.Message}");
  69. }
  70. }
  71. /// <summary>
  72. /// 记录自定义事件
  73. /// </summary>
  74. public void TrackEvent(string eventID, Dictionary<string, object> parameters,
  75. Dictionary<string, object> eventValue = null)
  76. {
  77. if (!isInitialized) return;
  78. try
  79. {
  80. TalkingDataSDK.OnEvent(eventID, parameters, eventValue);
  81. LogTool.Log($"TalkingData 记录事件: {eventID} ");
  82. }
  83. catch (System.Exception e)
  84. {
  85. LogTool.Error($"TalkingData 记录事件失败: {e.Message}");
  86. }
  87. }
  88. }