首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将G分析集成到Node.js API中

将G分析集成到Node.js API中
EN

Stack Overflow用户
提问于 2017-07-18 16:49:23
回答 1查看 441关注 0票数 1

我目前正忙于这个项目:将GA集成到REST中,这样我就可以检索度量和维度。我必须强调,我正在本地主机上运行API,它可能解释为什么它不工作.?

我试图通过不同的方式整合GA:

  1. 使用通用分析(https://github.com/peaksandpies/universal-analytics/blob/master/AcceptableParams.md)

代码语言:javascript
复制
const ua = require('universal-analytics');
require('dotenv').config({path: '../.env'});

// to retrieve the number of connexions to the homepage
server.route({
    method: 'GET',
    path: '/homepage',
    handler: function (request, reply) {
       ...
       const visitor = ua(process.env.UA_ID);
       visitor.pageview('/bookmarks', 'http://localhost:4000', 'Homepage', (err) => {
          if (err) {
             throw err;
           }
       });

      return reply.view('index');
    }
 });

 // I have pretty much the same thing at the end of a POST endpoint handler
 // to retrieve the number of new data posted

   handler: function (request, reply) {
   ...
   const user = ua(process.env.UA_ID, userId(request.auth.credentials.username));
   user.event('Bookmarks', 'new_bkm_created', payload.title, (err) => {
       if (err) {
          throw err;
        }
    });
 }

  1. 创建trackEvent函数(https://cloud.google.com/appengine/docs/flexible/nodejs/integrating-with-analytics)

在google.js中

代码语言:javascript
复制
const got = require('got');

module.exports = function trackEvent (propertyId, category, action, options) {
  const data = {
      v: '1',   // API version
      tid: propertyId,   // Tracking / Property ID.
      t: 'event',   // Event hit type.
      ec: category,  // Event category.
      ea: action   // Event action.
  };

  if (options) {
      if (options.label) {
        data.el = options.label; // Event label.
      }
      if (options.value) {
        data.ev = options.value; // Event value.
      }
  }

  return got.post('http://www.google-analytics.com/collect', {
      body: data,
      form: true
  });
};

在app.js中

代码语言:javascript
复制
require('dotenv').config({path: '../.env'});
const trackEvent = require('./google');

const postHandler = (request, reply) => {
  ...
  trackEvent(process.env.UA_ID, 'Thing', 'new_thing_created').then(() => {
    return reply(bookmark).code(201);
  }
} 

  1. 从管理->属性-->跟踪信息(https://developers.google.com/analytics/devguides/collection/analyticsjs/)粘贴网站跟踪代码

代码语言:javascript
复制
<script>
(function(i,s,o,g,r,a,m)i['GoogleAnalyticsObject']=ri[r]=i[r]||function(){  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com, 'analytics.js','ga');
ga('create', 'UA-XXX-whatev', 'auto');
ga('send', 'pageview');

</script>

我还尝试了在第三个标题的链接上提出的异步版本。问题是,我不喜欢这种方式--我不知道如何从前端创建ga的处理程序中启动事件和页面视图。

不管怎么说,它们都不管用.我没有错误,但G分析中没有出现任何错误。正如您所知,我在默认url中使用了example.com,因为它不适用于localhost URL。

你有什么线索能帮我吗?提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-19 09:14:22

结果,这三种方法中有一种行之有效:第一种方法是通用分析。人们需要耐心地看到第一次跟踪的事件。我热烈推荐这个模块,非常开发人员友好;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45172790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档