Nortik

Case Study · WeGenerate

Media buying andcall intelligence,in one profit ledger.

WeGenerate buys media across six ad platforms to generate consumer-initiated Medicare, ACA and final expense calls. We built the internal platform their pay-per-call operation runs on: Ringba call analytics ingested every fifteen minutes and reconciled against ad spend in one profit ledger, the ad asset inventory underneath it, every media buyer's own book on top, and the market monitoring analytics that lifted their yearly revenue 28 percent in under twelve months.

Yearly revenue increase
28%Yearly revenue increase
Ringba call data to live dashboards
15 minRingba call data to live dashboards
Call records per ingestion batch
100KCall records per ingestion batch

Engagement Overview

WeGenerate is a performance marketing firm in Dania Beach, Florida. They run pay-per-call media buying across six ad platforms and turn it into consumer-initiated calls and leads for three healthcare insurance products: Medicare Advantage, ACA plans and final expense.

The operation ran on fragmented spreadsheets and disconnected tools. Performance data lived in Ringba, spend lived inside six or more ad platforms that each describe a campaign differently, and the P&L lived in a spreadsheet with no clean connection to either. We built the custom internal platform that replaced all of it, end to end: the Ringba call-log ingestion, the ledger that reconciles that revenue against spend down to the campaign, the multi-platform ad asset inventory, the media buyer layer, the creative and compliance workflows, and the market monitoring analytics on top.

The single biggest win was unifying Ringba call analytics, financial P&L and multi-platform asset management into one live system, so media buyers, finance and leadership finally read the same performance and financial data. Call data lands every fifteen minutes in batches of up to 100,000 records, which is what makes the picture live rather than reported. And the layer on top of it, market monitoring analytics pulled together from every ad source, took WeGenerate’s yearly revenue up 28 percent inside twelve months.

28%
Yearly revenue increase
15 min
Ringba call data to live dashboards
100K
Call records per ingestion batch
Engagement
End-to-end product development / AI Consulting
Team
Full product team, design through delivery
Focus
Ringba call analytics, ad spend tracking, financial P&L
Working model
Owned delivery, discovery to release

Stack

Frontend

  • TypeScript
  • React
  • Redux

Backend & APIs

  • Node.js
  • Express

Data & storage

  • PostgreSQL
  • Sequelize
  • Redis

AI & voice

  • OpenAI API
  • ElevenLabs

Infrastructure & DevOps

  • AWS
  • Docker

Integrations

  • Ringba API
  • Google Ads API
The WeGenerate campaign sequence builder on a tablet: a Facebook, Google and TikTok sequence with wait steps between them, next to the email step being composed

The Challenge

Nobody in performance marketing is short of numbers. What they are short of is one number. At kickoff, performance lived in Ringba, spend was spread across six or more platform dashboards that each describe a campaign differently, and finance ran on spreadsheets, with no clean connection between any of the three. Profit is the join across those records, and until somebody performs it by hand it does not exist.

So the question a media buyer needs answered every morning, which campaign made money yesterday, took a week and arrived stale. It could also only be answered one channel at a time, which left the cross-channel decision, the one that actually sets where the next dollar goes, running on instinct. Revenue, CPA, RPC and profit by buyer, campaign or vendor had no single source anyone trusted.

Everything around the buying was separate too. Creative production, compliance review, affiliate network credentials and the ad account inventory were each managed in their own place. And ad accounts are consumable at this scale: they get flagged and banned, new ones have to be warmed for weeks before they can carry real spend, and they come from a rotating cast of resellers. Hundreds of them, each in a different state, all tracked in a document that was out of date the moment it was saved.

As the operation grew, all of that got worse rather than better. Onboarding a media buyer, managing an asset through its lifecycle, reconciling the P&L and moving information between systems were manual jobs, and manual jobs at that volume are error-prone jobs.

The Solution

One platform, built around a single reconciled record of what was spent and what came back. Everything else is a different question asked of that record: by the operator, by the buyer, by the person holding the ad accounts together. It starts where the revenue does.

The main focus

Ringba integration at scale

In a pay-per-call operation the revenue is the call, and the calls live in Ringba. So the platform integrates with it directly and runs automated call-log ingestion every fifteen minutes, in batches of up to 100,000 records, with retry logic behind it for the runs that fail. Call data lands in its own database schema, which is what lets a batch that size arrive without the operational side of the platform feeling it.

