Insights / Reporting

Hourly ad and sales reports, reconciled automatically

How we match ad spend to real orders by person and campaign, deliver it to the team on Telegram, and keep a human in charge of every budget decision.

VIREXAGROUP Engineering · 13 October 2026

A performance marketing team needs one number many times a day: for each campaign, how much did we spend and how many real orders did it bring? The ad platform knows the spend. The point-of-sale system knows the orders. Neither knows both, and the people running campaigns should not have to stitch them together by hand.

What the report shows

Every hour, and in a daily summary, the team receives a report on Telegram with, for each marketer and each campaign:

Where the numbers come from

Ad platform API+Conversion event log+POS analytics→Telegram report

Getting the order count right

The order count took several attempts. Counting orders by creation time missed orders confirmed later in the day. Counting purchase events from our conversion log covered only part of the orders in one market. The version we trust reads the "confirmed orders" figure directly from the POS analytics, the same figure the sales team sees, and then distributes it across campaigns in proportion to each campaign's leads.

After that change, the per-person totals in the report matched the POS system exactly in our audit.

A report nobody trusts is worse than no report. We check each new version against the POS totals for every person before the team relies on it.

Monitoring that suggests, people who decide

On top of the reports, we run four monitoring jobs on campaign data:

These jobs send suggestions. They do not change budgets or switch campaigns on or off. Every change is approved by a person, because the data has known blind spots and the cost of a wrong automatic decision is real money.

Lessons

What is next

Next we plan to add written summaries generated with Claude to the daily report: what changed since yesterday and which campaigns need attention, in plain language, with the same rule that people approve every action.

More from VIREXAGROUP: Server-side conversion tracking for COD e-commerce · A Claude-powered support assistant