Integration

Engagement analytics for Canvas LMS

Canvas LMS records completion and navigation well. Attention is a different measurement problem, and it is solved in the content layer.

4 min read
In short

Canvas LMS reports completion, progress and assessment results, but has no visibility into attention within a piece of content. Emotuit adds content-level engagement data — dwell, focus, tab-switching and drop-off position — through a sub-50KB script, alongside existing reporting rather than replacing it.

What Canvas LMS already gives you

New Analytics gives you page views, participations, assignment submissions and grade distribution. Course Statistics adds file storage and discussion counts.

What it does not

All of it is navigation-level. Canvas records that a page was viewed; it has no visibility into what happened on the page. A learner who opened a module page and immediately tabbed away registers identically to one who read it carefully.

This is not a criticism of Canvas specifically — it is true of essentially every LMS on the market. Completion and navigation data is what these systems were built to record, and they record it well. Attention is a different measurement problem, solved in the content layer rather than the platform layer.

How Emotuit fits

Add the SDK through Theme Editor → JavaScript file, which applies account-wide, or scope it to a course with an LTI 1.3 placement. Content positions map to Canvas module items, so engagement data lands against the structure your instructional designers already work in.

The SDK is under 50KB, adds one script tag, and requires no migration or infrastructure change. It runs alongside Canvas's own reporting rather than replacing it.

Details

Where the data lands

Engagement scores map to Canvas module item IDs, so reporting matches your existing course structure rather than an arbitrary timeline.

Works with

Pages, Assignments, Quizzes, embedded video, and any SCORM package launched inside Canvas.

What you get

Metric Detail
Content-level engagement A score for every section, not one per course
Drop-off position Where sessions actually end
Focus-adjusted dwell Real attention, discounting background tabs
Tab-switch rate The strongest single predictor of disengagement
Replay behaviour Where learners went back — a confusion signal
Cohort comparison A/B test content versions on real attention

Deployment options

Emotuit runs in two configurations, and for LMS deployments in the EU the choice matters.

Signals uses behavioural telemetry only — no camera, no biometric data, no emotion inference. It sits outside the EU AI Act Article 5(1)(f) prohibition on inferring emotions in workplace and education contexts, which makes it the default recommendation for corporate L&D and education.

Learn adds a client-side facial expression layer. It should not be deployed to EU employees or students, and is intended for market research, UX and media testing contexts.

We shipped a Canvas engagement analytics app through the Instructure Edu App Center in the original 2014 incarnation of Emotuit, so this is well-trodden ground for us.

Frequently asked questions

Does this replace Canvas's built-in reporting?
No. It runs alongside it. Canvas continues to handle completion, grades and compliance evidence exactly as before — Emotuit adds the content-level attention layer underneath, answering which sections held people rather than who finished.
Does it need a webcam?
Not in Signals configuration, which is what we recommend for LMS deployments. It uses browser events only — visibility state, window focus, dwell, scroll and interaction timing. There is no camera permission prompt because there is nothing to permit.
How long does integration take?
Typically a day or two. Most of that is mapping your content structure so engagement data lands against the right sections and modules rather than an arbitrary timeline. The script itself is one line.
Will it slow the platform down?
No measurable effect. The SDK is under 50KB, listens to native browser events rather than polling, and batches its reporting. It does not touch the rendering path.

See it on your own Canvas content

We'll instrument one module and show you the engagement data before you commit to anything.

Request a demo
Get Started

See what completion rates can't tell you

Find out exactly where your content works, where it fails, and what disengagement looks like before people leave.

Request a Demo