From there it becomes the numbers everyone reads. RPC is aggregated, CPA reporting and enrollment heatmaps are computed off the call record, and a financial synchronization runs hourly to write it into the P&L. That is the difference between a report and a live system: nobody exports anything, and the revenue behind a day of spend is on screen while the day is still worth acting on. It is also the history WeGenerate’s founder credits their AI-powered media buying insights to.

Call-log ingestion interval
15 minCall-log ingestion interval
Records per ingestion batch
100KRecords per ingestion batch
Financial sync into the P&L
HourlyFinancial sync into the P&L
The WeGenerate dashboard: revenue, spend, profit and billable call totals above a twelve-month revenue chart filtered by media buyer, with product and platform performance below

Live KPI dashboards: every channel, one number

The dashboard is the join the business did not have. Every ad source is pulled on a schedule, every call Ringba reports is matched to the campaign that produced it, and out the other side come the figures that run the operation: spend, revenue, profit, RPC and billable calls, each against last month. Under them, the same series over any window from a day to a year, with spend, profit and billable leads switchable onto the same axis.

That switching is the point. A buyer watching spend climb while billable calls stay flat is watching a channel go bad, on one chart rather than inferring it from two. It cuts by product, so Medicare, ACA and final expense compare honestly despite different economics, and by platform, so all six sit on identical definitions rather than each network's own flattering ones. Leadership reads the same screen through performance boards and best-campaign views.

  • Live KPI Dashboards
  • Spend & Revenue Reconciliation
  • RPC & Billable Calls
  • Profit Ledger
The WeGenerate reporting view: a twelve-month total revenue trend with a value callout, over a per-platform table of spend, revenue, gross profit, commissions, net profit and converted calls and leads

Market monitoring analytics across every ad source

This is the layer with a number attached, and the reason the engagement produced a 28 percent yearly revenue increase. Spend, revenue, gross profit, commissions, net profit, converted calls and converted leads sit on one row per platform, computed from the reconciled record rather than from what each network reports about itself. A buyer can finally answer the question the ad platforms structurally cannot: not which channel got the cheapest click, but which one produced the profit.

From there it drills. Open a platform and you get its ad accounts, open an account and you get its campaigns, all on the same columns, so finding where a month went is four clicks rather than four exports. That is what makes a winner surface 3.3 times faster: the signal is on one screen instead of scattered across six networks that each grade their own homework. CPA reporting and enrollment heatmaps sit alongside it, and trends over any window catch the slow drifts, so budget moves off a channel while there is still budget left to move.

  • Market Monitoring Analytics
  • Cross-Channel Attribution
  • CPA & Enrollment Heatmaps
  • Forecasting
A single media buyer's reporting view in WeGenerate: their ad accounts grouped by platform, expanded to show each campaign's spend, revenue, gross profit, commission, net profit and converted calls

Financial insights: every buyer's own P&L

Open a media buyer and you get their whole P&L, not a summary of it. Every ad account they run, grouped by platform, and under each one every campaign live or paused, with spend, revenue, gross profit, their own commission, agency fees, net profit, spread, converted calls, converted leads and return on ad spend on the same row. Filter it to a platform, a product, or any window.

The drill-down runs the whole way: year to month to day to media buyer to the individual transaction, without changing screens or losing the filter. A buyer running eight accounts across four networks had no way to see their own performance as one picture. Now they can, on every channel at once, the day after the decision that caused it, and the commission on screen is computed from the same reconciled numbers, so what they optimize toward and what they are paid on are the same thing.

  • Drill-Down Financial Reporting
  • Media Buyer P&L
  • Campaign-Level ROAS
  • Commission Attribution
The WeGenerate assets view: total, live, available and warming account counts above a Google ad account table with tags, status, assigned buyers, payment method and provider

Multi-platform asset operations across six networks

Ad accounts are consumable inventory here and they were being tracked like stationery. Now they are a system. Every account across Google, Meta, TikTok, Newsbreak, Bigo and DV360, plus the host profiles and fan pages behind them, held in one centralized inventory with the state it is actually in: warming, ready to use, live in use, pending, having issues, dead. Each carries its provider, its payment method, its placement tags and the buyers it is assigned to.

