我正在尝试使用Google Analytics 4(GA4)跟踪桌面Java应用程序的使用情况。Universal Analytics有一些像这样的旧文章,但我看不到谷歌分析4的任何内容。基本上,我想获取一个具有普通GA4脚本插入的网页。然后我可以使用谷歌分析来跟踪桌面应用程序的使用情况。我可以看到,我可能必须在GET中指定用户代理标头,但什么适合桌面应用程序?更大的问题是,GET是不够的,因为HTML文件中的GA4脚本代码需要在桌面应用程序中以某种方式执行,例如在嵌入式IFrame中执行。或者,是否存在应该以不同方式调用的GA4 API?我正在使用Java8,很快就会更新到11或更高版本。我过去曾使用SwingJEditorPane
来查看HTML,但没有将其与<script>
一起使用。桌面应用程序的性能打击需要最小(不到一秒钟)。我最初的工作是误导性的,因为GA4显示的是HTML页面的浏览器视图,而不是桌面应用程序。任何想法都将不胜感激。
试图运行一个完整的网站,以便正确地对javascript进行排序,然后进行一些非常简单的javascript调用,从字面上讲,这是一个Rube Goldberg的发明大量过度设计,需要大量的未来维护头痛,并将应用程序在磁盘和内存中的占用空间增加数百兆字节,更不用说运输所有这些会显著增加安全问题的风险。
因此,这是一个扣篮X/Y问题:
- 您遇到问题,需要在线跟踪桌面应用程序的使用情况。(这是X)
- 你想:我知道!网站有这个GA4的东西,听起来像我想要的,所以我会用它
- 。。。但是我有一些关于如何做到这一点的问题(这是Y)
你的问题的真正答案是提到中间的项目符号是不正确的。这根本不是一个好主意,因此,你关于Y的问题无关紧要。你真正应该做的是问问题X:我有一个桌面应用程序,我如何跟踪它的使用?
所以,让我来回答这个问题。
但首先。。合法的耶
欧盟已经相当明确地表示,其关于隐私的法律(GDPR和朋友)不允许在未经您收集数据的用户明确许可的情况下进行GA4等活动。Schrems2(一项法院判决,如果你想要详细信息,你可以搜索它)有效地(这是合法的,我过于简单化了)说,一家总部不在欧盟的公司不能以避免向用户申请明确许可的方式合法地主张维护GDPR,考虑到如果地方政府命令他们做出冲突行为(即中央情报局的直接命令或其他类似命令,允许他们直接访问谷歌GA4跟踪数据库中的数据),则不能合理地要求非欧盟四分之一公司选择欧盟法律。
(请注意,您最初计划提供一个完整的浏览器环境来运行一些javascript并不能神奇地解决这些法律问题,这在这里不是一个可行的解决方案)。
这加起来给了你四个选项之一:
- 您向用户请求权限。根据我的经验,一个独立的桌面应用程序解释说,除非你允许它联系GA4的服务器或其他第三方跟踪系统,否则你不能使用它,这将给你带来大量强烈抱怨的用户,但这是一种选择
- 你完全放弃了这个话题。没有跟踪
- 您编写自己的跟踪框架,并请求的权限,这可能会导致更少的问题。或者,你设置了一个系统,让用户可以合理地预期正在进行一些基本的跟踪。如果你的应用程序需要登录,并且你自己管理跟踪,你可能是清白的,不需要GDPR或cookie风格的警告和权限提示。这确实不是特别困难,但这确实意味着你需要维护自己的服务器或至少是端点(比如说,上面有一个AWS lambda响应程序,以将成本和系统操作需求降至最低)
- 你无视这个建议,冒着一些棘手问题的风险。如果你住在欧盟,我完全建议你不要采取这种行动。如果你不这样做,你可能会冒险;这在欧盟很可能是非法的,但作为一个小公司/个人,我怀疑他们是否会在乎。尽管如此,这是一种不同类型的技术债务:如果你的应用程序变得流行,或者你正在谈判将其出售到某个地方,忽视这个问题至少会引起一些相当严重的头痛
GDPR和co的目的或多或少是结束科技界在过去十年中采取的随意的"嗯,我会跟踪一切,因为谁知道呢,也许浏览所有这些统计数据会很酷,也许我以后可以卖掉它"的态度,即-是的,这项法律旨在阻止你的要求,所以你现在想:什么。。。这听起来太拖沓了!
是的。这就是重点。
好吧,我无论如何都想用GA4
好吧,你的葬礼。GA4有自己的API。你在网页上加载的GA4脚本只是使用API;不需要使用那个javascript来使用那个API,您可以直接使用它。
GA4更新的很大一部分是上面提到的非常合法的东西:你不能再发送"ping"了,你需要首先设置一个方案,表明你正在收集数据的用户已经同意。
iPhone和android开发的GA4插件可以为您做到这一点。网站的GA4 javascript也可以。如果你不是一个网站,不是一个安卓应用程序,也不是一个iPhone应用程序,如果有办法做到这一点,你必须搜索GA4的文档。可能根本没有——他们的很多页面仍然在谈论FLOC,如果他们避免使用cookie,他们对无同意GA4的合法性有一些可疑的说法,这正是"让我们坚持法律条文,完全无视精神;它在美国行之有效,当然欧盟也是美国公司不断追求的东西。
重点是,谷歌分析会想出各种复杂的恶作剧来绕过或遵守法律问题,所有这些都表明你提出的解决方案是行不通的。你真的必须删除整个浏览器,然后伪造同意点击,这就是你现在故意试图违反隐私法,即使是对于一个小机构来说,这绝对不是一个好主意。
这是Revenera关于它的一篇博客文章(他们大多推荐相同的方式:不要将GA4用于桌面应用程序)。再说一遍,他们想向你出售他们的桌面应用程序跟踪解决方案,所以这有点像苹果销售人员告诉你橙子不好。当然他们会这么说。尽管如此,其中有一些很好的信息,更详细地解释了GA4如何无法真正满足桌面跟踪需求。
用于ping GA4帐户的通用API被称为"测量协议"。请在此处阅读有关GA4 MP的文档。请注意,文档调用:
Measurement Protocol的目的是通过gtag、Tag Manager和Google Analytics增强Firebase的自动采集,而不是取代它们。
进一步强调GA4实际上并不适用于此。
建立自己的
这真的不是特别复杂。你可以通过非个人追踪的方式来避免法律问题。例如,让你自己的应用程序生成一个唯一的ID,并将其存储在本地某个地方,然后发送出去——这不太可能是法律问题。如果你想跟踪位置,只存储非常广泛的地理ip信息(国家或地区),并考虑使用哈希内容等技巧来区分不同的东西(例如,区分ip地址),而不必弄清楚你存储的数据是否被视为私有(IP地址可能被视为私有,尤其是如果没有合理的理由,用户可以凭直觉知道应用程序显然必须存储这些数据才能正常运行)。
你需要一台服务器来完成这一切,但包括AWS(亚马逊网络服务)在内的许多IAAS平台都有一个免费层,大多数平台都有"按需代码执行"系统,如AWS Lambda,这意味着你不需要运行服务器,也不需要对该服务器进行维护(即应用安全补丁)。这将使成本保持在低到0的水平,尽管你必须弄清楚如何对其进行编程。
有很多关于如何使用java+AWS lambda的教程,以及如何使用例如Spark制作非常简单的RESTAPI。