繁体   English   中英

使用应用脚本的测量协议向 Google Analytics 发出 POST 请求返回有效响应但不起作用

[英]POST Request to Google Analytics with Measurement Protocol from the App Script returns valid response but doesnt work

我正在尝试使用测量协议将离线转化数据发送到 Google Analytics

我正在使用 Google AppScripts 发送这个 POST 请求:

function hitPageViewGA (line,sheet) {

  var range = sheet.getRange(line,1,1,10);
  var values = range.getValues();

  var origem = values[0][6];
  var campanha = values[0][7]

  var data =    {'v': '1',
                 'tid': 'UA-81598809-3',
                 'cid': generateUUID_(),
                 'z': Math.floor(Math.random()*10E7),
                 't':'pageview',
                 'dl':'https://77digitalmarketing.com/teste',
                 'cs':origem,
                 'cn':campanha
                };

   var payload = Object.keys(data).map(function(key) {
                                        return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
                                    }).join('&');

  var options = {
  'method' : 'POST',
  'payload' : payload,
  'headers' : {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}
    }; 


  var response = UrlFetchApp.fetch('https:/www.google-analytics.com//collect',options);

  return response; 
}

当我将请求发送到https://www.google-analytics.com/debug/collect以验证请求时,我得到了有效的响应。 此外,当我在 Request Builder 中测试生成的有效负载时,它起作用了! 当请求由 Google App Scripts 完成时,我只是不工作。

有人知道为什么会这样吗?

谢谢!

好吧,事实证明这是一个IP问题。 Google AppsScripts 使用 Google Analytics 识别为机器人的一些标准 IP 发送请求,因此我只需要在请求中指定 IP 地址。

首先,您在代码“//collect”中有一个拼写错误。 这可能导致它...

我整个上午都在“用头撞墙”来让 Analytics 与 Apps Script 一起工作......

我有一个适用于另一个 Analytics 媒体资源的有效 Apps 脚本代码。 我设置了一个新属性,复制了代码,事件根本没有出现。 当我从 Postman 发送相同的请求时,我立即在实时仪表板中看到了它......

为了让故事简短,因为我仍然很生气,并为您省去一些挫折:) 只需禁用机器人过滤! 转到管理 -> 查看设置并禁用机器人过滤选项。

出于某种原因,来自 Apps 脚本环境的请求被视为可疑...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM