Beta feature
The following feature is in beta phase and private testing.
Available in JS API (front-applet) from v5.7.0
Digital signage is an increasingly popular way for businesses and organizations to communicate with their audience, delivering targeted messages and content in real-time. To ensure that these messages are effectively reaching their target audience, it is important to track and verify that they are being displayed as intended. This is where proof of play comes in.
How to capture PoP data
SignageOS provides a JavaScript API that enables businesses and organizations to implement proof of play in their digital signage campaigns. The API provides a method, recordItemPlayed()
, which can be used to log that content was played successfully and send related information and metadata to SignageOS.
Here's how to implement proof of play with the SignageOS JavaScript API:
await sos.proofOfPlay.recordItemPlayed({ name: 'tesla-commercial-ad-christmas-campaign', customId: 'dBE43bFB3312VFfvd34bgGHJVV334cd2', type: 'video', tags: ['tesla', 'christmas'], fileName: 'tesla.mp4', playbackSuccess: false, errorMessage: 'Unsupported framerate 60fps', });
Explanation of fields
Property
|
Mandatory
|
Description
|
Value
|
name
|
yes
|
name of the item used later in the reporting and aggregating
|
Any custom value
|
customId
|
no
|
custom id coming from the CMS
|
Any custom value
|
type
|
no
|
type of the item; allows better reporting; used for aggregation
|
Any of these:
video
image
html
custom (aka weather)
|
tags
|
no
|
list of tags to share along with the item; used for aggregation
|
An array of values
|
fileName
|
no
|
name of the physical file played
|
e.g. tesla.mp4
|
playbackSuccess
|
no
|
defined if the item was successfully played or not
|
boolean (true/false)
|
errorMessage
|
no
|
custom error message or propagated error message from signageOS
|
Any custom value
|
Playback records submitted via signageOS PoP are reported in real-time to the signageOS cloud. In case there is no internet connectivity the PoP records are saved and re-submitted when the connection is back up.
How to retrieve PoP data
https://api.signageos.io/v1/device/:deviceUid/applet/command
type
value in the REST request use PoP.ItemPlayed
.