我试图将Google Tag Manager集成到Electron应用程序中,但似乎不起作用。看起来我在应用程序中植入的GTM代码并没有将分析数据发送到任何地方。
我在Electron github repo上找到了this issue。似乎有些人也有同样的问题。
我想知道是否完全不可能在Electron上集成GTM,或者是否有任何方法可以做到这一点?
[更新]
在阅读 Alexandria Leithner的回答时,一个进一步的问题出现了。
在Google Tag Manager - Dev Guide - Security上,它说:
虽然Google Tag Manager中的大多数标签模板也是协议相关的,但在设置自定义标签以在安全页面上触发时,必须确保这些标签也是协议相关的或安全的。file://
协议是否重要,因为GTM是协议相关的?难道不可能绕过这与GA的forceSSL=true
选项,可以设置在GTM接口?
[最终更新]
我在这篇博客文章中找到了完美的答案:
谢谢你艾凯Pierstorff,给了我将storage
设置为none
的提示,它引导我到了这篇文章。
3条答案
按热度按时间rjjhvcjd1#
默认情况下,GTM使用与网页相同的协议-这就是“协议相对”的意思。也就是说,有一段代码加载了GTM库,如果它使用了文件协议(根据嵌入式wegpage),它将尝试将库作为文件加载,这不起作用。然而,GTM已经默认从相对于https的协议切换,所以我不认为GTM是你的问题。
你提到了分析数据,如果这是指谷歌分析,那么你的问题不是与GTM,这是GA不工作的本地文件。Google Analytics使用cookie来存储clientId(需要将单个点击聚合到会话/用户中),由于您无法在本地文件上设置cookie,因此这不起作用。
一个可能的解决方法是转到GTM中的GA标记,进入“set fields”设置,将“storage”设置为“none”(这意味着没有设置cookie)并手动传入clientId。
wz1wpwve2#
正如Electron开发人员Samuel阿塔德(MarshallOfSound)的评论所述,当使用
file://
URL加载包含网页时,Google Tag Manager不起作用。如果您通过
http://
(或更优选地通过https://
)加载应用程序,则可以使用Google Tag Manager。rekjcdws3#
Google Analytics(分析)使用Cookie来存储聚合单个点击所需的clientId。
目前安装一些添加cookie支持(通过localStorage)的npm包,如https://github.com/heap/electron-cookies,可以解决这个问题。