Campaign Automator

Just EatDesktopOffline2019Project Manager & Frontend Developer

Languages

JavaScript

Frontend

gif-encoder

Backend

Node.js

Build & Tooling

ImageMagicknpmSharp

Summary

Campaign Automator is a Node.js CLI that turns a JSON config and a base advert design into a full batch of campaign assets. It resizes the image to every required dimension with Sharp and ImageMagick, generates GIF animations with gif-encoder where needed, labels outputs by campaign, saves everything locally, then launches an HTML preview. If you're happy with the designs, you confirm in the terminal and it uploads the lot to Google Ads, Bing Ads, DoubleClick, and Facebook Ads Manager via their APIs. Marketing, my junior developer, and I used it at Just Eat. The name was descriptive, not official.

Problem/Context

Campaigns needed 20+ image sizes across different ad formats. Designers built each size manually in Photoshop, then manually uploaded every asset and copy-pasted metadata across platforms. That produced errors and took a long time. "Good" meant everything submitted on the first pass. Sometimes a design broke when resized, elements shifted, and we had to restart with a new base image or adjust the config for different sizes.

Role/Contribution

I owned the full pipeline: development, planning, stakeholder comms, and finding the APIs for each ad platform. I had to understand each service's sizes and capabilities so I could encode them into the tool. I also taught the junior developer the workflow. As lead, I built the whole thing end to end.

Outcome/Impact

The tool achieved its goal: it reduced friction, cut errors, and sped up campaign submission. Every campaign after launch was built and sent through it because it was drastically faster than the manual route.