我关注了this guide在我的 Android 应用程序中实现 Google Analytics。我无法理解文档。
在文档中说要创建一个以此为内容的 XML 文件:
<screenName name="com.mycompany.myapp.MainActivity">
SomeApp MainActivity
</screenName>
要发送屏幕 View ,我必须这样做:
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER);
t.setScreenName(screenName);
t.send(new HitBuilders.AppViewBuilder().build());
但是,我不确定这个 screenName 应该是什么。它是 name 值 (com.mycompany.myapp.MainActivity) 还是 screenName 值 (SomeApp MainActivity) ?
最佳答案
只要启用“自动 Activity 跟踪”,就会使用您描述的 xml 配置。每当 Activity 启动时,此跟踪会自动报告新的屏幕 View ,从而避免您在代码中手动触发屏幕 View 事件。
要启用自动 Activity 跟踪,您可以设置 ga_autoActivityTracking在您的跟踪器的 xml 配置中将 bool 值设置为 true:
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
默认情况下,此自动报告工具将使用您的 Activity 类名称作为报告的屏幕名称(例如 com.mycompany.myapp.MainActivity)。这些类名往往又长又难读,所以 Google 允许我们为每个 Activity 自定义报告的屏幕名称。这就是你问题的这一部分所做的:
<screenName name="com.mycompany.myapp.MainActivity">
SomeApp MainActivity
</screenName>
使用此配置,当自动报告该 Activity 的屏幕浏览量时,自动 Activity 跟踪将使用字符串“SomeApp MainActivity”而不是“com.mycompany.myapp.MainActivity”。
重要的是要注意,如果您不使用自动 Activity 跟踪,跟踪器的 xml 中的任何屏幕名称配置都将被忽略。在这种情况下,每次以编程方式触发屏幕查看事件时,您都必须指定屏幕名称。这就是您的代码示例中发生的情况:
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER);
t.setScreenName(screenName);
t.send(new HitBuilders.AppViewBuilder().build());
此代码中未使用 xml 配置中的屏幕名称设置,因为它不是自动 Activity 跟踪的一部分。相反,您必须在发送屏幕 View 之前在跟踪器上手动设置屏幕名称。这比自动 Activity 跟踪更灵活——例如,在 Fragment-heavy 应用程序中,导航可能通过 Fragment 事务而不是 Activity 更改来执行。在那种情况下,单独跟踪 Activity 变化不会适本地报告应用程序中的每个屏幕变化。自动 Activity 跟踪应该比手动发送屏幕 View 的开销更少,但我发现它不灵活且更容易出错(每次引入新 Activity 时,你都必须手动添加 <screenName> 条目到你的 xml,这很容易忘记)。
关于android - 在 Google Analytics V4 中,我应该发送哪个屏幕名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28183881/
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=
相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声
如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
当我创建一个Rails应用程序时,控制台:railsnewfoo我的代码可以使用字符串“foo”吗?puts"Yourapp'snameis"+app_name_bar 最佳答案 Rails.application.class将为您提供应用程序的全名(例如YourAppName::Application)。从那里您可以使用Rails.application.class.parent获取模块名称。 关于ruby-on-rails-应用程序的名称是否可以作为变量使用?,我们在StackOve
已经有一个问题回答了如何将“America/Los_Angeles”转换为“PacificTime(US&Canada)”。但是我想将“美国/太平洋”和其他过时的时区转换为RailsTimeZone。我无法在图书馆中找到任何可以帮助我完成此任务的东西。 最佳答案 来自RailsActiveSupport::TimeZonedocs:TheversionofTZInfobundledwithActiveSupportonlyincludesthedefinitionsnecessarytosupportthezonesdefinedb
我需要一个非常简单的字符串验证器来显示第一个符号与所需格式不对应的位置。我想使用正则表达式,但在这种情况下,我必须找到与表达式相对应的字符串停止的位置,但我找不到可以做到这一点的方法。(这一定是一种相当简单的方法……也许没有?)例如,如果我有正则表达式:/^Q+E+R+$/带字符串:"QQQQEEE2ER"期望的结果应该是7 最佳答案 一个想法:你可以做的是标记你的模式并用可选的嵌套捕获组编写它:^(Q+(E+(R+($)?)?)?)?然后你只需要计算你获得的捕获组的数量就可以知道正则表达式引擎在模式中停止的位置,你可以确定匹配结束