Stacking and Sequences overview

SignCloud is a novel approach for building programmatic sequences of multimedia.

Using a combination of stacking, base sequences, and inner sequences, fully programmatic digital signage can be achieved and managed by multiple users for an unlimited number of screens.

When stacked, multiple display candidates are dynamically chosen by evaluating user defined conditions. Conditions can incorporate the date, time, geographic location, weather conditions, or any custom data added to the system.

You can simplify the administration of large numbers of sequences by creating shared base sequences. A base sequence enables defined users to modify sequences that are stacked above it. This means individual users or groups can be granted the ability to modify only a subset of items displayed on a screen.

A sequence item can refer to an inner sequence. Items from the inner sequence will be displayed and the outer sequence will resume when complete.

Key Concepts


A sequence is presented as a horizontal row of items. Items display sequentially from left to right.



Stack items to define multiple display candidates. Items are stacked vertically. Only one display candidate will be displayed from a stack each time the sequence is displayed.

Each display candidate can have a condition defined. The first (top most) display candidate where the condition evaluates to true will be chosen for display.

In the example above, the item 1a has a condition that the date must be between 1st January 2020 7am and 3rd January 2020 9pm. Because it is not currently between this date range, the item is ignored and the item below is evaluated. The item below (1b) has no condition defined so it is chosen for display.

Many display candidates can be stacked with a variety of conditions to create dynamic sequences that vary based on time, geographic location, weather conditions or any custom data added to the system.

Note: The top most item with a valid condition in a stack is displayed and then the stack to the right is evaluated.

Base Sequences

A sequence can use another sequence as a base. Items in the base sequence will be displayed if no valid items are stacked on top.


The base sequence can prevent the sequence above from using specific stacks. Typically the base sequence will be managed by another user who has delegated some (but not all) control to sequences above.

The example below shows how the base sequence can prevent using slot 2. This would ensure that an item in stack 2 of the base sequence will always be displayed.


Sequences can share a common base. A base sequence can also have its own base making complicated hierarchical control of the final sequence possible. Each sequence can be controlled by one or more users.

A base sequence can restrict the total number of items allowed in a sequence and restrict duration of items placed in specific stacks.

Inner Sequences

An item in a sequence can refer to another (inner) sequence. When the item is eligible for display, the inner sequence will be displayed.


If there is a duration configured for the outer item, the inner sequence may show only a subset of its items to fill the duration. The inner sequence will automatically progress to show remaining items when the outer sequence loops.

Inner sequences can be shared with many sequences, fully utilise the same stacking logic, and be managed by other users.

Inner sequences can be populated by API and a variety of remote data sources including:

  • Ad Servers – Hivestack, Place Exchange, Vistar etc and any ad server that returns VAST
  • Media RSS
  • Email to custom email address

Extending functionality

These basic building blocks act like LEGO to facilitate building complicated programmatic sequences managed by multiple users. A multi-level hierarchy of control can be achieved by stacking multiple sequences and using inner sequences which can refer to deeper inner sequences. 

It is also possible to interrupt the regular flow and branch to other content by using the stacks event system.

Hardware Compatibility

This digital signage solution is designed for the Android operating system.

DS Loader must be installed onto the Android device to connect it to the digital signage server platform.

The MAC address of the device will be displayed on the screen when DS Loader starts. This MAC address is used to link the device to a screen in the administration interface.

Minimum system requirements:

  • Android 2.3 Gingerbread
  • Screen resolution 320×240
  • Single core 700MHz (armeabi-v7a, arm64-v8a, x86 or x86_64)
  • 256MB RAM
  • 128MB available storage + sequence size (as shown in sequence header)

DS Loader will load a digital signage player. There are multiple player implementations available that can be selected in the administration interface.

Note: Some players require newer versions of Android. For example, the ExoPlayer variants require Android 4.1 and GLPlayer requires Android 5.0+/

Video playback uses the Android multimedia framework. For HD and 4K video playback ensure the device is capable of supporting the content you upload. A device running Android 4.4 or higher is recommended for displaying HTML5 content as it uses the Chrome web browser rendering component.

If there are problems playing video content, edit the screen in the admin interface, click the software tab and select different player software. The ExoPlayer variant may work better for modern devices especially if gapless video playback is required.

Non standard screen outputs for LED arrays smaller than the device output are supported using the advanced options widthOverride and heightOverride in screen data.

Core Features

The following features are available in the platform:

Advanced web-based user interface

There is a fully featured, web-based user interface for uploading content, managing sequences, and maintaining screens. Multi-user support and scalable design allow bulk management of thousands of screens. Uses all modern HTML5 standards and compatible with all recent web browsers.

