Android EasyTracker(GA)每次发布应用程序都报告为新用户
我设置了一个助手类,它通过Android EasyTracker(GA)每次发布应用程序都报告为新用户,android,google-analytics,easytracker,Android,Google Analytics,Easytracker,我设置了一个助手类,它通过EasyTracker向Google Analytics报告事件和屏幕。由于未知原因,每次我重新启动应用程序时,它都会以新用户的身份报告所有屏幕和事件。我检查了gaClientId文件,该文件存储唯一的ID。但每次我重新启动应用程序时,与其他保持不变的应用程序相比,此文件中存储的ID会发生更改 这是我在助手类中使用的代码,请注意,我也尝试过使用ApplicationContext上下文。我尝试过禁用即时分派(是的,我知道立即报告它不是一个好做法) 更新: 我曾尝试在没有
EasyTracker
向Google Analytics
报告事件和屏幕。由于未知原因,每次我重新启动应用程序时,它都会以新用户的身份报告所有屏幕和事件。我检查了gaClientId
文件,该文件存储唯一的ID。但每次我重新启动应用程序时,与其他保持不变的应用程序相比,此文件中存储的ID会发生更改
这是我在助手类中使用的代码,请注意,我也尝试过使用ApplicationContext上下文。我尝试过禁用即时分派(是的,我知道立即报告它不是一个好做法)
更新:
我曾尝试在没有easy tracker的情况下使用GoogleAnalytics类,但仍然不起作用。我想可能存在某种读取权限问题(但可以写入吗?),该文件位于data/data/com.my.app/files/gaClientId
更新:
我尝试过任何方法,我可以手动读取
gaClientId
文件,没有任何问题,不管有没有助手类,我都会在每次启动应用程序时创建一个新的ClientID。我使用的是easy tracker,我没有遇到这个问题。
我是这样做的:
在活动的onCreate()中,只需放置:
gaInstance = GoogleAnalytics.getInstance(this);
tracker = gaInstance.getDefaultTracker()
gaInstance和tracker是全局字段
然后在onStart()中,您只需像这样调用它:
tracker.sendView("/youractivity");
这是我的看法。
该活动也只是一个:
tracker.sendEvent("String",
"String",
"String",
"long");
最后要做的是更改analytics.xml文件中会话超时的默认值。默认情况下为30秒,以下示例中为30分钟
<integer name="ga_sessionTimeout">1800</integer>
1800
猜怎么着?存储客户端ID的文件位于data/data/com.my.app/files/gaClientId
,应用下载文件也位于该文件夹中。。每次启动应用程序时,我都会在文件夹上运行并删除其内容。因此,当分析初始化时,它找不到gaClientId文件,并创建了一个新文件,该文件创建了一个新用户
提示不要在
文件的根目录下存储任何内容
1。您正在使用哪个GA SDK?2.您是否在其他设备/模拟器上进行了测试?是的,我已经在模拟器和10多台设备上进行了测试。我使用的是8天前发布的GA V2 Beta 5Beta 5的最新版本,您是否尝试更改为Beta 4?这感觉像是一个环境/设置问题,我建议设置一个简单的小测试项目。
<integer name="ga_sessionTimeout">1800</integer>