Description
The way "read" events are accounted in Xythos is largely incompatible with SaaS system architecture. Even in legacy hosting, tracking of "read" events intentionally won't track every click.
Steps to Replicate
Create an Original Experience course
Enter a Content Area
Select Build Content > File
Upload or reuse a file
Enter the Content Collection
Find the File from step 4, select ▼ > Edit Settings
Under "Options", select Enable Tracking
Use the course as any other course
After a while, return to the content collection and again find the file from Step 4.
Select ▼ > 360° View
Under the "File Activity" section, review the "Tracking Data"
Observed Behavior:
There are very few, or no such actions.
Expected Behavior:
There should be lots of Tracking Data showing "Read" actions.
Cause
A "Read" event does not correspond exactly speaking to a user opening or viewing a file. Rather a "read" event occurs when a file-revision (each file has at least one revision, even if the versioning feature is off) is accessed in such a manner that a block of bytes containing the first byte of the file blob are read into memory by Xythos.
There are 2 major reasons why a file might be accessed and this not occur.
Browsers and other HTTP clients, such as WebDAV clients, usually cache content. When this occurs, the client avoids re-requesting the same data. For example it sends a header If-Modified-Since to indicate that the server should only send bytes if the file has been modified since that date. Since in most cases the file has not been modified, Xythos returns HTTP 304 and no bytes are read.
Another other reason which is specific to SaaS is that the term "read" means bytes from a blob are read directly by Xythos itself. However in SaaS this rarely happens. When possible, the application instead generates a S3 Pre-signed URL and sends an HTTP redirect response to the caller. The browser (or other client) then downloads bytes directly from S3 or the CDN and no bytes are ever read by Xythos. It is also impossible to know if this activity succeeded or failed and any bytes were read or not.
The significance of the term "blob" is defined in KB № 000057526 — About "Course Size" and Reducing Storage Utilization on Blackboard Learn.
Resolution / Workaround
Use the Learn Access logs.
Affected Versions
Learn 3900.78.0
Learn 3900.80.0
Learn 3900.82.0
Learn 3900.84.0
Learn 3900.86.0
Target Release
Will Not Fix
Information
This situation has existed for a long time and is not specific to a particular version. The last 5 released versions are selected as a convenience.
