Omni-channel and cross platform delivery is all the rage. Retailers, entertainment companies, and enterprises from multiple industries are realizing the tangible benefits of delivering content across multiple channels while tracking customers across those multiple touch points.
Delivery of consistent web, tablet, TV, gaming and mobile experiences are critical. To do this successfully however, a method for effectively integrating and delivering multiple types of content to these multiple devices is most critical.
Many of the common media platforms have improved their interphase ability, but without the right solution architecture, it can be slow to change and costly to manage and maintain. I wanted to share some of the “tricks of the trade” that we have used for multi-channel integration and management by developing a custom CMS. In this case, the channels include mobile (IPhone and Android), web sites, tablets, Roku, Chromecast, Xbox, and PlayStation. Quite a diverse list to accommodate!
First, some technical integration considerations:
Video – Although we also created our own custom video players, we had to also accommodate Hulu. Hulu released a new RESTful API for retrieving Partner’s asset information, which we felt was a significant improvement over the previous XML methods. For our projects, this has allowed us to ensure that content is scheduled to appear at the correct time and that the HULU player is always available for the relevant content. This is a new API based that returns JSON data rather than XML and was actually quite easy – since for us the JSON data returned was easier to work with.
ERPs and Ecommerce – Like many CMS integrations, connecting to ecommerce and other catalogue systems are typical requirements. At a minimum, these normally include:
- User synchronisation – All users signing up on the main site must be created as users / customers on the ERP side. This allows SSO and helps manage subscriber status
- Single Sign On (SSO) – Anyone logging into one of the clients media channels will automatically be signed into a client specific shop which is a completely separate site (it’s even on a separate infrastructure).
- Products synchronisation – Products that are added to the ERPs management system are pulled into the CMS so that they can easily be related products to specific videos and shows.
Gaming – such as Xbox and PlayStation. Normally for an Xbox app, you must match the exact format provided by the XBOX API or associated development partner. Fortunately, from my experience, having a custom CMS, it is easier to accommodate this request, since there should be less “bloat” in the system, with the data that is needed, indexed the way it’s needed and ready to handle large scale and volume.
Designing the Custom CMS – origin, architecture and benefits
In our case, accommodating Chromecast and Roku provided the opportunity to build a solid foundation for our feeds, which could then easily be reused for future API development projects. The PlayStation feeds are a great example. They run on the same codebase but we created a custom converter to output JSON instead of XML. The key takeaway is because the CMS is custom, we were able to create the basic “code base”, and then alter our output as needed depending on the partner or device requirements. Custom CMS systems provide the ability to control any aspect of the feed with very few limitations and all of the flexibility (or potential device partners) needed.
We developed an underlying feed library that handles all essential fetching and saving of information from the database.
In one of our examples, we have an Xbox class that sits on top of this and handles requirements specific to the Xbox app and parses all incoming XML data and outputs all information in the required XML format.
This class is a basic abstraction that allows for re-use of functions, such as “get me a list of videos for this show” – leveraging this base layer allows any class sitting above this immediately have access to this functionality. This enables rapid development of new device types or creation of new feeds for any new functionality or screens we might bring into any apps.
There is a similar layer above this for PlayStation that handles features unique to the app and ensures all input and output is formatted as JSON.
Future feeds will be built on this platform and will ensure we are able to quickly roll out new feeds, even if they have specific custom requirements. This delivers speed to market and low maintenance cost. Additionally, improvements or changes to the base class are immediately extendable and available to be used on other end points using the class, such Xbox or PlayStation.
This custom CMS architecture has enabled some amazing functionality and a phenomenal customer experience, allowing a user to seamlessly resume watching any video across any of the numerous endpoints. For example, you can start watching an episode on your laptop while out, get home and resume watching where you left off on your Xbox. This is sophisticated OMNI Channel experience for Video!
Marco Ryan is a GlobalNow IT Senior Programmer and Team Lead