iStock Smart Gallery


The iStock smart gallery was a part of a £200k +, multi-year partnership between Getty Images, the parent company of iStockPhoto, and CreativeBloq. The gallery was designed to appear as a tightly woven, native content module that lived in articles sponsored by Getty. Getty wanted to demonstrate their search API capability, and the goal was to display images that matched the content of a given article. For example if an article had references to football, the gallery should display images related to football.


Getty granted access to their image search API, but in order to comply with the OAuth2 standard, requests needed to be made from a server so as not to expose our public key. This ruled out making client-side requests. The scheduled impressions for the campaign exceeded our API request limit, which ruled out using CreativeBloq to broker requests. Additionally, after testing the API, I noticed some keywords would return a variety of subjects. For example: “train” returned images of everything from physical training to steam locomotives. And finally, because the campaign was broken into two £100k + stages, whether or not Getty signed on for the second stage hinged on the performance of the first.


The challenges pointed towards building a application that would run locally. A local application solved the auth and rate-limiting problems. Getty provided a Node SDK, which made Node an easy choice. I used ReactJS and Webpack to build a frontend interface. This allowed non-technical users to input a CreativeBloq URL, get back a list of images from the Getty API, quickly filter out odd results, and export a finalized gallery list. When the ad loaded within an article, it looked at the article URL and fetched the matching list of images. The end result was a streamlined management application coupled with an engaging native content ad placement. The ad saw very high engagement due to the positioning and image relevancy, and Getty signed on for the second £100k stage.

The above video shows the management tool that I created using Node and ReactJS to create and launch new galleries. The user selects a launch date and adds keywords, which queries the Getty API. The user can fiter unwanted images, add, and remove keywords before saving the gallery.