2014-12-30 2 views
0

Я создал приложение, использующее Meteor.js. Теперь я расширяю это приложение, чтобы стать API и отвечать, используя только данные JSON. Когда мое приложение работает только с сервером, как я могу внедрить в него Google Analytics?Можно ли отправлять данные в Google Analytics с сервера Meteor.js?

Фрагмент кода:

if (Meteor.isServer) { 
    Meteor.startup(function() { 
    Router.map(function() { 
     this.route('methodExample', { 
     path: '/api', 
     where: 'server', 
     action: function() { 
      // standard GA code snippet 
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[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;m.parentNode.insertBefore(a,m) 
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 
      ga('create', 'UA-XXXXXXX-9', 'auto'); 
      ga('send', 'pageview'); 

     } 
     }); 
    }); 
    }); 
} 

Ошибки я получаю:

ReferenceError: document is not defined

Если я заменяю document и window с this.url я получаю эту ошибку:

TypeError: Cannot set property 'l' of undefined

ответ

0

Сервер делает не имеют прямого доступа к DOM клиента, который как он выглядит, как вы пытаетесь сделать. По крайней мере, я этого не знаю. Код, который вы публикуете выше, кажется, является общим кодом на стороне клиента, который, как мне кажется, делает некоторые манипуляции с DOM, чтобы заставить данные аналитики отправляться в Google при загрузке страницы.

Вы можете, однако, выполнять вызовы на удаленные веб-службы HTTP из кода сервера. Здесь приходит в голову пакет http, но я уверен, что есть и другие на Atmostphere. Это позволит вам позвонить в веб-службу, и я уверен, что вы можете найти примеры того, как это сделать, чтобы отправлять данные Google Analytics непосредственно из JS, не требуя загрузки страницы. Я сделал быстрый поиск в Интернете и нашел, что у Google есть analytics.js, который, похоже, делает именно это. И, выполнив поиск по Atmosphere for "analytics", найдено по крайней мере несколько пакетов, которые уже включают библиотеку JavaScript analytics.js в ваше приложение Meteor.