Who builds AIVORIA and why it works the way it does.
A team running ads across several TikTok ad accounts faces the same routine every morning: open each account, export spend, open the tracker, export revenue, paste both into a spreadsheet, and only then find out which campaign lost money yesterday. The work takes an hour and the answer arrives a day late — by which time the budget is already spent.
AIVORIA exists to remove that hour. Spend and revenue are collected automatically and matched by campaign, so the question «what is losing money right now» has an answer on one screen.
We are a small product team building AIVORIA as an internal reporting tool for a media buying team. It is not a mass-market SaaS: there is no public sign-up, no free tier and no marketplace listing. The service runs for the team that owns the connected ad accounts, and it is developed alongside the people who use it daily.
That closeness shapes the product. Every screen came from a real complaint — a number that did not match TikTok, a campaign that quietly burned budget, a profile nobody could tell apart.
Never invent a number. A dash means «no data» and is never rendered as zero — the two are different facts. An unknown currency is reported as unknown rather than silently multiplied by one.
Never rewrite history. Spend snapshots are only ever appended. Spend grows monotonically, so a value that drops is a collection error, not new data — and keeping the old snapshot is what makes that visible.
Convert at display time only. Amounts are stored in the currency TikTok reported. Rates are applied when a report is drawn, so changing a rate never alters what the team saw yesterday.
Count days in the advertiser's time zone. An ad account in Los Angeles and one in Berlin start a new day nine hours apart. Using the server's date would put our totals out of step with what the advertiser sees inside TikTok — and the first conclusion would be that the report lies.
Show only what needs a decision. Rows performing normally stay behind a link. A screen that shows everything shows nothing.
The application is deliberately small: Python with its standard library and SQLite, no third-party frameworks and no build step. Fewer moving parts means fewer ways to break, and a report tool that breaks is worse than no report tool.
Access to the TikTok Marketing API is read-only and strictly sequential — the rate limit applies per application, not per ad account. Role separation is enforced in the database queries rather than hidden in the interface, so a media buyer cannot reach another person's figures by changing a URL.
support@aivoria.digital — operated by AIVORIA.