Programmatic sequences

Stack multiple display candidates and control when they are displayed using conditions and dynamic data to target specific audiences.

Base sequences

Control which slots in a base sequence can be overridden by another user and build complex stacked sequences merging international, national, regional, local, and screen specific content. Control of each layer can be given to different users.

Inner sequences

Use inner sequences to break a long sequence into smaller parts. This enables you to delegate the administration of inner sequences to other users.

Composite items and sequence frames

Multiple images and videos can be positioned and displayed at the same time. Each sequence can be framed to overlay and position branding and other items.

Playback synchronisation

Synchronise multiple screens on the local network to play slots at the same time. Configure video walls  using shared base sequences or screen specific, conditional logic for timing.

Smart display pacing

Apply a date range and a target play count to an item to control when and how often it is played.

Advanced interactivity

Define custom events to trigger actions such as playing another sequence or collecting an email address. HTML5 interactive content is also supported.

Access control lists

Grant one or more users or groups access to specific screens, sequences, library items, or other users and groups.

Display reports

A record can be created for every time an item is displayed on a screen. Each device automatically synchronises records with the server when a connection is available.

Efficient network use

Videos and images are downloaded once and stored locally to avoid streaming and repeat downloads. All network speeds are supported, from 64 Kbps up to 1 Gbps, and playback is not affected by intermittent network failure and slowdowns.

Offline operation

All conditional logic is evaluated locally on the device and so doesn’t require an Internet connection. Multimedia is stored locally for gapless playback with no buffering delays. Please note this feature only runs in case of intermittence of internet connections during the day, not for extended periods of time. Extended periods of time will trigger a notification prompt on the player.

Worldwide resilience and scalability

Servers in Europe, America, and Asia use asynchronous replication with eventual consistency to provide  low latency connections, scalability, and resilience worldwide.

Continuous software deployment

All software components can be updated. Server updates do not result in any downtime and device updates typically take less than 10 seconds. There is a library of previous versions to support instant rollbacks in the event of hardware compatibility issues.

Streamlined software updates

DS Loader provides a software base to enable dynamic code loading. This makes it easy to update player software and run custom player implementations in seconds without installation. This functionality does not require a rooted device.


Secure connections use the latest encryption standards. Data that is shared via public CDNs and peer-to-peer transfers is checked for data integrity before use.

Instant data updates

DS Loader uses UDP to facilitate making instant updates. This lightweight solution avoids maintaining an open TCP connection per screen or opening inbound ports in a firewall.

Data sharing

Images and videos are shared between devices on the local network using peer-to-peer when the same content is required. This can massively reduce internet traffic.

Data integrity checking

All data is digitally signed and verified to prevent corruption and man-in-the-middle attacks.

White labelled custom domains

Create cloud configurations and associate them with domains mapped by CNAME to add branding and other customisations.

GPS tracking

Track moving screens and include the GPS data on display reports. This is ideal for screens on taxis and buses.

RS232 input and output

Control HDMI switches, TVs, and other devices using USB to RS-232 adaptors. RS-232 input is also supported to remotely trigger actions.

Crashproof operation

Multiple watchdog alarms are used to recover after a software crash. DS Loader supports automatically starting when the device is turned on.

Offline notifications

Configure email notifications to notify users if there are hardware or connectivity issues for one or more screens in a group.

Zero downtime

Since deployment in 2014, there has never been any platform downtime. Servers are added and removed from service automatically using health checks. Players can operate for up to 30 days without a connection to a server.

Device compatibility

99.9% of Android devices are supported. The software is compatible with Android Gingerbread 2.3 and above. There is support for all screen resolutions (including partial screen use).

Unrestricted media support

Devices will play any media supported by Android. This can include extremely high resolution 4K and high frame rate videos. Custom resolutions are supported at any aspect ratio.

Powerful APIs

Five APIs are available for direct integration to the platform. The APIs allow the automation of any administrative action. APIs also support directly triggering prepared content on any screen.

Email import interface

Email media directly to a sequence.

QRCodes, Barcodes, Beacons, and NFC

Direct customers to further information with integration to various technologies.

VAST integration

Ads can be imported using Video Ad Serving Templates (VAST). Impression and tracking data will be sent directly to ad servers.

Custom advertising interface

An alternative web interface to allow advertisers to upload new media to a sequence without user registration is available. This interface automates advertising on unmanaged networks.

HTML5 widgets

Add HTML5 widgets to display rich, dynamic content on screens. The native Android WebView is used with all advanced browser features available.