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