Skip to main content

Proof of Play API

info

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.

FeatureFeature entitlementAvailabilityDevSpacedevSpaceDevSpaceProof of Play APIdevSpacePoPAPI👑 DevSpace add-on

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

PropertyMandatoryDescriptionValue
nameyesname of the item used later in the reporting and aggregatingAny custom value
customIdnocustom id coming from the CMSAny custom value
typenotype of the item; allows better reporting; used for aggregationAny of these:
video
image
html
custom (aka weather)
tagsnolist of tags to share along with the item; used for aggregationAn array of values
fileNamenoname of the physical file playede.g. tesla.mp4
playbackSuccessnodefined if the item was successfully played or notboolean (true/false)
errorMessagenocustom error message or propagated error message from signageOSAny 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