NW.js / NodeJS Google 分析集成
NW.js / NodeJS Google Analytics integration
我尝试在 node-webkit 应用程序中使用 Analytics Measurement Protocol 实施 google 分析 API,我设法用 ga-dev-tools 做到了。appspot.com 但我不能将它用于简单的 javascript 请求。
我想问题出在 header 参数 "Origin"(在 node-webkit 应用程序中是 "file://"),因此我尝试对节点使用 http 请求,但我得到了相同的结果: google 响应 "hitParsingResult": [ {"valid": true,...
但是在 Google Analytics Dashboard 中?看不到事件,在这种情况下,看不到综合浏览量。
奇怪的是,如果我用 chrome inspector 复制请求
ga-dev-tools.appspot.com(复制为 cURL),我在 linux 终端中执行它,它可以工作,但不适用于 nodejs http 请求。
详情:
cURL 调用
curl 'https://www.google-analytics.com/collect' -H 'Accept: */*' -H 'Referer: https://ga-dev-tools.appspot.com/hit-builder/' -H 'Origin: https://ga-dev-tools.appspot.com' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data 'v=1&t=screenview&tid=UA-XXXXX-X&cid=develop&an=mainapplication&av=2.0.1&cd=login'
nodejs代码
request.post("https://www.google-analytics.com/debug/collect",
var options = {
url: 'https://api.github.com/repos/request/request',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36',
'Origin': 'https://ga-dev-tools.appspot.com',
'Referer': 'https://ga-dev-tools.appspot.com/hit-builder/',
'Accept': '*/*'
},
formData: 'v=1&tid=UA-XXXXX-X&cid=develop&an=mainapplication&av=2.0.1&t=screenview&cd=login'
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
else
{
console.error(error)
}
})
我试图找到一个 nodejs 模块来执行此操作,但找不到具有应用程序集成(screenview、an、av..)的模块
有人可以帮助我吗?
您的 curl 请求将发送至 https://www.google-analytics.com/collect
,您的 Node.js 请求将发送至 https://www.google-analytics.com/debug/collect
(请注意 URL 中的 debug
)。
调试端点仅用于调试错误。它不会将实际点击发送到 Google Analytics。我怀疑这是你的问题。
我解决了所有问题并在 github 上发布了代码,如果有人需要的话:
nwjs-analytics
我尝试在 node-webkit 应用程序中使用 Analytics Measurement Protocol 实施 google 分析 API,我设法用 ga-dev-tools 做到了。appspot.com 但我不能将它用于简单的 javascript 请求。
我想问题出在 header 参数 "Origin"(在 node-webkit 应用程序中是 "file://"),因此我尝试对节点使用 http 请求,但我得到了相同的结果: google 响应 "hitParsingResult": [ {"valid": true,...
但是在 Google Analytics Dashboard 中?看不到事件,在这种情况下,看不到综合浏览量。
奇怪的是,如果我用 chrome inspector 复制请求 ga-dev-tools.appspot.com(复制为 cURL),我在 linux 终端中执行它,它可以工作,但不适用于 nodejs http 请求。
详情: cURL 调用
curl 'https://www.google-analytics.com/collect' -H 'Accept: */*' -H 'Referer: https://ga-dev-tools.appspot.com/hit-builder/' -H 'Origin: https://ga-dev-tools.appspot.com' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data 'v=1&t=screenview&tid=UA-XXXXX-X&cid=develop&an=mainapplication&av=2.0.1&cd=login'
nodejs代码
request.post("https://www.google-analytics.com/debug/collect",
var options = {
url: 'https://api.github.com/repos/request/request',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36',
'Origin': 'https://ga-dev-tools.appspot.com',
'Referer': 'https://ga-dev-tools.appspot.com/hit-builder/',
'Accept': '*/*'
},
formData: 'v=1&tid=UA-XXXXX-X&cid=develop&an=mainapplication&av=2.0.1&t=screenview&cd=login'
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
else
{
console.error(error)
}
})
我试图找到一个 nodejs 模块来执行此操作,但找不到具有应用程序集成(screenview、an、av..)的模块
有人可以帮助我吗?
您的 curl 请求将发送至 https://www.google-analytics.com/collect
,您的 Node.js 请求将发送至 https://www.google-analytics.com/debug/collect
(请注意 URL 中的 debug
)。
调试端点仅用于调试错误。它不会将实际点击发送到 Google Analytics。我怀疑这是你的问题。
我解决了所有问题并在 github 上发布了代码,如果有人需要的话: nwjs-analytics