GithubHelp home page GithubHelp logo

okgrow / analytics Goto Github PK

View Code? Open in Web Editor NEW
213.0 15.0 61.0 331 KB

UNMAINTAINED! - Complete Google Analytics, Mixpanel, KISSmetrics (and more) integration for Meteor

Home Page: https://atmospherejs.com/okgrow/analytics

License: MIT License

JavaScript 100.00%
javascript meteor analytics google-analytics segment kissmetrics mixpanel

analytics's Introduction

Analytics

Complete Google Analytics, Mixpanel, KISSmetrics (and more) integration for Meteor

NOTE: This pkg is no longer being actively maintained, if you'd like to maintain this pkg please express interest by opening an issue.

OK GROW! analytics uses a combination of the browser History API, Meteor's accounts package and Segment.io's analytics.js to automatically record and send user identity and page view event data from your Meteor app to your analytics platforms.

Table of Contents

Background

Analytics 3.0+

In version 3.X of this package, the automatic page view tracking is handled by our new router-agnostic @okgrow/auto-analytics NPM package, which can be used by any JavaScript application whether using Meteor or not. This package adds automatic user identification by using hooks in the Meteor accounts package and building on Segment.io's analytics package through the @okgrow/auto-analytics package.

Analytics 2.1.0+

Our Analytics package has been rewritten to be router agnostic. You should be able to use this package with any router that you use with Meteor app. We have tested and used our Analytics package with iron-router, flow-router, and react-router. You can view and test this out in our iron-router, flow-router and react-router example apps located in the examples folder.

NOTE: A fundamental change that may affect some applications is that we no longer look for or use the router's route name when logging page views. Instead we use document.title. This may affect applications that do not change or set their document.title for each screen or page of their application. The simplest solution is to simply set document title like this document.title = "My new title"; for each screen or page in your application. If you are using flow router or iron router you can remain at okgrow:[email protected] to keep using the name of the route for your analytic events.

Pre Meteor 1.3.1

For Meteor Apps older than v1.3.1, please use v1.0.9 of this package. Going forward this package will officially only be supporting Meteor Apps >= v1.3.1

Install

In your Meteor project folder, run:

meteor add okgrow:analytics

Usage

This package will automatically configure the underlying @okgrow/auto-analytics package using Meteor.settings.public.analyticsSettings. In Meteor you typically specify your settings using a settings.json file:

{
  "public": {
    "analyticsSettings": {
      // Add your analytics tracking ids here (remove this line before running)
      "Google Analytics" : {"trackingId": "Your tracking ID"},
      "Amplitude"        : {"apiKey": "..."},
      "Chartbeat"        : {"uid": "..."},
      "comScore"         : {"c2": "..."},
      "HubSpot"          : {"portalId": "..."},
      "Intercom"         : {"appId": "..."},
      "Keen IO"          : {"projectId": "...", "writeKey": "..."},
      "KISSmetrics"      : {"apiKey": "..."},
      "Mixpanel"         : {"token":  "...", "people": true},
      "Quantcast"        : {"pCode": "..."},
      "Segment.io"       : {"apiKey": "..."}
    }
  }
}

And run your app with that settings file as follows:

meteor --settings settings.json

See the @okgrow/auto-analytics package for more details on configuration.

Currently Supported Analytic Services

See the @okgrow/auto-analytics package for up-to-date details of supported analytics services.

Page views

See the @okgrow/auto-analytics package for details on page view tracking. In short, that package uses the browser History API to automatically track page views.

Since the History API is used to automatically track page views, document.title is used instead of the router's route name as the default page name.

If you rely on your router's route name for the page name in page view events, you can easily set document.title programming using the router's route name. Here are examples of how to do this with React Router, Flow Router and Iron Router:

Routers

This package is router agnostic. It will work with any router, and by default it uses the document.title as the page name for reporting to your analytics service.

React Router

In your router setup, add a name property to your routes:

