iStock Smart Gallery


The iStock gallery was a component of a multi-year partnership between Getty Images and CreativeBloq. The gallery was designed to appear as a tightly woven, native content module that lives in articles sponsored by Getty Images. Getty wanted to showcase their search API capability. The goal is to display images that match the content of an 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.


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 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.