Loading

ClicksFlow - Affiliate Tracking & Partner Marketing Platform

SaaS Development • Multi-Tenant Architecture • High-Volume Click Tracking

ClicksFlow - Affiliate Tracking & Partner Marketing Platform

ClicksFlow - Affiliate Tracking & Partner Marketing Platform

Overview

Share

ClicksFlow is an affiliate tracking and partner marketing platform. It records every click that passes through a tracking link, matches the conversions that follow through server-to-server postbacks and tracking pixels, attributes them to the partner who earned them, and drives the reporting, commission rules and PayPal payouts an affiliate network runs on. THESOFTKING built it for ClicksFlow LLC end to end - consultancy, product planning, UI/UX design, the tracking engine and SaaS application, the multi-tenant architecture that gives every network its own database and tracking domains, the MySQL Galera cluster and server infrastructure we operate in-house, and ongoing support since launch. Five people, twelve months, now handling more than a million clicks a day.

Industry
  • Affiliate Marketing
  • AdTech
  • Performance Marketing
  • SaaS
Technology Used
  • Php
  • Laravel
  • Mysql
  • Nginx
  • Jquery
  • Bootstrap

A White-Label Affiliate Tracking Platform Built for Networks

ClicksFlow is an affiliate tracking and partner marketing platform. It records every click that passes through a tracking link, matches the conversions that follow through server-to-server postbacks and tracking pixels, attributes them back to the partner who earned them, and turns the result into the reports, commission rules and payouts an affiliate network runs on. Today it handles more than a million clicks a day.

THESOFTKING built it for ClicksFlow LLC end to end: consultancy and product planning, UI/UX design, the full tracking engine and SaaS application, the multi-tenant architecture that lets one deployment serve many independent networks, the database cluster and server infrastructure underneath it, and the ongoing support that has kept it running since launch. Five people, twelve months, from an empty repository to a platform other companies now run their own networks on.

Click tracking built for volume, with a redirect path kept deliberately lean because every millisecond of delay is traffic lost.

A dedicated database for every network on the platform, so no tenant shares a table, a query or a bad day with another.

Conversion tracking through server-to-server postbacks and tracking pixels, so advertisers can integrate whichever way their stack allows.

Reporting across offers, partners, placements and geographies, with commission models covering CPA, CPC, CPM and revenue share.

Traffic quality controls combining IP reputation scoring with ASN and IP blocking the network operator controls directly.

Partner payouts through PayPal, driven by the same tracked and approved conversion data the reports are built on.

IMAGE 1 · Full width · 1320×700 · Network reporting dashboard hero

The Challenge: Becoming the Vendor, Not Just the Customer

The client came to us paying for someone else's affiliate tracking software, and the licence had grown into one of the largest fixed costs in the business. That alone is a common enough reason to build. What made this project different is that replacing the licence was only the first of three things they wanted at once.

They wanted to run their own affiliate network on it. They wanted to white-label the same platform and sell it to other companies who wanted to run theirs. And they wanted both without paying a per-click or per-seat fee to a third party ever again. Those three goals pull in different directions: a network operator optimises for their own traffic, while a platform vendor has to serve tenants whose traffic patterns, data volumes and trust levels they do not control. Building software for yourself and building software you resell are not the same problem, and the client needed to do both from one codebase.

On top of that sits the unforgiving part of the category. A tracking platform sits directly in the redirect path between a partner's traffic and an advertiser's landing page. If it is slow, the network loses clicks it has already paid for. If it double counts, the network pays commission twice. If it misses a conversion, a partner does not get paid and stops sending traffic. There is no acceptable margin of error, and the whole thing has to hold up while traffic arrives in unpredictable spikes.

IMAGE 2 · Half width · 648×420 · Offer / campaign setup
IMAGE 3 · Half width · 648×420 · Partner-facing dashboard

Multi-Tenancy: A Dedicated Database Per Network

Most multi-tenant SaaS products put every customer in the same tables and separate them with a tenant column. It is the cheap answer, and for most products it is the right one. For a tracking platform sold to competing affiliate networks it is the wrong one, because the failure modes are unacceptable rather than merely inconvenient: one missing scope in one query exposes one network's partner list and payout rates to another, and a single tenant running a heavy report degrades performance for everyone sharing the table.

So every network on ClicksFlow gets its own database. Isolation stops being something the application has to remember to enforce on every query and becomes a property of the architecture: there is no query you can write, correctly or otherwise, that returns another network's data. It also makes the operational questions answerable one tenant at a time. A network can be backed up, restored, migrated to its own hardware or exported and handed over without touching anybody else, and a tenant whose traffic doubles overnight does not become everyone else's problem.

Each network also gets its own tracking domains. That matters commercially as much as technically: a white-label customer's partners see the customer's brand in the tracking links, not ours and not the client's. It also gives each tenant its own domain reputation, so one network's traffic quality never affects another network's deliverability.

Infrastructure: A Galera Cluster, Built and Operated In-House