<Router history={ browserHistory }>
  <Route path="/" name="Home" component={ App } />
  <Route path="/one" name="One" component={ App } />
  <Route path="/two" name="Two" component={ App } />
  <Route path="/three" name="Three" component={ App } />
</Router>

NOTE The current route is passed in as a property named route to your component.

Then, in the render() function of your main layout component, using a package like react-document-title:

render() {
  return (
    <DocumentTitle title={this.props.route.name}>
      ...
    </DocumentTitle>
  );
}

Flow Router

Template.mainLayout.onRendered(function() {
  Tracker.autorun(() => {
    document.title = FlowRouter.getRouteName();
  });
});

Iron Router

Template.mainLayout.onRendered(function() {
  Tracker.autorun(() => {
    document.title = Router.current().route.getName();
  });
});

Disabling automatic page views

To disable automatic page view tracking change Meteor.settings as shown below then manually log a page view by calling analytics.page('page name'):

{
  "public": {
    "analyticsSettings": {
      // Disable autorun if you do not want analytics running on every route (remove this line before running)
      "autorun"  : false
    }
  }
}

Log signin/signout

If you have the accounts package installed, this package will automatically track when a user logs in and logs out. Logging in will call identify on the user and associate their Meteor.userId to their previous anonymous activities.

Event tracking

See the @okgrow/auto-analytics package for details on event tracking. In short, track any event by calling the analytics.track() function:

analytics.track("Bought Ticket", {
  eventName: "Wine Tasting",
  couponValue: 50,
});

Track visitor scrolling

Josh Owens' article, Google Analytics events, goals, and Meteor.js, goes over a great way to capture how far a visitor has scrolled down a page.

Browser Policy

If your project uses the Browser Policy package, we've included the Google Analytics and MixPanel domains in our browser policy configuration. Any additional services you add will need to be added to your browser policy config as well.

Example browser policy

BrowserPolicy.content.allowOriginForAll("www.google-analytics.com");
BrowserPolicy.content.allowOriginForAll("cdn.mxpnl.com");

If your project doesn't use the Browser Policy package, don't worry, it won't affect your usage.

Debugging

To log package activity to the console for debugging purposes, turn on debugging in the console:

> analytics.debug()

Turn debug logging off with:

> analytics.debug(false)

URL Whitelisting on Android Devices

If your app is running on Android devices you will probably have to add the cordova-plugin-whitelist package and set access rules in your mobile-config.js for all URLs of the platforms that you are using.

Example for Intercom:

App.accessRule('https://js.intercomcdn.com/*');
App.accessRule('https://static.intercomcdn.com/*');
App.accessRule('https://api-iam.intercom.io/*');
App.accessRule('https://widget.intercom.io/*');
App.accessRule('https://nexus-websocket-a.intercom.io/*');
App.accessRule('https://nexus-websocket-b.intercom.io/*');

To find all the necessary URLs for your project, build your production app and install it on your Android device. Then connect it via USB and open the Android Studio Device Monitor (Tools >> Android Device Monitor >> LogCat). Perform a relevant action and then search for "whitelist". It should a show message for each URL that was blocked.

Ad-blocker

When running your Meteor app in "development mode" ad-blocking web-browser extensions may block the okgrow:analytics package due to the word "analytics" in the package name. This only occurs when running Meteor in "development mode" because files are not bundled together and minified. To work around this issue you can disable your ad-blocker when running in development mode.

To test that application with an ad-blocker, run your Meteor app in production mode with this command:

meteor run --production --settings settings.json

NOTE If an ad-blocker is enabled the expected behavior is that analytic events will not be received. You'll see an error message in your console reporting the events being blocked.

Example React, Flow and Iron Router Apps

While page view event tracking is router agnostic, the examples directory contains example apps using the three most common routers used in Meteor apps: React Router, Flow Router and Iron Router. These apps can be run from within their respective directories with:

meteor npm start

Maintainers

This is an open source package. We hope to deal with contributions in a timely manner, but that's not always the case. The main maintainers are:

