Integration · Samsung Smart Signage (Tizen)
Bundled inside Embed Signage. No second app.
On Tizen displays — GANT and similar — SignIQ Measure ships as a JavaScript bundle loaded inside Embed Signage's existing content package. There is no separate SignIQ widget to install, no second Samsung certificate to obtain, and no localhost server. Embed Signage already runs on the display; SignIQ runs inside it.
Camera-access path: confirming with Samsung
USB-camera capture inside a Tizen WebView is gated by Samsung's signage-specific API stack — standard getUserMedia does not enumerate USB UVC devices on stock Smart Signage firmware. For Tizen customers we either (a) use Samsung's audience-measurement API path (subject to confirmation with Samsung — see docs/launch/samsung-tizen-camera-research.md), or (b) drop a small Linux/Windows compute box beside the display with the camera attached and let the Tizen content call into it over the LAN. The bundle pattern below is the same either way — only the frame source changes.
How it fits together
- One `.wgt`. Embed Signage's signed Tizen content package is the only widget on the display. SignIQ Measure's JS + WASM files live inside it as static assets.
- One camera permission. Declared once in Embed Signage's
config.xml. SignIQ Measure picks up the stream via standardgetUserMedia. - In-process JS API. Embed Signage calls
window.SigniqMeasure.on('audience', …)to react to viewer changes. Same payload shape as the Windows / Android local API, just in-memory instead of HTTP. - No on-screen pairing. Node identity is provisioned via the SignIQ partner dashboard and pushed to the player by Embed Signage's MDM as a config triplet (
node_id,node_token,site_id). The node activates as soon as its first batch hits the cloud.
What Embed Signage drops into their content package
One directory, ~13 MB total. Place under any path inside the existing widget; the example below uses signiq-measure/.
signiq-measure/signiq-measure.js signiq-measure/ort-wasm-simd-threaded.wasm signiq-measure/ort-wasm-simd-threaded.mjs signiq-measure/assets/inference.worker-*.js signiq-measure/models/rtmdet_nano_person.onnx
The one block of code that wires it up
<!-- Hidden video element receives the camera stream. -->
<video id="signiq-cam" autoplay playsinline muted
style="position:absolute;width:1px;height:1px;opacity:0"></video>
<script src="signiq-measure/signiq-measure.js" defer></script>
<script>
(async () => {
const stream = await navigator.mediaDevices.getUserMedia({
video: { width: 640, height: 480, frameRate: { ideal: 4 } },
audio: false,
});
document.getElementById('signiq-cam').srcObject = stream;
await window.SigniqMeasure.start({
nodeId: EMBED_SIGNAGE_CONFIG.signiqNodeId,
nodeToken: EMBED_SIGNAGE_CONFIG.signiqNodeToken,
siteId: EMBED_SIGNAGE_CONFIG.signiqSiteId,
videoElement: document.getElementById('signiq-cam'),
modelBaseUrl: 'signiq-measure/models/',
ortWasmBaseUrl: 'signiq-measure/',
cloudIngest: true,
frameRateTarget: 4,
});
window.SigniqMeasure.on('audience', ({ payload }) => {
// Same payload shape as Windows /v1/realtime/ws — current_viewers,
// attention_viewers, notice_viewers, avg_attention_quality, etc.
if (payload.attention_viewers >= 5) embedSignage.setPlaylist('busy');
});
})();
</script>Provisioning a node
- Reseller creates a sub-account for the Tizen customer in the SignIQ partner dashboard.
- Allocate one node per player to that sub-account.
- For each player, call
POST /v1/devices/pairing-codeswith a partner API key. The response carriesnode_id/node_token/site_id. - Push that triplet to the player via Embed Signage's device-config layer.
- On next content refresh, the player begins measuring. No on-screen pairing UI required.
Performance on Smart Signage hardware
Tizen Smart Signage typically ships Cortex-A53 / A55 class CPUs. We default the bundle to 4 FPS inference (vs 8 FPS on Windows). The WASM build uses SIMD-threaded ONNX Runtime; effective FPS is reported in telemetry so the dashboard can flag throttling proactively.
Privacy posture
Frames stay inside the Tizen browser process. Aggregates (counts, dwell, attention quality, model + calibration lineage) batch to the SignIQ cloud every 60 seconds. The bundle never persists frames to disk and opens no outbound video stream. See our compliance posture for the full data-flow model.
Are you Embed Signage?
Talk to engineering — we'll hand over the artefact directory, the snippet, and a provisioning helper to fold into your MDM.
support@signiq.cloud