How to Configure Smart Triggers: Audience Detection, Motion, Weather, and Webhooks
Static content rotations are effective, but they treat every moment the same. Smart triggers give your screens situational awareness — the ability to show different content depending on who is standing in front of the display, how busy the space is, what is happening outside, or a signal from another system. This guide walks through setting up each trigger type.
How Smart Triggers Work
A smart trigger is a rule that links a real-world signal to a content change on one or more screens. Each trigger has three components: an input (the sensor or data source), a condition (the value or state that activates the trigger), and an action (the content to show when the condition is met). When the condition clears, the screen returns to its default content or playlist.
Step 1: Open Smart Triggers
Navigate to the Smart Triggers section of your Digipal dashboard. Click New Trigger and select the screen you want the trigger to apply to. A trigger is always scoped to a specific screen, though you can duplicate a trigger to apply the same logic to additional screens.
Trigger Type: Audience Detection
Audience detection uses face-api.js running on the player device to estimate the age range and gender balance of people in front of the screen. The camera must be connected to the player device and enabled in the screen's hardware settings.
- Input: camera connected to the Android TV player
- Conditions available: audience detected (anyone present), estimated age range (e.g. 18–34), gender balance
- Example: when an adult audience is detected, switch from a general-interest loop to a targeted promotional offer
- Privacy: detection runs entirely on-device; only aggregate estimates are ever reported
Trigger Type: Gesture Recognition
Gesture recognition uses MediaPipe Tasks running on the player device to detect specific hand gestures in the camera feed. Use this trigger to let viewers interact with your screen without touching it — for example, raising a hand to advance to the next content item, or a thumbs-up gesture to trigger a specific action.
- Input: camera connected to the Android TV player
- Conditions available: specific hand gesture detected (thumbs up, open palm, pointing, etc.)
- Example: open palm gesture switches to a product detail screen; a second gesture returns to the menu
Trigger Type: Motion
Motion detection activates when movement is detected in the camera frame, without any face or gesture identification. It is useful for wake-on-approach scenarios where a screen should show an attract loop when idle and switch to active content when someone enters the detection zone.
Trigger Type: Sound Level
Sound level triggers use the player device's microphone to measure ambient noise. This is useful in environments where noise level correlates with footfall — a busy bar, a trade show floor, or a gym during peak hours.
- Input: microphone on or connected to the player device
- Conditions available: ambient noise above or below a dB threshold
- Example: when background noise exceeds a threshold indicating a busy environment, switch to high-impact promotional content
Trigger Type: Weather
Weather triggers pull current conditions from wttr.in based on the screen's configured location. Set a trigger to fire when temperature exceeds a threshold, when it is raining, or when weather matches a specific condition code.
- Input: weather data for the screen's location (updated every 15 minutes)
- Conditions available: temperature above/below a value, precipitation, wind speed, weather condition (sunny, rainy, snowy, etc.)
- Example: when outdoor temperature exceeds 28°C, switch a café screen to show cold drink promotions; when it drops below 10°C, switch to hot drink promotions
Trigger Type: External Webhook
Webhook triggers let any external system send a signal to Digipal to change what a screen is showing. Each webhook trigger generates a unique URL you can call from any HTTP client, IFTTT workflow, Zapier action, or custom application.
- Input: an HTTP POST request to the trigger's unique webhook URL
- Payload: JSON body can include a content ID to display or a trigger key defined in the dashboard
- Example: a queue management system sends a webhook when the wait time exceeds 10 minutes, switching the lobby screen to show a wait-time update
- Example: a sports data API sends a webhook when a goal is scored, switching screens in a sports bar to a celebration creative
Testing Your Triggers
Each trigger has a Test button in the dashboard that simulates the condition without needing the physical sensor to fire. Use this to confirm the correct content loads and the screen reverts correctly after the configured hold duration. For webhook triggers, the test sends a sample POST request to the live URL and shows the response in the dashboard.