Building great digital products

A content management system for digital campaigns

Building great digital products

A content management system for digital campaigns


Clear Channel Outdoor is one of the world’s leading Out-of-Home media owners. Across their large, diverse Out-of-Home portfolio of half a million sites in 22 countries throughout Europe, Asia, USA and Latin America, they boost brands by connecting them with the people they want to reach, with media and ideas that enlighten, entertain, charm, challenge and influence. In the UK alone, they operate more than 35,000 sites nationwide, from Inverness in Scotland to Truro in Cornwall and in every major urban area in between.



As digital out-of-home (OOH) has significantly increased the possibility for the creative execution of an OOH advertising campaign. A campaign may have tens or hundreds of creatives to target different audiences or broadcast different messages, and dynamic context driven campaigns can provide even more targeting and tailoring. This has put significant demands on advertisers, agencies, landlords (e.g. councils or mall-owners who rent theirs advertising space to Clear Channel) and internal employees in Clear Channel to manage the volume and complexity of advertising creatives. For this reason an initiative was kicked off with four objectives:

  • Simplifying and streamlining the process for managing advertising campaign creatives to reduce effort
  • Providing self-service capabilities to advertisers, agencies and landlords so they can manage their campaign creatives themselves to reduce effort and increase the flexibility they have to change campaigns during execution
  • Providing a robust and scalable capability to handle dynamic campaigns where the creative is driven by a trigger or a feed. For example, for a fashion brand different creativity is shown based on the weather, or football scores and betting odds are adjusted in real time for an online betting company. This can significantly increase the relevance of such campaigns and demonstrates the power of out-of-home
  • Addressing a key audit requirement to track that the right creative is being played for customers as part of Clear Channel’s ongoing commitment to ensuring full transparency and accountability for their digital outdoor campaigns

The approach the company took historically was to implement local solutions that solve individual business needs or manual efforts by each independent team, resulting in a fragmented approach and a large number of siloed solutions that don’t integrate well with other systems. Delivering on the objectives set out would have been challenging with this approach so an alternative was followed.



Riverflex led the design and build of a  cloud-based content management solution based on a loosely-coupled microservice architecture. This would enable both internal and external stakeholders to quickly and easily manage the content to be delivered on digital advertising campaigns. This platform would accommodate different types of creative including context-sensitive (e.g. weather, sporting events) dynamic creatives to capture new advertising spend.

Riverflex team members led the process to build and support the technology foundation, security implementation, continuous integration/continuous delivery (CI/CD) pipeline, and create the application stack to support the content manager based on Google Cloud Platform (GCP).




We identified that one of the requirements of the application would be for its components to remain flexible as it evolves and the capacity to scale components independently. A microservices architecture provides this flexibility and allows components to be efficiently built in parallel. The application is composed of four layers, as shown below.



Access to the services is controlled and managed at the boundary to provide security, manage client or consumer requirements and manage volumes and throughput.



Each component in the backend is a service. The services execute most of the application’s business logic. They generally own one or more resources, and they connect to the data layer to execute different actions (Get, Post, Put, Delete, Patch) on them. As shown in the figure below, the services are developed with the CQRS pattern to decouple the Read and Write operations. This allows to scale asymmetrically and to represent the model differently whether we are reading or writing on its resource. Each service can connect to the Data Layer and other services. This way, they can perform synchronous operations on its controlled resource but also by reading or writing on others. They also can publish or listen to events on the PubSub to trigger or process asynchronous operations. 



The application platform includes all the elements that support its operation, such as Monitoring, Logging, Build Servers, PubSub, VMs, among others. Below, we’ll describe the more relevant aspects. All of the application’s infrastructure is deployed in Google Cloud Platform, and for multiple platform features we leverage its solutions.


GKE Clusters

As we were developing an architecture of microservices, it was appropriate to store the services in containers and to be able to manage their life cycle through an orchestrator. This is the main reason why we are using Docker containers for our services and Kubernetes as the orchestrator. GKE Cluster provides us with the runtime platform and the Kubernetes engine within the GCP.


Google PubSub

To implement asynchronous communication and messaging pattern, we are using Google PubSub. The reasoning for this decision is justified in the simplicity of its use. An instance can be quickly set up from GCP and a topic is added to which the services can subscribe. The services can then send messages to these subscriptions to be processed asynchronously by the subscribers. Our instance of Google PubSub manages all asynchronous communications within Content Manager.


Google Stackdriver

Any production application would find good use in a reliable observation platform. In this case, we use Google Stackdriver as it provides us with monitoring, logging, tracing, error reporting, and alerting natively on GCP.


MongoDB Atlas

For the Data Layer, we chose MongoDB’s cloud database service Atlas as it abstracts away the complexity of hosting a Replica set instance (necessary to support transactions) and handling deployments, healing, audits and backups of the database.


Lean Design framework

The key elements of the design framework Riverflex employed to design and develop is described below.

  1. The Learn phase of design unpacks the brief, inspires us, and allows us to empathise with users and get to the heart of overlapping needs of the business and user, as a result solving a problem. The Riverflex team listened carefully to end users – both internal & external
  2. The Define phase identifies the goals, objectives, and strategy for the improvement of the User Experience. During this phase, we detail who the product users are and the journey they embark on
  3. The Design phase is collaborative – we welcome input and ideas from different people. It is iterative, we enter feedback loops and validate ideas and assumptions. Ideas can take many shapes (sketches, wireframes, etc)
  4. In the Experiment phase, we encourage adopting a new model that removes the designer as the hero, and instead relies on the best solution revealed by rapid experimentation and measurement. How well do the ideas meet (or not meet) our goals?
  5. The process of the Iterate phase is one of the most important steps in our digital product design process. Iteration allows us to continue the feedback loops, obtaining critical feedback and improvements
  6. Finally, how we support the Launch of a product is just as important as the actual design itself. It requires conversations, reactions, A/B Testing and sometimes documentation


  • The new platform is enabling the rationalisation of content management systems across multiple business units to simplify the application landscape and reduce complex point-to-point integrations
  • Duplicate functionality and associated effort and cost are being reduced across the business
  • The self-service creative management mechanism reduced the workload on the internal campaign management teams, since the external users were now managing their campaigns themselves. One such client managed 150 creatives for just 1 campaign, themselves!
  • New functionality including the ability to handle context based (e.g. weather) and dynamic (e.g. social feeds, streamed video) campaigns is demonstrating the power of digital out-of-home and helping to capture new incremental revenue
  • Having a single CMS that integrates with multiple campaign management and player technologies has reduced the overall cost of ownership and freed up development resources to develop more
  • As part of the CMS rollout, the implementation of a Continuous Integration/Continuous Delivery (CI/CD) approach to cloud development and deployment enabled the organisation to deliver new software features in hours or days instead of months


“I’ve chosen to work with Riverflex as they are highly flexible, complementing Clear Channel staff with strong digital experts, and truly partnering with us to achieve the outcomes we need. They are not afraid to challenge our thinking and do things differently, really striving to champion digital approaches like agile and lean and to make a lasting impact on our business.”

Richard Cross

Chief Digital Transformation Officer and CIO of 2017


Image credit

Let’s talk!

Reach out to one of our Foundry experts to see how we can help you deliver – obligation-free.

Contact us Follow us on
Get access to this success story and learn how we solved a tough technical challenge for our client.

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

Riverflex will use your contact details to be in touch with you and to provide support and information on our consulting services.