All Projects → greenstick → Interactor

greenstick / Interactor

Licence: bsd-2-clause
A Simple Website User Interaction Tracker.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Interactor

Ridereceipts
🚕 Simple automation desktop app to download and organize your receipts from Uber/Lyft. Try out our new Ride Receipts PRO !
Stars: ✭ 117 (-8.59%)
Mutual labels:  utility
Thaw Carrots
Thaw carrots by warming up your laptop to a specific temperature
Stars: ✭ 120 (-6.25%)
Mutual labels:  utility
Cc
代码库 & Blog
Stars: ✭ 1,581 (+1135.16%)
Mutual labels:  front-end
Toss Puppeteer
🦀Try all kinds of toss about using GoogleChrome puppeteer(尝试各种折腾使用GoogleChrome puppeteer(木偶))
Stars: ✭ 118 (-7.81%)
Mutual labels:  front-end
Quickmenu
The new era of mobile navigation for the web, we're out of hamburgers.
Stars: ✭ 119 (-7.03%)
Mutual labels:  front-end
Apex Nitro
Your essential APEX companion
Stars: ✭ 122 (-4.69%)
Mutual labels:  front-end
Dictionary
Словари по фронтенду
Stars: ✭ 1,682 (+1214.06%)
Mutual labels:  front-end
Slickr
A collection of python and bash scripts to collect and analyze frame rendering performance in Android apps.
Stars: ✭ 126 (-1.56%)
Mutual labels:  utility
Refills
Refills is maintained by the thoughtbot design team. It is funded by thoughtbot, inc. and the names and logos for thoughtbot are trademarks of thoughtbot, inc.
Stars: ✭ 1,523 (+1089.84%)
Mutual labels:  front-end
Swift Selection Search
Swift Selection Search (SSS) is a simple Firefox add-on that lets you quickly search for some text in a page using your favorite search engines.
Stars: ✭ 125 (-2.34%)
Mutual labels:  utility
Angularoflegends
Full Client clone developed by Riot Games for the League of Legends game
Stars: ✭ 119 (-7.03%)
Mutual labels:  front-end
Rxios
A RxJS wrapper for axios
Stars: ✭ 119 (-7.03%)
Mutual labels:  front-end
Forum
Fórum da BrazilJS
Stars: ✭ 123 (-3.91%)
Mutual labels:  front-end
Ngx Context
Angular Context: Easy property binding for router outlet and nested component trees.
Stars: ✭ 118 (-7.81%)
Mutual labels:  utility
Fast
Develop, build, deploy, redeploy, and teardown frontend projects fast.
Stars: ✭ 126 (-1.56%)
Mutual labels:  front-end
Blog
ღ( ´・ᴗ・` ) 我的个人博客,喜欢的小伙伴可以点star ⭐️
Stars: ✭ 117 (-8.59%)
Mutual labels:  front-end
Single Spa Angular
Helpers for building single-spa applications which use Angular
Stars: ✭ 120 (-6.25%)
Mutual labels:  front-end
Elf Strings
elf-strings will programmatically read an ELF binary's string sections within a given binary. This is meant to be much like the strings UNIX utility, however is purpose built for ELF binaries.
Stars: ✭ 127 (-0.78%)
Mutual labels:  utility
Woofmark
🐕 Barking up the DOM tree. A modular, progressive, and beautiful Markdown and HTML editor
Stars: ✭ 1,594 (+1145.31%)
Mutual labels:  front-end
Blog
📖 My blogs.
Stars: ✭ 125 (-2.34%)
Mutual labels:  front-end

Interactor.js

A simple, light-weight (< 5KB minified), no dependency, front-end website interaction tracker for personal websites and web projects.

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

Great for creating a database to drive analytics, inform A/B testing, monitor engagement, and guide 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

DOI

Documentation

Documentation is currently being written. There's a working (front-end) example of Interactor. To explore it, open up your browsers' console and click on the interaction and conversion buttons.

Interactor currently supports modern browsers: Chrome, Firefox, & Safari. Additional testing & input is 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',
				async                   : true,
				debug                   : false
			});
		</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',
	async                   : true,
	debug                   : true
}

Can I Buy You a Coffee?

Sure! I'm a grad student – coffee is always very much appreciated! Thanks!

Buy me a coffee

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].