Code Monkey home page Code Monkey logo

voxa-ga's Introduction

Voxa Google Analytics

Build Status Coverage Status

A Google Analytics plugin for voxa

Installation

Just install from npm

npm install --save voxa-ga

Important! As of version 1.0, this plugin is designed to work with Analytic properties that are setup as Websites. Previously it was the opposite, working only with Mobile Analytics Properties.

Usage

require("voxa-ga")(skill, config.google_analytics);

Options

{
  trackingId: "UA-XXXXXX-X", // Your app's tracking id
  alexa: "UA-XXXXXX-X", // You can also specify platform specific key based on voxaEvent.platform.name
  google: "UA-XXXXXX-X",  // You can also specify platform specific key based on voxaEvent.platform.name
  appName: "hamurabi", // The application name. If not provided, an attempt will be made to derive it
  appVersion: "1.1", // The applications current version number. If not provided, an attempt will be made to derive it.

  ignoreUsers: [], // An array of users that will be ignored. Useful for blacklisting dev or monitoring accounts from analytics
  suppressSending: false, // A flag to supress sending hits. Useful while developing on the website
  suppressSlots: ['phonenumber'], // An array of slots that shouldn't be logged automatically. Use to remove PII slots.
}

What You Get

By attaching the plugin, for free you get the following

  • Track users by their Alexa user id
  • The paths of each response will be logged as a page view (e.g. Welcome.FirstTimeUser)
  • Events will be logged to track each
    • Intent (category: "Intents", action: "IntentName")
    • State (category: "States", action: "state-name")
    • Slot (category: "Slots", action: "slot-nmae", label: "slot-value")
  • User timings will be logged for
    • Request processing time (how much time your code takes)
    • Each state's occupancy time
  • The device's capabilities (e.g. AudioPlayer) are logged it the flash-version variable
  • Session start/stop bookends
  • The user's locale
  • Exceptions (fatal or caught) are captured
  • Health check events from dialog flow are suppressed. more details

Additionally a ga object is attached to the alexaEvent object, allowing you to log custom events.

Suppressing State Events

Sometimes smaller intermediary states are just not interesting to log. Suppress a state from logging as follows:

skill.onState("my-state", alexaEvent => {
  alexaEvent.ga.ignore();
  return { reply: "Greeting", to: "my-next-state" };
});

Custom Events

Log a custom event by invoking .event on the ga object

skill.onState("my-state", alexaEvent => {
  alexaEvent.ga.event("Category", "Action", "Label", Value);
  return { reply: "Greeting", to: "my-next-state" };
});

Timing

Have something to time? Use the ga object. Remember that the request and each state is already timed for you.

skill.onState("my-state", alexaEvent => {
  alexaEvent.ga.time("Category", "Variable");
  return longRunningOperation()
    .then(() => {
      alexaEvent.ga.timeEnd("Category", "Variable");
    })
    .then(finishIt);
});

Anything Else

Use the visitor object to get access to a universal analytics object.

skill.onState("my-state", alexaEvent => {
  alexaEvent.ga.visitor.transaction("213");
});

Sending events

The plugin will automatically send hits at the end of each request.

voxa-ga's People

Contributors

armonge avatar heneryville avatar omenocal avatar rmberrios avatar wuelcas avatar

Watchers

 avatar

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.