Trillboards
For partners & developers

Ship your app, earn from every screen it reaches

The Trillboards CTV Measurement SDK works on Android, ATSC 3.0, HbbTV, Samsung Tizen, LG webOS, and Vizio SmartCast. Two runtimes, one wire format, one self-serve tb_ctv_* API key. From npm install to verified heartbeat in five minutes.

Four steps

1. Get a tb_ctv_* key

Self-serve at /partners/get-started. No email round-trip, no sales call. The key is shown once β€” store it in your secret manager.

2. Install the SDK

npm install @trillboards/ctv-measurement for CTV web / smart TVs / broadcast runtimes / React Native, or add the Gradle/JitPack coordinate for Android native apps.

3. Call setConsentStatus(true)

Both SDKs are inert until consent is granted. GDPR / CCPA compliant by default; revoke with setConsentStatus(false) at any time.

4. Ship heartbeats

await sdk.measure() (npm) or startScheduledScans() (Android) POSTs the measurement payload to /v1/partner/device/{deviceId}/heartbeat every 30 s.

Every CTV runtime that matters

One wire format, eight supported runtimes. Feature-probed at boot; unsupported runtimes degrade gracefully.

RuntimeSDKCoordinateNotes
Android TV / Fire TV nativeGradle / JitPackcom.github.trillboards.packages:ctv-measurement:0.2.1Built on agent-core-lite, the same proximity stack the Trillboards in-house fleet runs in production (~658K signal observations per day).
ATSC 3.0 Broadcaster Applicationnpm@trillboards/ctv-measurementA/344 localhost: WebSocket adapter pulls service.id, broadcaster.id, channel.ccid, current.programme.id.
HbbTV 2.0+ receivernpm@trillboards/ctv-measurementoipfObjectFactory adapter pulls currentChannel.ccid, onid, tsid, sid, programmes[] (EIT).
Samsung Tizen TV web appnpm@trillboards/ctv-measurementFingerprint + viewability + connection. Broadcast metadata only inside privileged OEM apps.
LG webOS TV web appnpm@trillboards/ctv-measurementFingerprint + viewability + connection. Broadcast metadata only inside privileged OEM apps.
Vizio SmartCast web appnpm@trillboards/ctv-measurementFingerprint + viewability + connection (no broadcast metadata from JS surface).
Fire TV / Google TV WebViewnpm@trillboards/ctv-measurementBridge to the Android native AAR via window.TrillboardsMeasurement.getSnapshot() for full proximity signals.
React Native (Android / iOS)npm@trillboards/ctv-measurementFingerprint + viewability + connection. The npm SDK runs in any JS environment.

Privacy-first by design

  • Consent gate. No network traffic, no scanning, no fingerprinting until setConsentStatus(true). Revoke any time.
  • No PII collection. BLE scanning counts nearby devices; hashed MACs are dropped server-side after k-anon-5 aggregation.
  • No camera, no microphone, no audio in the public CTV measurement SDK. The Trillboards in-house fleet SDK (agent-core, GitHub Packages) is a separate package with its own consent contract.
  • K-anon-5 enforced server-side on aggregate exports. Geohash Γ— hour Γ— venue-type buckets require β‰₯ 5 distinct devices.

Why ship on Trillboards?

  • Self-serve tb_ctv_* key in under a minute β€” no email, no sales call.
  • JitPack-fetched Android AAR. No Sonatype, no Personal Access Token, no GitHub Packages credential dance.
  • One canonical heartbeat endpoint serves every runtime. Same wire format, same schema, same audit trail.
  • Built on the same proximity stack the Trillboards in-house tablet fleet runs in production.
  • Manage, rotate, and revoke keys from your earner portal under Developer β†’ API Keys.

Need a deeper integration than the public SDK covers? Reach the team at /support/contact.

Get your tb_ctv_* key