Requesting an asset is a workflow rather than a message to somebody, so a buyer about to scale a campaign can see whether there is anything to scale it onto and ask for it in the same place. The totals across the top are what the business plans against: an operator can see the warming pipeline running dry weeks before it does. In an operation whose ceiling is set by how much account capacity it keeps alive, that is not an admin feature. It is the constraint.

  • Centralized Asset Inventory
  • Status Lifecycle Tracking
  • Asset-Request Workflows
  • Capacity Planning
A media buyer's profile in WeGenerate: role, start date, commission percentage and compensation, alongside employment type, payment information and stored contracts

One platform, four different jobs

The system is built around distinct roles: media buyers, administrators, the creative team and compliance clients. Dashboards, reporting, finances, assets, creatives and user management are each exposed according to what that role actually does, so a buyer sees their own book and nothing else while the operators upstairs see the whole floor. Each buyer has a profile holding what used to live in four different places: role, start date, employment type and region, commission percentage, compensation, and their signed contracts stored against them rather than in somebody's inbox.

The load-bearing part is that commission percentage lives here and is read by the ledger rather than re-entered into a spreadsheet at month end. That is what makes the payout on a buyer's report and the payout in their contract the same number by construction. It is also what lets per-buyer reporting exist at all: the platform knows, structurally, whose campaigns are whose.

  • Role-Based Access
  • User & Permission Management
  • Commission Rules
  • Contracts

And the rest of what the platform holds

None of these are bolted on beside the ledger. Each one either writes into it or reads from it, which is the whole reason the numbers agree with each other no matter which screen you ask.

  • Finances

    Invoicing, provider payments, agency fees and buyer payouts held against the same reconciled ledger the reporting reads, so what gets paid out and what got reported cannot drift apart.

  • Creative and compliance workflows

    Content planning, creative task management and product-level creative review in one place, with the production-ready files themselves stored on S3 against the product they belong to.

  • Affiliate networks

    The buyer side of the business as first-class records, credentials included: who is taking the calls, at what price, for which product, so revenue arrives attributed instead of being matched up afterward.

  • Campaign sequencing

    Multi-channel launches held as a sequence rather than a calendar invite: platforms in order, a wait between each step, the email composed inline, and the spend it generates attributed back to the sequence.

  • Product segmentation

    Medicare Advantage, ACA and final expense carry different economics and different rules, so every number in the platform can be cut by product without being recomputed.

  • Production delivery

    Separate staging and production environments on AWS, CI/CD for both frontend and backend releases, PM2 behind the API, CloudFront in front of the client, and Sentry watching all of it.

The WeGenerate assets module: live, available and warming account totals above the ad account inventory with its statuses and providers

Business Impact

WeGenerate’s yearly revenue rose 28 percent in less than twelve months, and the client attributes it to the market monitoring analytics we built across their multiple ad sources. The mechanism is unglamorous: call data arrives every fifteen minutes rather than in an export somebody remembers to run, winning campaigns surface 3.3 times faster, and the profit behind a day’s spend lands the same day rather than a week later. Closing that delay is the whole game in a business whose margin is the gap between what a click cost and what a call sold for.

The platform went live as WeGenerate’s central operations hub, and the week of manual reconciliation went with it. Media buyers watch revenue, spend, profit, RPC and billable calls on live dashboards, leadership reads performance and best-campaign boards, and administrators run the ad assets, affiliate networks and creative workflows from the same place. Every buyer sees their own commission built from the numbers management is reading, so the monthly argument about whose figures are right stopped happening.

The Ringba integration is the piece we are proudest of: instead of manual exports, the platform ingests call data continuously, applies the business logic the rest of the system depends on, and turns raw call logs into insight the whole company reads. None of it needed a long runway either. The full interface was finished in four weeks and the platform inside twelve months, and WeGenerate now run their media buying against evidence rather than instinct.

Real-life stories of triumph.

Get In Touch
Jordan MesserWeGenerate logo
Jordan Messer
Co-founder & CEO, WeGenerate
Working with Nortik has been nothing short of amazing. They have helped us with our year-long problem of managing our internal operations. Today we're one of the rare firms that has our whole media-buying insights powered by AI.

Nortik’s Impact

Fully autonomous AI Media Buying insighting & forecasting platform built in under a year.

Let's shape your nextAI initiative, together.

Nortik helps you scale your business with AI Engineering.