2016-12-14 4 views
0

Ich habe eine Meteor-App, alle UI-Komponenten sind mit React gebaut. Ich benutze FlowRouter für das Routing.Wie verwende ich Yandex.Metrika in Meteor + React App?

Jetzt möchte ich Analytik mit Yandex.Metrika Service hinzufügen.

ich dieses Paket gefunden für React: https://github.com/narkq/react-yandex-metrika

Aber ich, wie ich es zu benutzen? Aus welchem ​​Grund brauche ich <YM /> Komponente aus diesem Beispiel?

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> 
    ); 
    } 
}); 

Und wo sollte ich das Tracker-Objekt initialisieren? Ich lese diese:

// 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]); 

Aber was ist Javascript Bündel und wo sollte ich meine im.init(id) Code platzieren?

Eigentlich alles, was ich brauche, ist funsctions zu haben Daten zu Metrika, wie hit (pageview analog rom ga), auf reachGoal und so zu senden.

Vielen Dank für Ihre Antworten!

Antwort

1

Aus welchem ​​Grund brauche ich eine Komponente aus diesem Beispiel?

Sie müssen es Metrika Haupt Code

Wie Metrika Werke laden: webmaster (Sie) fügt kleines Stück js Code (loader) auf alle Seiten. Dieser Code hängt ein async-Skript mit dem Hauptcode an (es ist ein bisschen größer als loader) und erzeugt eine Instanz des metrika-Objekts ('counter') - new Ya.Metrika(...params). Die Instanz wird in der globalen Variablen yaCounterXXXXX verfügbar sein, wobei XXXXX die ID Ihres Zählers ist.

So, <YM /> Komponente ist Lader aus dem vorherigen Absatz.

Eigentlich alles, was ich brauche, ist funsctions zu haben Daten zu Metrika, wie Hit (Seitenzugriff analog rom ga), reachGoal und so weiter zu senden.

Es gibt Dokument über das am Ende der Readme. Aber ich sehe Filter für Counter-ID für diese Methoden nicht. Vielleicht mache ich einen PR, um diese Funktionalität hinzuzufügen. In jedem Fall können Sie globale Variable yaCounterXXXXX wie diese yaCounterXXXXX.hit(url, params) oder yaCounterXXXXX.reachGoal(goalId, params)

Ich hoffe, ich habe Ihnen geholfen.

+0

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

+0

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

+0

Насколько я понял, Javascript-Bundle - это Skript-тег, где подключается ваш js. В двух словах - рендерить компонент и делать 'ym.init ([xxxxx]) 'Notwendigkeit _realnoy_ einmal, nachdem die Seite geladen wird. wenn aus irgendeinem Grund jedoch wiederholt Sie aufrufen, nichts Schreckliches passieren wird. Wenn die Auslöser mehrmals 'ym.init ([xxxxx])', dann, nach dem Code, werden die Daten –

Verwandte Themen