Intent
Need to create an unified deep linking interface for enabling Access to Content on Sunbird across different apps like Read Along,Games etc.
Note: Assumption of this specification is based on the apps being able to support these deep links as part of their implementation.
Approaches
Approach 3 :
Deep Link provides the basic information such as content URL, telemetry context.
Sample Deep Linking Uri:
cpi://play?resourceId=<param-value>&referrerPackageId=<param-value>…..
Params | Description | Data type |
---|---|---|
resourceId | identifier of the resource to be served in bazaar apps | String |
collectionId | CollectionID of textbook,course | String |
referrerPackageId | package details of referrer app | String |
batchId | BatchId if it is trackable collection | String |
mimeType | Content MimeType | String |
vendorCode | Vendor ID to validate the referrer | String |
contentCategory | contentCategory | String |
artifactURL | Artifact URL to play content | String |
telemetryContext | Hashed value of uid, sid | String |
Data Sharing Table :
Params | Approach 1 | Approach 2 | Approach 3 |
---|---|---|---|
resourceId | Yes | Yes | |
collectionId | Yes | Yes | |
referrerPackageId | Yes | Yes | Yes |
batchId | Yes | ||
mimeType | Yes | ||
vendorCode | Yes | Yes | Yes |
contentCategory | Yes |
| |
artifactURL | Yes | ||
contentURL | Yes | ||
telemetryContext | Yes | Yes | Yes |
SUMMARY Event
{ "edata": { "type": "", // Required. Type of summary. Free text. "session", "app", "tool" etc "mode": "", // Optional. "starttime": Long, // Required. Epoch Timestamp of app start. Retrieved from first event. "endtime": Long, // Required. Epoch Timestamp of app end. Retrieved from last event. "timespent": Double, // Required. Total time spent by visitor on app in seconds excluding idle time. "pageviews": Long, // Required. Total page views per session(count of CP_IMPRESSION) "interactions": Long, // Required. Count of interact events "envsummary": [{ // Optional "env": String, // High level env within the app (content, domain, resources, community) "timespent": Double, // Time spent per env "visits": Long // count of times the environment has been visited }], "eventssummary": [{ // Optional "id": String, // event id such as CE_START, CE_END, CP_INTERACT etc. "count": Long // Count of events. }], "pagesummary": [{ // Optional "id": String, // Page id "type": String, // type of page - view/edit "env": String, // env of page "timespent": Double, // Time taken per page "visits": Long // Number of times each page was visited }] } }