Internal Campaign Tracker
A private platform for routing campaign traffic, tracking clicks and conversions, and comparing performance across sources, offers, and devices.

Images
About Internal Campaign Tracker
I built this private campaign-tracking platform as a working proof of concept for a business partner. It brings campaign setup, visitor routing, conversion tracking, and reporting into one internal workspace.
Operators can manage traffic sources, campaigns, landing pages, offers, and affiliate networks. Routing rules choose where visitors go based on details such as country, device, browser, and schedule. Weighted or sequential distribution and traffic caps provide control over how visits are shared between destinations.
Each tracked visit retains its original campaign and destination details. When a visitor continues from a landing page to an offer, the system uses that saved context. Incoming conversion notifications are matched to the original visit, with checks to suppress repeated notifications of the same event. Outgoing callbacks use a persistent queue with retries, delivery history, and a way to inspect and replay failed deliveries.
The reporting workspace lets operators group and filter results by campaign, country, device, offer, landing page, and traffic source. Table, tree, and chart views support different ways to inspect the data. Saved reports, configurable columns, and exports make the same views reusable.
A central engineering decision separates traffic routing from historical reporting. Elixir/OTP handles the application processes, while Phoenix and LiveView provide the administration interface. Compiled routing configuration is held in ETS, operational records are stored in RocksDB, and historical events are written to Parquet files for DuckDB queries. Reports run as separate, bounded jobs. The reporting layer also includes an optional ClickHouse backend.
The project includes Docker deployment configuration and Caddy integration for HTTPS. It remains a private internal product, with the public case focused on the implemented workflow and architecture.






