A database-per-tenant design puts all the pressure on the database tier, and click tracking is write-heavy in a way most web applications never are. Every click is an insert on the critical path of a redirect a user is waiting on. ClicksFlow runs on a MySQL Galera cluster we specified, built and operate ourselves, chosen because it gives synchronous multi-master replication rather than the asynchronous primary-replica arrangement most Laravel applications settle for.

The distinction matters in this domain. With asynchronous replication, a conversion postback can arrive at a replica that has not yet seen the click it belongs to, and the platform either loses the attribution or has to build compensating logic to paper over the gap. Synchronous replication removes that class of bug rather than working around it: a write committed on any node is committed everywhere before the transaction returns. For a system whose entire job is matching a conversion to a click that happened seconds earlier, that guarantee is worth more than the throughput it costs.

As with our other platform work, none of this is rented. THESOFTKING specified the hardware, built the cluster, and continues to run it: monitoring, capacity planning, backups and the release process. For the client, a fixed and predictable infrastructure cost they control was the entire point of leaving a licensed platform behind. Swapping a per-click licence fee for a per-click cloud bill would have solved nothing.

IMAGE 4 · Full width · 1320×700 · Architecture: tracking domains → redirect → Galera cluster → postbacks

The Click Path: Redirects, Postbacks and Pixels

The redirect is the only part of an affiliate platform an end user ever experiences, and they experience it as delay. Someone has clicked a partner's link and is waiting to reach an advertiser's page; everything ClicksFlow does in that moment happens inside a budget measured in milliseconds, on a path that runs more than a million times a day. There is no room in it for a convenient abstraction or a query that was never looked at closely.

That path got the attention it deserved. It was written to do the minimum required work before handing the visitor on, and it was written against the database rather than through the layers of convenience a framework will happily give you if nobody is watching. Laravel is a productive framework for the parts of the product where developer speed matters more than microseconds, which is most of it: offer management, partner onboarding, reporting, billing. The redirect is the exception, and treating it as an exception is what lets the rest of the codebase stay conventional and maintainable.

Conversions come back the other way, through server-to-server postbacks and tracking pixels. Both exist because advertisers do not get to be told how to integrate: a sophisticated advertiser fires a postback from their backend when a sale is confirmed, which is accurate and hard to tamper with, while a smaller one drops a pixel on a thank-you page because that is what their platform allows. Supporting both is not indecision. It is the difference between a network being able to onboard an advertiser this week or not at all.

Traffic Quality: Deliberately Semi-Automated

Fraudulent and low-quality traffic is the defining problem of affiliate marketing. Bots, datacentre proxies and incentivised traffic all generate clicks that look real, and a network that pays commission on them is losing money on every conversion while an advertiser quietly decides the channel does not work.

ClicksFlow scores incoming traffic against a third party IP reputation service, which catches the well-documented offenders: known datacentre ranges, proxies, VPN exits and addresses with a history of abuse. On top of that, network operators can block by IP and by ASN directly from the admin panel, which is the control that actually matters in practice. Fraud in this industry tends to arrive from a whole hosting provider or a whole network at once, and blocking the ASN stops it in one action rather than chasing individual addresses that rotate faster than anyone can list them.

The system is deliberately semi-automated, and that was a decision rather than an unfinished feature. Fully automatic filtering in this category produces false positives, and a false positive is not a log line: it is a legitimate partner who did not get paid, who is now disputing it, and who will move their traffic to a competitor. The reputation data does the volume work of surfacing what looks wrong; the operator, who knows their partners and can see the pattern, makes the call. The platform is built to inform that judgement, not to replace it.

Designing for Two Audiences at Once

An affiliate platform has two kinds of user with almost nothing in common. A network operator lives in the product all day and needs density: offers, partners, placements, conversion logs, payout runs and traffic quality, all reachable without hunting. A partner logs in occasionally to answer two questions, how much traffic did I send and how much am I owed, and every screen between them and those answers is friction.

Those needs were treated as two separate design problems rather than one interface with permissions bolted on. The operator side is dense and built for scanning and comparison; the partner side is deliberately narrow, showing links, performance and earnings and very little else. Because ClicksFlow is also sold white-label, the partner-facing surface had to carry each tenant's branding rather than the platform's, which meant designing a shell that stays coherent when the logo, palette and domain all belong to somebody else.

IMAGE 5 · Half width · 648×420 · Performance reporting
IMAGE 6 · Half width · 648×420 · Traffic quality / blocking rules
IMAGE 7 · Full width · 1320×700 · Closing shot: operator + partner, white-labelled

Conclusion: Owning the Rails

Five people built ClicksFlow over twelve months, and it has been running the client's affiliate network and their white-label customers' networks ever since. It now handles upwards of a million clicks a day, with every network on its own database, on its own tracking domains, on a cluster the client owns rather than rents.

The brief was framed as replacing a licence that had become too expensive, but that undersells what actually changed. The client stopped renting the rails their business runs on and started owning them, and in doing so turned their largest fixed cost into a product they sell to other people. That is a different outcome from cheaper software. It is the difference between being a customer of your category and being a vendor in it.