Skip to content

Instantly share code, notes, and snippets.

View wetzler's full-sized avatar

Michelle Wetzler wetzler

  • Bay Area, California
View GitHub Profile
@wetzler
wetzler / gist:9241017
Created February 26, 2014 23:29
This gist shows you how to make a custom Keen IO funnel query using raw counts for each step (no actor property required)
Keen.onChartsReady(function(){
var visitors = new Keen.Metric("visited_form", {
analysisType: "count"
});
var formsStarted = new Keen.Metric("form_started", {
analysisType: "count"
});
@wetzler
wetzler / gist:9697727
Last active August 29, 2015 13:57
Sample code for a simple dashboard that takes in a timeframe from a query string parameter. Allows viewer to easily modify the time period for all charts in the dashboard. Also shows the formula to see "Page Viewed Before Page X"!
<!DOCTYPE html>
<html lang='en'>
<head>
<script>
var Keen=Keen||{configure:function(e){this._cf=e},addEvent:function(e,t,n,i){this._eq=this._eq||[],this._eq.push([e,t,n,i])},setGlobalProperties:function(e){this._gp=e},onChartsReady:function(e){this._ocrq=this._ocrq||[],this._ocrq.push(e)}};(function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src=("https:"==document.location.protocol?"https://":"http://")+"dc8na2hxrj29i.cloudfront.net/code/keen-2.1.0-min.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
// Configure the Keen Client
Keen.configure({
projectId: "<your project ID>",
@wetzler
wetzler / gist:11158767
Last active September 4, 2015 22:48
Generate a Keen IO Funnel Chart for game levels or user training steps. Calls on the Keen IO API using the Keen IO JavaScript library.
var Keen=Keen||{configure:function(e){this._cf=e},addEvent:function(e,t,n,i){this._eq=this._eq||[],this._eq.push([e,t,n,i])},setGlobalProperties:function(e){this._gp=e},onChartsReady:function(e){this._ocrq=this._ocrq||[],this._ocrq.push(e)}};(function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src=("https:"==document.location.protocol?"https://":"http://")+"dc8na2hxrj29i.cloudfront.net/code/keen-2.1.0.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
Keen.configure({ // configure the Keen Client
projectId: projectId,
readKey: readKey
});
Keen.onChartsReady(function() {
var numLevels = 10
var funnelSteps = prepareFunnel(numLevels)
@wetzler
wetzler / gist:11159633
Last active August 29, 2015 14:00
Analyze retention by finding the percentage of users who started your game X days ago that are actively playing it today. Calculating that percentage over time in a line chart so you can see how your retention is increasing or decreasing. For example, in "D1" retention you’d measure what percentage of users come back and play the game 1 day afte…
var Keen=Keen||{configure:function(e){this._cf=e},addEvent:function(e,t,n,i){this._eq=this._eq||[],this._eq.push([e,t,n,i])},setGlobalProperties:function(e){this._gp=e},onChartsReady:function(e){this._ocrq=this._ocrq||[],this._ocrq.push(e)}};(function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src=("https:"==document.location.protocol?"https://":"http://")+"dc8na2hxrj29i.cloudfront.net/code/keen-2.1.0.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
Keen.configure({ // configure the Keen Client
projectId: projectId,
readKey: readKey
});
Keen.onChartsReady(function() {
var daysInChart = 30
@wetzler
wetzler / gist:11160314
Created April 21, 2014 23:40
Divide two Keen IO series line charts to create new line chart. For example ARPDAU or other average or computed values.
<script>
var Keen=Keen||{configure:function(e){this._cf=e},addEvent:function(e,t,n,i){this._eq=this._eq||[],this._eq.push([e,t,n,i])},setGlobalProperties:function(e){this._gp=e},onChartsReady:function(e){this._ocrq=this._ocrq||[],this._ocrq.push(e)}};(function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src=("https:"==document.location.protocol?"https://":"http://")+"dc8na2hxrj29i.cloudfront.net/code/keen-2.1.0.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
var projectId = "<project_id>";
var readKey = "<project_key>";
// make sure Keen IO environment variables are set
if (projectId != "" && readKey != "") {
// configure the global Keen Client
Keen.configure({
@wetzler
wetzler / gist:11160518
Created April 21, 2014 23:50
Most basic ever gaming dashboard template!
<!DOCTYPE html>
<html lang='en'>
<head>
<script>
var Keen=Keen||{configure:function(e){this._cf=e},addEvent:function(e,t,n,i){this._eq=this._eq||[],this._eq.push([e,t,n,i])},setGlobalProperties:function(e){this._gp=e},onChartsReady:function(e){this._ocrq=this._ocrq||[],this._ocrq.push(e)}};(function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src=("https:"==document.location.protocol?"https://":"http://")+"dc8na2hxrj29i.cloudfront.net/code/keen-2.1.0-min.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
// Configure the Keen Client
Keen.configure({
projectId: "<your project ID>",
readKey: "<your read key>"
@wetzler
wetzler / gist:19465e0e283e0f25d605
Created May 27, 2014 21:53
This gist uses Keen IO conversion funnels to generate a line chart showing conversion over time. In this example we'll chart the number of video viewing sessions that make it past the 50% mark in the video.
Keen.onChartsReady(function() {
var dataPointsInChart = 7 // Number of days in your line chart
calculateConversionTrend(dataPointsInChart, "conversionLineChart")
function calculateConversionTrend(dataPointsInChart, div) {
var dataForLineChart = []
var i = 0
while (i < dataPointsInChart) {
@wetzler
wetzler / gist:f1dc8fe3cf0270fc9d34
Created May 27, 2014 23:35
This gist uses Keen IO conversion funnels to generate a line chart showing conversion over time. In this example we'll chart the number of video viewing sessions that make it past the 25%, 50%, 75%, and 100% mark in the video. The end result is a multiline chart with one line for each view marker (25%, 50%, 75%, 100%). This chart helps you answe…
Keen.onChartsReady(function(){
var dataPointsInChart = 7 // Number of days in your line chart
calculateConversionTrend(dataPointsInChart, "conversionLineChart")
function calculateConversionTrend(dataPointsInChart, div) {
var dataForLineChart = []
var i = 0
while (i < dataPointsInChart) {
@wetzler
wetzler / gist:df3537e0fb63602be996
Last active August 29, 2015 14:02
Pushpop script to check for 1) New users and 2) Newly active users sending data for the first time in 7 days
#!/usr/bin/env ruby
TEMPLATES_DIRECTORY = File.expand_path('../templates', __FILE__)
require 'date'
require 'pushpop'
require 'active_support/all' #for datetime calculation e.g. weeks.ago.at_beginning_of_week
job do
@wetzler
wetzler / gist:4befe1a8afdaa2429702
Last active August 29, 2015 14:02
Mashup two Keen IO queries using Keen IO JS library v3
Keen.ready(function(){
// ----------------------------------------
// Total Session Count
// How it works:
// Given a timeframe, calculate the number of unique session IDs found in the collection "screen_view"
// We use the "screen_view" collection because we know there is at least 1 screenview for every session.
// ----------------------------------------
var sessions_count = new Keen.Query("count_unique", {
eventCollection: "screen_view",