Google/Firebase Analytics无法在带有Capacitor 4的iOS上运行



目前我正在使用VUE开发电容器4应用程序。要知道哪些部分使用最多,我想添加谷歌或Firebase分析。

在浏览器和安卓系统中,一切都很好,但在iOS上则不然。我尝试了6种不同的解决方案,但现在已经没有选择了。我的猜测是,它与电容器网络视图不被允许调用Google/Firebase分析或设置cookie有关。

另一个问题可能是Capacitor为localhost的应用程序提供服务。当我补充道:时,这将澄清分析为什么有效

server: {
url: 'http://192.168.0.16:3333',
cleartext: true,
},

到CCD_ 2,因为它不是来自CCD_。

我想知道是否有人经历过同样的(可能知道解决方案(

在iOS上尝试的解决方案没有任何工作结果

1.添加了额外的同意标志以避免使用cookie

来自:禁用谷歌分析中的cookie-gtag.js

gtag("consent", "default", {
ad_storage: "denied",
analytics_storage: "denied",
})

2.添加了client_storage:";无">

gtag("config", "%VITE_APP_GOOGLE_TAG_MANAGER_TRACKING_ID%", {
send_page_view: false,
anonymize_ip: true,
client_storage: "none",
})

3.发件人https://github.com/ionic-team/capacitor/issues/1433#issuecomment-631404089

// allow capacitor:// as protocol
gtag('set', 'checkProtocolTask', function () { /* nothing */ });

4.回到analysis.js

ga("set", {
// don't abort if the protocol is not http(s)
checkProtocolTask: null,
// don't expect cookies to be enabled
checkStorageTask: null,
})

5.Firebase Analytics-电容器

https://github.com/capacitor-community/firebase-analytics自2011年1月25日以来不再维护

6.Firebase Analytics-Web

使用Firebase Analytics的web包https://firebase.google.com/docs/reference/js/analytics

这个问题(至少对我们来说(似乎源于这样一个事实,即GA脚本执行协议检查,并且拒绝执行任何操作,除非我们使用httphttps协议。

让GA4在capacitor://(或任何其他(协议下工作似乎确实需要一点破解——通过将整个GA脚本作为文本获取,并在执行之前执行战略性的查找+替换:

fetch("https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX")
.then(response => response.text())
.then(response => {
if (document.location.protocol.startsWith('http')) {
Function(response)()
} else {
Function(response.replaceAll('http:', 'capacitor:'))()
}
})

如果在电容器上运行,请不要忘记启用cookie:https://capacitorjs.com/docs/apis/cookies

当然,从长远来看,无法保证这种方法的可靠性。

相关内容

  • 没有找到相关文章

最新更新