google-tag-manager - ec.js 可以通过服务器端 gtm 代理吗?

标签 google-tag-manager

想知道是否只有 gtm.js 和analytics.js 可以通过 gtm 服务器进行代理?在谷歌文档上找不到任何关于此的信息。另外,尝试使用服务器端 gtm 获取它时会收到错误 404。

最佳答案

存在一个错误,将通过https://your.domain/plugins/ua/ec.js获取plugins/ua/ec.js

发生这种情况时,您必须选择该客户端请求并手动返回脚本(通过在服务器端容器中写入客户端模板)。

找到了一个包含代码示例的存储库,它缩短了我原本要使用的时间。 信用:https://gist.github.com/mbaersch/e94e2499ea5bb761bf81878d815fd890#file-fix-ecjs-client-tpl 重要的部分来了:

const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
const sendHttpGet = require('sendHttpGet');
const templateDataStorage = require('templateDataStorage');
const returnResponse = require('returnResponse');
const key = "ec.js";

if (require('getRequestPath')() === '/plugins/ua/ec.js') {
  require('claimRequest')();
  setResponseHeader('content-type', 'application/javascript');
  const cachedBody = templateDataStorage.getItemCopy(key);
  if (cachedBody) {
    setResponseBody(cachedBody);
    setResponseStatus(200);
    returnResponse();
  } else {
    sendHttpGet('https://www.google-analytics.com/plugins/ua/ec.js', (statusCode, headers, body) => {
      templateDataStorage.setItemCopy(key, body);
      setResponseBody(body);
      setResponseStatus(statusCode);
      returnResponse();
    });    
  }  
}

关于google-tag-manager - ec.js 可以通过服务器端 gtm 代理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69728382/

相关文章:

google-analytics - "dataLayer.push"或使用 "dataLayer ="声明 Analytics 电子商务跟踪 GTM

android - 使用 firebase bundle 通过 GTM v5 增强电子商务标签

javascript - 使用谷歌标签管理器将综合浏览量发送到虚拟网址到谷歌分析

ios - 火力地堡 IOS : Warning "setScreenName:screenClass: must be called after a view controller has appeared"

javascript - 谷歌标签管理器单页应用获取历史变化元素

javascript - 从 GTM 数据层中的数组中提取数据

jquery - 跟踪 MailChimp 嵌入式表单上的提交内容

Javascript 函数作为变量

javascript - 使用 JQuery 获取 <h3> 内容

javascript - 结合 Google Analytics (gtag.js) 和 Google Tag Manager (gtm.js)