Coder Social home page Coder Social logo

interactor's Introduction

Interactor.js

A simple, light-weight (3KB minified), no dependency, front-end website interaction tracker.

Collects usage data and submits it to a user-defined server endpoint on the beforeunload event.

Great for creating a database to drive analytics and inform A/B testing and other site optimization decisions.

This data can help you analyze:

  • How your users navigate your website
  • Engagement levels on a per-page and site-wide basis
  • What platforms, language settings, and browser dimensions your users have
  • Bounce rates, page and site bottle-necks, impressions, and conversions

Contributions welcome!

What Data is Provided?

General Data:

  • Which page is loaded
  • When the user loaded the page
  • When the user left the page
  • The URL of the loaded page
  • The previous page location
  • The title of the page
  • The language settings of the user
  • The user's platform
  • The port used to access the web server
  • The inner and outer width and height of the web browser

Interaction / Conversion Data:

  • The interaction type (i.e. general interaction or conversion)
  • The time of the interaction
  • The event that triggered interaction
  • The target HTML element tag
  • The target HTML element classes
  • The target HTML element content (i.e. text, etc.)
  • The cursor position relative to client
  • The cursor position relative to screen

Example Usage

Include the script in your HTML and invoke it.

<!DOCTYPE html>
<html>
	<head>
		<title>Interaction Tracker Example</title>
	</head>
	<body>
		<div class="interaction"></div>
		<div class="interaction"></div>
		<div class="interaction"></div>
		<div class="conversion"></div>
		<script src="interactor.min.js" type="application/javascript"></script>
		<script>
			// An example instantiation with custom arguments
			var interactions = new Interactor({
				interactions 		: true,
				interactionElement 	: "interaction",
				interactionEvents 	: ["mousedown", "mouseup", "touchstart", "touchend"],
				conversions 		: true,
				conversionElement 	: "conversion",
				conversionEvents 	: ["mouseup", "touchend"],
				endpoint 			: '/usage/interactions'
			});
		</script>
	</body>
</html>

To track a users interactions with an element, simply add the 'interaction' CSS class to the element.

Have a conversion point on your page? You can add that too, just add the 'conversion' CSS class to your conversion's HTML element.

Want to track a user's interactions and/or conversions with different element classes already on your page? Create multiple instances and allow each to target a specific element to track. No update to your HTML neccessary!

Example:

var elementsToTrack = [
	{
		element: "element1",
		events : ["mouseup", "touchend"]
	}, 
	{
		element: "element2",
		events : ["mouseup"]
	},
	{ 
		element: "element3",
		events : ["mouseup"]
	}
];

for (var i = 0; i < elementsToTrack.length; i++) {
	var e = elementsToTrack[i];
	new Interactor({
		interactionElement 	: e.element,
		interactionEvents 	: e.events
	});
} 

Default Parameters

interactions 		= true,
interactionElement 	='interaction',
interactionEvents 	= ['mouseup', 'touchend'],
conversions 		= false,
conversionElement 	= 'conversion',
conversionEvents 	= ['mouseup', 'touchend'],
endpoint 			= '/interactions',

interactor's People

Contributors

greenstick avatar

Watchers

 avatar  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.