我正在尝试设置新的 Google 分析,并且我想GA_TRACKING_ID通过我的单页应用程序的 config.js 进行更改,具体取决于它是在我们的开发服务器、登台服务器还是生产服务器上。
我们已经使用此配置文件来更改我们的应用程序点击的 API,并且可以gtag('config', app.config.analyticsCode);在运行时设置配置,但是用于获取分析 js 文件的脚本似乎对请求中的 ID 进行了硬编码。<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
我应该用JS手动编写标签吗?我是否可以获取不带跟踪 ID 的脚本并使用该gtag()命令对其进行初始化?我在 Gtag 开发文档网站上找不到执行此操作的方法。谢谢!
我一直致力于将GTM和GA集成到我的网站,使用环境变量为不同的设置设置 GA 属性视图。
我在各种博客中找到了类似的解决方案,即通过设置Lookup Tables或RegEx Table来查找 GA-Tracking-ID。
问题
查找表向默认 GA 设置 obj 中存在的键添加前缀vtp_,如下所示:
因此,GA 不起作用。 如果我直接使用 GA 设置变量,一切正常。
这种情况发生在 GTM 和 GA 的当前仪表板设置上。
请注意,我仍在学习使用 Gatsby 和 React。
我一直在尝试弄清楚如何正确使用 Gatsbyjs 的 Google 跟踪代码管理器插件将跟踪代码插入我的应用程序。
该插件的官方文档没有提供很多见解和示例,所以我不确定我是否完全理解它。
我想要做的是将两个 GTM 跟踪代码插入到我的应用程序中,一个在 中<head>,一个在<body>. 使用静态站点方法,我只需将 GTM 跟踪代码复制并粘贴到我的 HTML 文档中,但是,使用 Gatsby 和 React,它就不会那样工作。
例如,我想将以下代码插入到<head>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
Run Code Online (Sandbox Code Playgroud)
我打开 gatsby-config.js 文件并将以下内容粘贴到插件下
// In your gatsby-config.js
plugins: [
{
resolve: `gatsby-plugin-google-tagmanager`,
options: {
id: "YOUR_GOOGLE_TAGMANAGER_ID",
// Include GTM in development.
// Defaults to false meaning GTM will only be loaded in …Run Code Online (Sandbox Code Playgroud) 我的问题是关于我使用 JavaScript 将一些表单数据从 Webflow 发送到 Typeform。当我在 Google Tagmanager 中创建自定义 html 标签时,出现以下错误:
JavaScript 编译器错误 Typeform 标记
错误位于第 3 行字符 1:此语言功能仅支持 ECMASCRIPT6 模式或更好:const 声明。
第 4、5、6、13、14、15 行也会出现同样的错误。
这是我的代码:
<script>
$( "#formbutton" ).click(function() {
const naam = $('#Naam-2').val();
const email = $('#Email-2').val();
const postcode = $('#Postcode-2').val();
Cookies.set('naam', naam, { expires: 30 } );
Cookies.set('email', email, { expires: 30 } );
Cookies.set('postcode', postcode, { expires: 30 } );
});
var Webflow = Webflow || [];
Webflow.push(function() {
const naam = Cookies.get("naam");
const email = …Run Code Online (Sandbox Code Playgroud) 我在跟踪代码管理器中设置了一个新的数据层变量,该变量将表示事件是否是非交互命中。这应该是一个布尔真/假值。我设置了默认值false(不带引号)。
我注意到当我在我的事件中明确包含此变量作为布尔值时,例如:
dataLayer.push({'event': 'gaEvent', ..., 'nonInteractionHit': false});
Run Code Online (Sandbox Code Playgroud)
跟踪代码管理器的预览模式在事件属性中显示Non-Interaction Hit: false为布尔值(不带引号)。这是预料之中的。
但是,当我没有指定 nonInteractionHit 的值时,例如:
dataLayer.push({'event': 'gaEvent', ...});
Run Code Online (Sandbox Code Playgroud)
Non-Interaction Hit: 'false'预览模式显示使用as 作为字符串值(带引号)触发的事件。基本上,它似乎将我的默认值解释为字符串而不是布尔值。这很令人担忧,因为 JavaScript 非常棒,而且字符串'false'实际上是true。
所以我的问题是:GTM 是否将“false”或“true”的字符串表示视为正确的布尔值,或者只是字符串,特别是在应该是布尔值的属性的上下文中使用时?就我而言,实际上是否根据我的需要'false'进行评估?false
额外加分:有没有办法将变量的默认值指定为正确的布尔值?用户界面似乎不允许这样做——你只是得到一个文本框来输入一个显然被解释为字符串的值。
在我们的应用中,我们使用 Google 跟踪代码管理器将应用内事件发送到 Firebase 和 AppsFlyer。当我们在本地测试它时,它在日志中正常工作,我可以看到 GTM 保存了标签
GoogleTagManager info: Saved tag for URL https://api2.appsflyer.com/inappevent/idxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
然后过了一会儿,GTM发送了它
GoogleTagManager info: Sent hit https://api2.appsflyer.com/inappevent/idxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
我向 Charles 检查了请求的样子,一切看起来都很好,有效负载构建正确,我得到 200 OK。
{
"appsflyer_id": "XXXXX",
"eventName": "af_initiated_checkout",
"af_events_api": "true",
"eventValue": "{\"af_price\":500,\"af_content_id\":\"x1\",\"af_content_type\":\"xxx\",\"af_currency\":\"EUR\",\"af_quantity\":8}",
"idfa": "XXXX-XXXX-XXXX",
"bundle_id": "com.superapp.superapp"
}
Run Code Online (Sandbox Code Playgroud)
几分钟后,我可以在 AppsFlyer 仪表板上看到效果。但是当我们将应用程序发送到生产环境(相同的捆绑包 ID)时,我们发现 Firebase 和 AppsFlyer 之间的事件计数有很大差异,在某些情况下,Firebase 中的事件数甚至多出 10 倍。造成这种情况的原因是什么?我该如何调试这个问题?
我已按照 Google 文档将 GTM 标签添加到我的网站。由于某种原因,回调被触发了 3 次,但是,我的页面上只有这个标签。
window.dataLayer.push({
'event': 'add_expense',
'eventCallback': function () {
alert('wtf');
}
});
Run Code Online (Sandbox Code Playgroud)
有人知道为什么会这样吗?
最近,营销团队要求我在当前公司项目中添加Google Tag Manager,这个项目是基于这个编写的React Native,我为此搜索了很多。但没有成功找到好的更新文档。
我找到了,react-native-gtm但那是4年前的了。另外,我找到了一些像这样的Native 方面的描述,但它完全适用于 Native iOS,而不是 React Native 项目。
另外,我还找到了一篇文章,React Native: Firebase GTM Integration Installation标题是这样的。但这是什么?Firebase GTM是什么意思?这是什么意思?
因为我记得这些是独立的营销工具。Firebase 与 GTM 不同。顺便说一句,当前这篇文章对我们来说没有用,因为它描述了在 Native 端的安装。它不是 React Native 解决方案。
那么:如何将 Google 标签管理器与 React Native 应用程序集成?
PII(个人身份信息)绝对不应该发送给 Google Analytics,这不仅违反了 GA 使用条款,而且还会泄露敏感的用户数据。那么,在使用 Google 跟踪代码管理器 (GTM) 和 Google Analytics 4 (GA4) 时,如何从 URL 中删除 PII,例如查询字符串参数(电子邮件、用户 ID 等),甚至从位置路径中删除 PII?
我想添加一个集成到页面上现有跟踪代码管理器数据层的自定义脚本。我需要这个脚本来通知新的数据层推送。因此,每当页面上的某些内容使用 时window.dataLayer.push,我的脚本都应该被告知这一点。
有没有办法将自定义 dataLayer 事件侦听器添加到 Google Script API?
我正在寻找类似的东西
google_tag_manager.dataLayer.onPush(callback);
Run Code Online (Sandbox Code Playgroud)
google_tag_manager.dataLayer.subscribers似乎列出了有多少个 dataLayer 订阅者 - 但我如何添加自己的订阅者?
javascript ×4
ios ×2
android ×1
appsflyer ×1
gatsby ×1
pii ×1
react-native ×1
reactjs ×1
swift ×1
typeform ×1