Campaign Automator
Languages
Frontend
Backend
Build & Tooling
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.