2016-12-14 2 views
0

У меня есть приложение Meteor, все компоненты пользовательского интерфейса построены с помощью React. Я использую FlowRouter для маршрутизации.Как использовать Yandex.Metrika в приложении Meteor + React?

Теперь я хочу добавить аналитику с помощью сервиса Yandex.Metrika.

Я нашел этот пакет для React: https://github.com/narkq/react-yandex-metrika

Но я, как я должен использовать? По какой причине мне нужен компонент <YM /> из этого примера?

import {Initializer as YM} from 'react-yandex-metrika'; 

// Use the initializer to add the script to your page somewhere. 
var MyComponent = React.createClass({ 
    render: function() { 
    return (
     <div> 
     // SNIP 
      <YM /> 
     // SNIP 
     </div> 
    ); 
    } 
}); 

И где я должен инициализировать объект трекера? Я прочитал это:

// This is supposed to be executed only in browser and only once. 
// Because of that, the most sensible place for this code is right after you javascript bundle. 
ym.init([987654321]); 

Но что такое расслоение яваскрипт и где я должен поместить мой im.init(id) код?

На самом деле все, что мне нужно, чтобы иметь funsctions для отправки данных в Метрика, такие как hit (pageview аналог ПЗУ га), reachGoal и так далее.

Благодарим вас за ответы!

ответ

1

По какой причине мне нужен компонент из этого примера?

Вам это нужно, чтобы загрузить основной код Метрики в

Как Метрика работы: вебмастера (вы) вставляет небольшой кусок JS кода (загрузчик) на все страницы. этот код добавляет скрипт async с основным кодом (он немного больше, чем загрузчик) и создает экземпляр объекта metrika ('counter') - new Ya.Metrika(...params). Экземпляр будет доступен в глобальной переменной с именем yaCounterXXXXX, где XXXXX является идентификатом вашего счетчика.

Итак, <YM /> Компонент является загрузчиком предыдущего абзаца.

На самом деле все, что мне нужно, чтобы иметь funsctions для отправки данных в Метрика, например, хит (аналог просмотров страниц ПЗУ га), reachGoal и так далее.

Существует документ о том, что в нижней части readme. Но я не вижу фильтра по идентификатору счетчика для этих методов. Возможно, я добавлю эту функцию. В любом случае вы можете использовать глобальную переменную yaCounterXXXXXyaCounterXXXXX.hit(url, params) или yaCounterXXXXX.reachGoal(goalId, params)

Надеюсь, я помог вам.

+0

Дмитрий, спасибо большое за ответ. Остался непонятным следующий момент - где необходимо инициализировать счётчик? Написано, что это нужно делать единожды после "JavaScript bundle". Насчёт экземпляра счётчика я понял, всю документации метрики читал, но применительно к реакту, поясните, пожалуйста .. создайте экземпляр необходимо в каждом элементе (или для каждого шаблона) или для каждого шаблона (а шаблоны в данном случае это компоненты, но которые состоят из других компонентов реакта)? Возможно, проясню свой вопрос: у меня имеется четкая связь "адрес (маршрут) - шаблон" –

+0

надеюсь на ваш ответ –

+0

Насколько я понял, javascript-bundle - это скрипт-тег, где подключается ваш js. В двух словах - рендерить компонент и делать 'ym.init([xxxxx])' нужно единожды после _реальной_ загрузки страницы. Однако, если по какой-то причине, вы несколько раз вызовете , то ничего страшного не произойдет. Если же вызвать несколько раз 'ym.init([xxxxx])', то, судя по коду, данные будут задваиваться –

Смежные вопросы