@okgrow

Feel free to ping if there are open issues or pull requests which are taking a while to be dealt with!

Additional Notes

There has been at least one report of Google Analytics taking over a day in between GA account creation and any data showing up on the actual GA dashboard. See this issue for details. You may just need to wait if nothing's showing up.

Contributing

Issues and Pull Requests are always welcome.

Please read our contribution guidelines.

If you are interested in becoming a maintainer, get in touch with us by sending an email or opening an issue. You should already have code merged into the project. Active contributors are encouraged to get in touch.

Please note that all interactions in @okgrow's repos should follow our Code of Conduct.

License

Released under the MIT license © 2015-2017 OK GROW!.

analytics's People

Contributors

arrygoo avatar benstr avatar bergjs avatar ccuilla avatar cfnelson avatar ctaloi avatar dan335 avatar deanius avatar deanrad avatar drone1 avatar elie222 avatar gdw2 avatar hpx7 avatar jamielob avatar karldanninger avatar marvinmarnold avatar mlecoq avatar ograycode avatar pauldowman avatar pem-- avatar rgould avatar richardlitt avatar robertlowe avatar tsemana avatar wehrlock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

analytics's Issues

Data seems to be one page behind

I added this package to my site and ran analytics.debug() in the console.

When I jump from page to page, I'm getting data such as this:

properties: {
  name: "howToPlay",
  path: "/transfers",
  ...
}

This is data I get when I go from the transfers page to the howToPlay page. (The path for the howToPlay page is "/howToPlay". And the page for the transfers page is "/transfers").

Initialisation/timing issues?

Hi,

Firstly, great package - thanks a lot for making it.

I'm using the package with Flow Router 2.0.0 as per the PR I submitted so apologies in advance if this issue is specific to that although I think it might apply to older versions of Flow Router too.

There seem to be two issues/bugs:

  1. On initial page load analytics.js doesn't seem to have initialised and so the first page view isn't tracked.
  2. Moving between routes the previous URL is sometimes reported as the current URL.

I'm basing the above on what analytics.debug chucks out.

I've managed to patch both of these issues by wrapping the reporting code in a timeout:

Meteor.setTimeout(function() {
  if (context.route && context.route.name) {
    analytics.page(context.route.name);
  } else {
    analytics.page(context.path);
  }
}, 500);

But that seems a bit hacky! I was just wondering if anyone else had any ideas as to how to resolve the issue?

Thanks,

Tom

Server-Side Console Logging

I'm getting this logged to console on app startup. Is this just debug code that was never removed?

=> Started proxy.                             
=> Started MongoDB.                           
I20150311-10:26:22.472(-4)? This should not show
=> Started your app.

Support for oAuth users

I'm working with Mixpanel and trying to identify users in the app. While running the analytics.debug() function, I can see the identify method being called properly, however, no identity/people data is showing up in Mixpanel (although moving between pages does show up).

This appears to apply to both accounts-password users and accounts-<service> users.

Looking at the package code, it looks like there's only support for accounts-password users. Specifically this line:

var userEmail = user.emails && user.emails[0] ? user.emails[0].address : 'n/a';

Would it be possible to get support for oAuth users added? This would require a little refactor that would look at the Meteor.user().services.<service>.email key as well.

I wouldn't be able to do it immediately, but if this is something you'd be open to a PR on, let me know :)

Version constraint - Can't update okgrow:analytics 0.4.3

Can't update this package. I get the following message:

The following top-level dependencies were not updated to the very latest version available:
 * okgrow:analytics 0.4.3 (1.0.1 is available)

I tried the suggested action with meteor add okgrow:analyticsand got this message:

okgrow:analytics without a version constraint has already been added.

What could the version constrain be coming from?

I am on Meteor 1.2.1 and have all other packages updated as well.

package causes client errors

hey

I added your package to my project and configured Meteor.settings to include a GA key
However, once the package is added, my app is broken

I get this warning in console (I have iron:router):
Route dispatch never rendered. Did you forget to call this.next() in an onBeforeAction?

