标签: google-tag-manager

如何调试Google DFP?

目前该标准?google_console=1对我们不起作用.我们正在使用Google发布商代码(异步).

double-click google-tag-manager

7
推荐指数
2
解决办法
1万
查看次数

_googWcmGet回调无法通过GTM使用动态电话号码

我正在尝试使用GTM在我的网站上运行Adwords呼叫转换跟踪.所有内容都设置在Adwords端(呼叫分机+来自网站转换的呼叫),但替换功能仍然无效.

<script type="text/javascript">
// the code from adwords, loads the _googWcmGet function
(function(a,e,c,f,g,b,d){var h={ak:"XXXXXXX",cl:"XXXXXXXX"};a[c]=a[c]||function(){(a[c].q=a[c].q||[]).push(arguments)};a[f]||(a[f]=h.ak);b=e.createElement(g);b.async=1;b.src="//www.gstatic.com/wcm/loader.js";d=e.getElementsByTagName(g)[0];d.parentNode.insertBefore(b,d);a._googWcmGet=function(b,d,e){a[c](2,b,h,d,null,new Date,e)}})(window,document,"_googWcmImpl","_googWcmAk","script");

// my callback to replace the number
var replaceNumber = function (formatted_number, unformatted_number) {
  console.log("replaceNumber() called");
}

var getNumber = function () {
  var links = document.getElementsByTagName("a");
  var oldNumber = null;

  for(var i=0; i<links.length; i++) {
    if( links[i].href.indexOf("tel") > -1 ) {
       var el = links[i];
       var oldNumber = el.innerHTML.split("<")[0];
    }
  }
  // console.log(oldNumber);  -> 123-456-7890
  return oldNumber;

}

