This API is working great for students:
https://xxx.test.instructure.com/api/v1/courses/:courseid/analytics/users/:userid/activity
But it is limited to student data.
How are folks using the API to get high level activity data by course?
Hello!
What are you trying to achieve?
Doing guesses without knowing it, are you probably looking for this API endpoint?
GET /api/v1/courses/:course_id/analytics/student_summaries Returns a summary of per-user access information for all students in a course. This includes total page views, total participations, and a breakdown of on-time/late status for all homework submissions in the course. Each student’s summary also includes the maximum number of page views and participations by any student in the course, which may be useful for some visualizations (since determining maximums client side can be tricky with pagination).
GET /api/v1/courses/:course_id/analytics/student_summaries
Returns a summary of per-user access information for all students in a course. This includes total page views, total participations, and a breakdown of on-time/late status for all homework submissions in the course.
Each student’s summary also includes the maximum number of page views and participations by any student in the course, which may be useful for some visualizations (since determining maximums client side can be tricky with pagination).
@sgergely - I'm trying to come up with a proxy for participation in the course. The analytics endpoint is just what I need, however, it only picks up students, not teachers! Is there any way the endpoint could be opened up for all user roles?
We would love to see this too - basically the same endpoints for the Teacher Role as we have for students when looking at activity and participation in courses.@lmurray2 - in the meantime, what we are attempting to do is cobble a Teacher Participation report by looking at common teacher activities (entering grades, submission comments, updating assignments, using a rubric, etc.) that are present in the DAP table schemas. It's less straightforward than querying the API (you have to download all the incremental data you want from the tables, convert it into something readable, then filter for the information you want) but you can get pretty granular. And if you're comfortable using something like Node.js a lot of that can be automated with JavaScript.Ask Your Data can probably do a lot of that for you in the GUI, but I like having the raw data too.
@lmurray2 What are you trying to measure when you are analyzing teacher participation?
While it doesn't provide as much data as the Analytics API endpoint does for students, you can look at a user's Access Report to find out what content within a course they have accessed, times viewed, times participated (if applicable), and last viewed. By adding ".json" to the end of the URL you can get the raw data for the Access Report. (https://yourURL.instructure.com/courses/1234/users/123/usage.json)
The following offer some tools for extracting the Access Report data for an entire course:
Awesome! Thanks, James. I will definitely review these materials. It's great to see others coding novel solutions. This is really the area I'm most interested in Canvas.
Just another idea @lmurray2 since I haven't myself written this yet for this particular purpose (I have however used live events for analytics reports on specific sorts of events, like downloading files), but potentially you could get activity data based on Canvas Live Events (you would filter events based on the teacher role, among any other things that are relevant to you).
Re Live Events, is there a simple, local setup that I can get started for this, or does it require an AWS setup on my end? Any tips on that? What's the lift for a local (easy) setup?
Currently, I have developed a tool to grab data from a course based on the Users ID, Enrollment, and Course ID. We use this data to see the activity of Instructors within a course. Here are a couple of examples of how the tool is using the API:Grab a paginated list of active courses and include student enrolled and the instructors.//your.instructure.com/api/v1/accounts/{account_id}/courses?completed=false&state=available&per_page=100&page={page}&include[]=total_students&include[]=teachersThis call not only confirms enrolled instructors and provides the "last activity" variable that shows when an instructor was last active. //your.instructure.com/api/v1/courses/{course_id}/users?enrollment_type=teacher&include[]=enrollments
Once an application has access to a Course ID and User ID, it can filter through most information.
is the tool these two api's or is there more to it? Thanks for sharing!
On the new_quizzes.quizzes table, all of my institution's records have either "unpublished" or "uninitialized" values in the workflow_state column. The documentation for this type lists "published" as a possible value. It seems like all of my institution's published New Quizzes have the "uninitialized" value. What does…
EDUCAUSE is full of inspiration, whether you’re onsite or following from afar. Join the evolution by sharing what sparks your curiosity, the questions you have, and the insights you discover. We'll learn from each other, expand our networks, and strengthen our Community. Your perspective matters, and the more we share,…
Prompted by the most recent Canvas release notes, we looked into the Page Views feature, and we were happy with the new documented changes. However, we notice that more user actions are done by GraphQL API, which does not provide details in the page view report, either in the GUI or in the CSV file download. We and most…
I am currently teaching five courses this semester with more than 70 students. To track their progress, I currently have to review each course and section individually, which is very time-consuming. Ideally, I would like to consolidate key information for all students into a single Excel file—showing class attendance…
Hello, We are currently using the Analytics API provided in the Instructure Developer Documentation Portal to retrieve certain metrics-related data. We would like to know if it’s possible to replicate these datasets using the Canvas Data Platform (CDP), instead of relying on API calls. For example, could you please advise…