I know your code calls this.next(), but something seems to be broken
Anyway, the program execution gets cut and its indication is parts of my app produce errors (unknown variables etc)

I don't really know how we can help each other with that, as I can't isolate the problem

UPDATE:

the minute I opened the issue, I think I figured where the problem is...
in my project, I use a transform function for my users collection, which leads to various code executions
My guess would be your package runs first, calling Meteor.user() and in turn invokes the transform function. As your package runs before other init code is executed, this leads to complications
The workaround may not be trivial (tinkering with load order, if possible at all), so I think it should be made clear to other people

Publication Conflicts With User Services Publications - Breaks App For Facebook

https://github.com/okgrow/analytics/blob/master/lib/server/publications.js

The publications page is a serious issue for anyone who requests data because of this issue:
meteor/meteor#3764
I can't request anything from 'services.facebook' or 'services.instagram' at all because of this.

It breaks the avatar package, as well as blocking me from being able to get social info other than email generally. This is a big problem. Until Meteor fixes this, please add an explanation to your main page to add a publish request.

FlowRouter doesn't track first pageview

Seems like router calls analytics.page(page.name, page); before initializing analytics. Is it ok to fix it with timeout?

Meteor.setTimeout(function(){
      analytics.page(page.name, page);
    }, 500);```

Using Analytics Package with Flurry and Multiple API Keys

This may or may not be an issue, as I haven't actually started using the package yet. The reason being that we were looking at using Flurry, which requires different projects (and API keys) for different mobile platforms. We are currently building our Meteor app for iOS and Android, which means I have a unique Flurry project and API key for each.

I saw that @pauldowman mentioned something about potentially being able to configure Analytics via JS in another issue (#3), which I think would address this scenario since we could configure the package on startup based on whether it was an Android or iOS client.

And if there is another solution I'm just not seeing please let me know. Thanks!

Exception in onLogin callback: ReferenceError: mixpanel is not defined

I am new to meteor stuff as well as analytics so sorry if I dont get some common sense stuff here :)

SO I am trying to create a server side event to track the signup through facebook and google and if done with password than password.

I have installed okgrow package and when I try to track the properties I am unable to track services(fb or google) and roles which are user properties.

Also the major issue I guess is the error which says mixpanel is undefined on the terminal.

This all I am trying to do it on server side in package.js. I have properly set the api.use and files for server to access.

below is the code and the error I am facing.

function my_analytics() {
    Accounts.onLogin(function(user){
        if(!user)
            return
        mixpanel.register('user',{
            '$email': user.email[0].address,
            'roles': user.profile.roles
            "services": user.services
        });    
    })
}

Meteor.startup(function(){
    my_analytics();    
})

I20151028-19:46:33.319(5.5)? Exception in onLogin callback: ReferenceError: mixpanel is not defined
I20151028-19:46:33.320(5.5)? at packages/my:package/server.js:18:1
I20151028-19:46:33.320(5.5)? at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
I20151028-19:46:33.320(5.5)? at packages/meteor/dynamics_nodejs.js:121:1
I20151028-19:46:33.320(5.5)? at packages/accounts-base/accounts_server.js:87:1
I20151028-19:46:33.323(5.5)? at [object Object]..extend.each (packages/callback-hook/hook.js:102:1)
I20151028-19:46:33.323(5.5)? at successfulLogin (packages/accounts-base/accounts_server.js:86:1)
I20151028-19:46:33.323(5.5)? at attemptLogin (packages/accounts-base/accounts_server.js:258:1)
I20151028-19:46:33.323(5.5)? at [object Object].Meteor.methods.login (packages/accounts-base/accounts_server.js:411:1)
I20151028-19:46:33.324(5.5)? at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
I20151028-19:46:33.324(5.5)? at packages/ddp/livedata_server.js:648:1
I20151028-19:46:34.067(5.5)? Exception in onLogin callback: ReferenceError: mixpanel is not defined
I20151028-19:46:34.067(5.5)? at packages/my:package/server.js:18:1
I20151028-19:46:34.067(5.5)? at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
I20151028-19:46:34.068(5.5)? at packages/accounts-base/accounts_server.js:87:1
I20151028-19:46:34.068(5.5)? at [object Object].
.extend.each (packages/callback-hook/hook.js:102:1)
I20151028-19:46:34.067(5.5)? at packages/meteor/dynamics_nodejs.js:121:1
I20151028-19:46:34.068(5.5)? at successfulLogin (packages/accounts-base/accounts_server.js:86:1)
I20151028-19:46:34.068(5.5)? at attemptLogin (packages/accounts-base/accounts_server.js:258:1)
I20151028-19:46:34.069(5.5)? at [object Object].Meteor.methods.login (packages/accounts-base/accounts_server.js:411:1)
I20151028-19:46:34.069(5.5)? at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
I20151028-19:46:34.069(5.5)? at packages/ddp/livedata_server.js:648:1

analytics not defined

meteor list
...
okgrow:analytics               0.3.0  Complete Google Analytics, Mixpanel, KISSmetrics (and more) integration for Meteor
...

meteor --version
Meteor 1.1.0.2

settings.json contains

{
    "public": {
        ....
        "analyticsSettings": {
            "Google Analytics": {"trackingId": "XXXXX"}
        }
    },
    ...
}

I start meteor with

meteor --settings config/settings.json

no error messages

when I start

meteor shell

and type

analytics.debug()

I get

ReferenceError: analytics is not defined

Error on Local Environment

Hello:

Despite following the instructions and placing the trackingID inside a "public" block in my settings.json, I still get an error when developing on my local in the browser console:

Missing analyticsSettings in Meteor.settings.public

However, the tracking seems to work just fine in production. This is my settings.json block:

   "public":{
      "analyticsSettings":{
         "Google Analytics":{
            "trackingId":"UA-XXXXXXXX-X"
         }
      }
   },

ga on server side for webhooks API

Hi folks,

are there plans (is it possible) to use the package on the meteor server side?
I am having a small (webhook) API, exposed for mailgun and I want to track some events on ga.
Does this make sense, has anyone tried this?

BR, Carsten

How can I send the userId to Google Analytics?

I've set up a dedicated userId view in Google Analytics (GA), yet I haven't been able to see any activity from logins and logouts even though the package automatically calls identify with the userId. I suspect this is because analytics.js doesn't automatically send any user info to GA on identify. Has anyone managed to do this?

I'm also using the GA debugger extension for Chrome, and it looks like the uid is never being sent.

Allow server-side analytics

Currently we use Segment's open source analytics.js library, which I don't think would work server side. I haven't investigated how we would make it work but it would be great to be able to log events on the server side too.

Can't get Google to recognize tracking

I don't know if I missed a step or something but has anyone had any issues with Google taking a while to recognize tracking is installed?

When I run the analytics debugging Chrome extension I see the initialization of ga and the creation of a tracker all with the proper ID. I see the events being fired off but my dashboard still shows nothing and says it's not installed.

Allow adding only specific integrations

It should be possible to split this into multiple packages, e.g. okgrow:analytics-google, okgrow:analytics-mixpanel, etc.

I haven't investigated but we could probably split out the integrations from analytics.js into separate packages.

Note that I've tested it and we would only save about 40k currently. Less if you use more than one integration.

wrong page tracking

hey @tsemana,

following specific requirements in my project, I've decided to write my own analytics wrapper (which also includes a server-side analytics-node wrapper, btw)

Naturally, I've mentally borrowed basic ideas from your project, such as running a page track within an onRun event (originally suggested by the Iron Router author, of course)

However, I've realized that page tracks are inaccurate, as the recorded url & path in a page track call are actually of the preceding url to the one you track

to fix that, I've wrapped the page track in a Tracker.afterFlush:

Router.onRun(function() {
var router = this;
Tracker.afterFlush(function() { analytics.page(router.route.getName()); // etc });
this.next();
})

this way, it's guaranteed the right url is recorded

Fix example apps

The example apps need some work, at least:

  1. The / route is missing
  2. They need accounts-password, accounts-facebook, accounts-google and accounts-github to test identify

analytics.initialize is not a function ?

i added the okgrow:analytics package and updated my settings.json using the example provided, but i'm getting an error when running my app.

Error: analytics.initialize is not a function
TypeError: analytics.initialize is not a function
    at http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:36:15
    at runStartupCallbacks (http://localhost:3000/packages/meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:785:22)
    at HTMLDocument.ready (http://localhost:3000/packages/meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:787:3)

settings.json

  "public" : {
    "analyticsSettings": {
      "Mixpanel": {
        "token": "<my_token_here>",
        "people": true
      }
    }
  }

Is revenue tracked?

I'm playing with adding the revenue property to events along with Mixpanel, however, no revenue data is showing up on Mixpanel. Is this passed along? Note: I'm adding Mixpanel directly through the package and not adding it to Segment. An example event:

analytics.track( 'Made a purchase', {
  revenue: 149.00
});

The event does show up on Mixpanel, but just as an event for the user. The revenue data shows up in the event data but is not acknowledged by Mixpanel's revenue feature. Any thoughts?

problem with Amplitude integration in Segment

I have included okgrow:analytics in my meteor project. Using the right Segment.io appKey, I can see all the tracked events in the Segment debugger in real time. great.

Amplitude integration is enabled in the Segment dashboard.
But I can not see any events reported in Amplitude. It keeps saying "no data".

If I deactivate the okgrow:analytics package, and include the Segment javascript initialization code manually, everything's ok : the events are properly transmitted to Amplitude.

I'll keep this working solution for now, but if anyone has an idea, I'm interested.
Thanks.

Make the automated user tracking optional

I understand this behaviour is desired when accounts-base is used, but in our case we want a little bit of extra control over it. Constant "Signed in" events are when the user first loads the page, which makes sense in Meteor, but does pollute the data a bit.

I would prefer to be able to turn this off through a configuration.

Iron Router EnsureSignedIn Issue?

Hi, i'm using your plugin with IR and the Accounts Core EnsureSignedIn plugin. In my instance of okgroup:analytics, i've noticed that every router interaction seems to send a 'signedIn' track event to mixpanel. The result is that in my mixpanel event log, i'm seeing a large volume of signedIn events (shown below) repeatedly displayed whenever a route changes. Is this by design?

screen shot 2015-04-28 at 11 23 45

ga anonymize IP

hey guys,
thanks for the convenient package. quick question: i need to anonymize the IP through ga('set', 'anonymizeIp', true); in google analytics. can I do that using this package? if yes, how and where would be the best place?

maximum call stack size exceeded -- using FlowRouter.triggers.enter

i'm using FlowRouter for routing, trying to log each time it deals with a route (simulating "page loads")

var pageLoadTracking = function( context ){
  analytics.page(context.route)
}

FlowRouter.triggers.enter([pageLoadTracking])

when i do this, the browser chokes and throws this error

Error: Exception from Tracker recompute function:


> Before: 2858ms (diff: 2858ms)
    at usePostMessage (setimmediate.js:111)
    at setimmediate.js:140
    at meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:415
    at meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:1086
reporters.js?1434055913401:67 Error: RangeError: Maximum call stack size exceeded
    at new Boolean (native)
    at Boolean.toString (native)
    at 7.module.exports (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:2270)
    at clone (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:11544)
    at clone (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:11638)
    at clone (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:11638)
    at clone (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:11638)
    at clone (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:11638)
    at clone (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:11638)
    at clone (http://localhost:3000/packages/okgrow_analytics.js?bf33fbe0c5894de7177a754bf4c090a67b7fe529:59:11638)

as soon as i take the FlowRouter.triggers.enter code out, all is good in the world.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.