window.onload = function() {
  _googWcmGet( replaceNumber, …
Run Code Online (Sandbox Code Playgroud)

javascript google-adwords google-tag-manager conversion-tracking

7
推荐指数
1
解决办法
3193
查看次数

Firebase IOS:警告“setScreenName:screenClass:必须在视图控制器出现后调用”

我想了解我从 Firbase IOS 收到的警告

<FIRAnalytics/WARNING> setScreenName:screenClass: must be called after a view controller has appeared
Run Code Online (Sandbox Code Playgroud)

我的 info.plist 包含

FirebaseAutomaticScreenReportingEnabled = NO
Run Code Online (Sandbox Code Playgroud)

我在打电话

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    recordScreenView()    
}

func recordScreenView() {
    // title from the story board
    // These strings must be <= 36 characters long in order for setScreenName:screenClass: to succeed.
    guard let screenName = title else {
        return
    }
    let screenClass = classForCoder.description()

    // [START set_current_screen]
     GCITracking.sharedInstance.trackSetScreenName(screenName, screenClass: screenClass)
    // [END set_current_screen]
}
Run Code Online (Sandbox Code Playgroud)

从示例应用程序中获取的代码

我没有按预期看到我的屏幕事件,但我不确定这是否与我的代码有关还是 …

ios firebase google-tag-manager

7
推荐指数
1
解决办法
5333
查看次数

适用于iOS的Google跟踪代码管理器 - Carthage

看一下iOS的Google跟踪代码管理器后,似乎只能通过使用CocoaPods来集成它.

https://developers.google.com/tag-manager/ios/v5

我的公司使用迦太基.是否可以使用迦太基?你们中有人设法做到了吗?

google-tag-manager carthage

7
推荐指数
1
解决办法
744
查看次数

滚动深度 GTM - 盖茨比

我在运行具有 GTM 滚动深度的基于 gatsby 的页面时遇到问题。问题是 gtm 滚动深度与 SPA 不兼容,并且在移动到下一页时不会重置。是否有人使用任何其他脚本来测量滚动深度,与 gatsby 和 gtm/ga 集成起来既简单又快速?

google-analytics single-page-application google-tag-manager reactjs gatsby

7
推荐指数
1
解决办法
653
查看次数

使用 Google Optimize 和 GTM 进行的多个服务器端实验

我想知道是否可以使用 Google Optimize 和 Google Tag Manager 设置多个服务器端实验。我们关注了/sf/answers/3651048621/,它似乎对从数据层发送的值工作得很好,但考虑到 Analytics 变量名称(expId 和 expVar),感觉我们只能这样做在任何给定时间进行一次实验。

google-analytics google-tag-manager google-optimize

7
推荐指数
1
解决办法
869
查看次数

Google 跟踪代码管理器脚本未捕获类型错误:无法读取未定义的属性“测试”

我正在尝试在我的页面上实施Google 跟踪代码管理器脚本,但它抛出了错误。我将 html 页面精简为最简单的内容:

<html>
<head>
    <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>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但我仍然看到控制台中抛出以下错误:

Uncaught TypeError: Cannot read property 'test' of undefined
    at <anonymous>:14:12
    at gtm.js?id=GTM-XXXX:57
    at Object.Th (gtm.js?id=GTM-XXXX:59)
    at sf (gtm.js?id=GTM-XXXX:31)
    at uk.B (gtm.js?id=GTM-XXXX:90)
    at ag (gtm.js?id=GTM-XXXX:99)
    at jg (gtm.js?id=GTM-XXXX:39)
    at Array.a.push (gtm.js?id=GTM-XXXX:105)
    at Array.<anonymous> (gtm.js?id=GTM-XXXX:105)
    at Lf (gtm.js?id=GTM-XXXX:34)
Run Code Online (Sandbox Code Playgroud)

GA 调试器 Chrome 扩展显示脚本仍在“工作”,即所有正确的 ga 方法都在触发。我只是关心这个错误是什么。

请注意,我在 Firefox 和 Safari 中也遇到了相同的错误(跟踪看起来略有不同,但它是相同的错误):

TypeError: undefined is not an object (evaluating 'tryformurls.test')
    Global Code (Script Element …
Run Code Online (Sandbox Code Playgroud)

javascript google-analytics google-tag-manager

6
推荐指数
0
解决办法
1万
查看次数

Google 跟踪代码管理器中的 JavaScript,“=”输出为“\x3d”,如何修复?

标签如下:

<script type="text/javascript">
    var foo = "="
</script>
Run Code Online (Sandbox Code Playgroud)

但是当我在预览模式下查看它时,它显示:

<script type="text/gtmscript>
    var foo = "\x3d"
</script>
Run Code Online (Sandbox Code Playgroud)

我完全迷失了这个,这是在“自定义 HTML 标签”中。

我究竟做错了什么?

javascript escaping google-tag-manager

6
推荐指数
1
解决办法
3272
查看次数

Google 跟踪代码管理器对网络性能(加载时间)的影响

我\xc2\xb4m 试图提高网站的加载时间和性能。总而言之,这是我在不包括 Google 跟踪代码管理器的情况下获得的平均加载时间统计数据。

\n\n

在此输入图像描述

\n\n

但是,当我仅将 Google 跟踪代码管理器包含在页面底部\n 结束正文标记上方的代码中时,我可以看到对性能的相关影响,例如:

\n\n

在此输入图像描述

\n\n
<script async defer src="https://www.googletagmanager.com/gtag/js?id=myappid"></script>\n    <script>\n      var gaEnv;\n      switch (window.location.hostname) {\n        case \'production-domain\':\n            gaEnv = \'production-id\'; // production\n            break;\n        default:\n            gaEnv = \'development-id\'; // development\n      }\n      window.dataLayer = window.dataLayer || [];\n      function gtag(){dataLayer.push(arguments);}\n      gtag(\'js\', new Date());\n      // Config for analytics\n      gtag(\'config\', gaEnv, { \'send_page_view\': false });\n      // Config for Adwords   \n      gtag(\'config\', \'adwords-id\');\n    </script>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我读过很多关于如何使用 async 和 defer 属性来提高这些脚本的性能的博客文章,但很明显,这些仍然对性能产生重要影响(加载时间超过 2 秒,加载时间超过 1 秒)在完成时间)。

\n\n

有什么 I\xc2\xb4m 缺少或可以做的吗?

\n

performance google-tag-manager web-performance

6
推荐指数
1
解决办法
2万
查看次数

使用 gtag (GA4) 手动生成 GA 链接器参数

背景

要将 client_id 从一个域传递到另一个域,Google 支持向作为跨域跟踪设置一部分的传出链接添加“链接器”参数。此链接器参数包含client_id, session_id(我相信,有关 Google Ads 的信息,例如gclid)和基本指纹 + 时间戳。在接收域上,如果浏览器指纹匹配并且时间戳不是太远,则传递的client_idsession_id会存储在第二域上的第一方 cookie 中并随后使用。

Analytics.js / GA-UA

使用analytics.js(GA-UA),您可以轻松执行以下操作,手动修饰 URL:

function decorateUrl(urlString) {
  var ga = window[window['GoogleAnalyticsObject']];
  var tracker;
  if (ga && typeof ga.getAll === 'function') {
    tracker = ga.getAll()[0]; // Uses the first tracker created on the page
    urlString = (new window.gaplugins.Linker(tracker)).decorate(urlString);
  }
  return urlString;
}
Run Code Online (Sandbox Code Playgroud)

然而,当仅加载 gtag 时,window.ga并且window.gaplugins未定义。据我所知,目前没有记录的方法可以使用 gtag 的链接器参数手动生成链接。

在 Google 的文档中,他们建议手动设置链接器。(https://support.google.com/analytics/answer/10071811?hl=en#zippy=%2Cmanual-setup)但这有几个缺点,例如我必须创建一个自定义的“指纹”逻辑(以便修饰的URL不共享),例如不包含 …

javascript google-analytics google-tag-manager

6
推荐指数
1
解决办法
1807
查看次数