← All projectsProject / Creative production

Automated advertising creative generation

A creative tool that builds HTML, PNG and GIF ads from campaign templates and feed data.

PythonCeleryPlaywrightRedisAngularGraphQL
Project overview

What the service does

A creative-management application that takes a campaign template and current feed data, then renders reusable advertising materials as HTML, PNG or GIF. Teams can organise campaigns and assets in a visual interface.

Campaign teams need to produce image and animation formats from changing feed data without assembling each version by hand.

Who uses it

Marketing and advertising teams that prepare many campaign variations from changing event or product data.

Input
  • Campaign, language, country and content tags.
  • HTML template parts, images and font assets.
  • Current events or values from an external feed.
Output
  • Rendered HTML, PNG previews and GIF creatives.
  • Campaign assets stored for reuse and delivery.
  • Fallback creative when a matching feed item is unavailable.
01 / How the service works

Creative generation

Creative generation

  1. INPUTCampaign and feed

    Template, format, language and current data

  2. PROCESSFill the template

    Select the event and localized assets

  3. PROCESSRender formats

    Browser creates HTML/PNG; Pillow builds GIF

  4. RESULTStore and deliver

    Save assets and serve repeated requests from cache

02 / System architecture

Main components and their roles

Campaign / tags

Configure the campaign

Select formats, languages and template assets.

How it works

Campaign relationships encode project, language, country and content tags, with a fallback campaign.

Feed / template

Compose slides

Current feed events populate the template.

How it works

Slide generation binds localized event data and assets to template sections.

Celery / Chromium / Pillow

Render formats

Background tasks create visual versions of the creative.

How it works

Playwright captures browser frames; Pillow assembles GIF. Celery groups and async batches coordinate work.

PostgreSQL / Redis

Store and serve

Prepared assets are stored and made available for delivery.

How it works

Campaign metadata and rendered files are stored separately. Redis caches frequently requested assets for delivery.

03 / Implementation details

Engineering decisions

01

Fill templates from feeds

Campaign settings select the feed values, language and assets used in each creative.

02

Render formats in background jobs

Browser rendering creates image frames; Pillow assembles animated GIF files.

03

Store and serve creative files

Campaign metadata and rendered assets are stored separately and served through a cache.

Software development for business

Have a project in mind?

Tell me what the application should do, how the team works today and which requirements or deadlines matter.