Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 延迟加载Google标签管理器_Javascript_Performance_Google Tag Manager_Pagespeed - Fatal编程技术网

Javascript 延迟加载Google标签管理器

Javascript 延迟加载Google标签管理器,javascript,performance,google-tag-manager,pagespeed,Javascript,Performance,Google Tag Manager,Pagespeed,我想根据以下条件延迟GTM的加载: 当页面DOM完全就绪时,2秒后 移动鼠标时 当页面滚动时 当click事件被注册时 这样,初始页面加载时间不会减慢,页面速度分数将上升 在我的初始测试中,我尝试删除脚本标记,然后在控制台中添加它。但是,初始页面视图未注册。其他事件都不是。如果在页面仍在加载时添加脚本,它似乎可以工作 问题是:如何延迟GTM,当GTM加载时,它会在数据层中查找事件并提交事件?这是我的工作重点: const script = document.createElement('sc

我想根据以下条件延迟GTM的加载:

  • 当页面DOM完全就绪时,2秒后
  • 移动鼠标时
  • 当页面滚动时
  • 当click事件被注册时
这样,初始页面加载时间不会减慢,页面速度分数将上升

在我的初始测试中,我尝试删除脚本标记,然后在控制台中添加它。但是,初始页面视图未注册。其他事件都不是。如果在页面仍在加载时添加脚本,它似乎可以工作


问题是:如何延迟GTM,当GTM加载时,它会在数据层中查找事件并提交事件?

这是我的工作重点:

const script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
// specifically this line below makes PageView get's properly triggered and fired
script.onload = () => { dataLayer.push({ event: 'gtm.js', 'gtm.start': (new Date()).getTime(), 'gtm.uniqueEventId': 0 }); }
script.src = 'https://www.googletagmanager.com/gtm.js?id=YOUR-GTM-ID-HERE'

document.head.appendChild(script);

似乎这只是立即执行,仍然以谷歌页面速度跳转“删除未使用的JavaScript”警告。你在用settimeout包装这个吗?@insivika检查这里的代码