Have more questions? Submit a request

Proof of Play API

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

PoP data can be retrieved on a per-device basis via REST API.
https://api.signageos.io/v1/device/:deviceUid/applet/command
As a type value in the REST request use PoP.ItemPlayed.
 

PoP data in Device Management

Submitting PoP data propagates right into the device management UI. You can quickly see whether content on the display actually runs or not without the need to go into any other tool.
This further streamlines the operation of the network.
mceclip0.png
Was this article helpful?
0 out of 0 found this helpful
Share