Hackday: content recommendation engine

Recommending what content to read next is a key feature for Metro UK. We’re planning to make it the theme for our next mini hack day. We might even make it a competition. It might go something like this…

Recommendation APIs

Each team will provide a recommendation API, which will be called by 1% of Metro articles. For example,


Metro will call the API, appending relevant parameters. For example:


Personalisation parameters can also be passed if required (though they make caching more difficult)


The team’s recommendation API will need to return JSONP. For example:

metro.renderRecommended("team-x/v1", [{
  "title": "Wenger: Stunning Wilshere goal best I've ever seen"
  "url": "http://metro.co.uk/...",
  "img": "http://s.wordpress.com/...",
  // ...

Metro will render stories appropriately depending on the number of results. 2-3 stories will be displayed as a horizontal strip, 6 items wills be displayed as tiles, any other number will be displayed as a timeline/stack.

Metro will render stories responsively with resized images and appropriate tracking.

Metro APIs

Teams can discover content from Metro’s “latest content” and “trending” APIs. The APIs support filtering by post ID, category or tag.

The trending API contains “heat” indicators: number of views, shares and tweets.


Each team will have access to:

  • Google Analytics for realtime clicks (for the last 30 minutes)
  • Omniture for detailed reports (with a 45 minute lag)

The winner will be the team with the most clicks in the last 30 minutes.

Leave a Reply

%d bloggers like this: