Andrionis Group plans, buys and runs native advertising campaigns — and measures what was actually delivered with instrumentation the seller does not control.
Every figure in a report from here comes off the advertiser's own domain, and the raw event rows behind it stay available long after the flight has closed.
In most campaigns, the party being paid is also the party counting.
The seller's platform reports what it served, the advertiser accepts that report because there is nothing else to compare it against, and the invoice is issued against the seller's own number. That is rarely dishonesty; it is the absence of a second measurement, and it holds even when everyone in the chain is acting in good faith. Andrionis Group puts the second measurement in place before the flight opens, while it can still change how the campaign is bought and run.
How a campaign runs here
-
Instrument
Counting runs on the advertiser's own domain, on an endpoint the seller neither owns nor can see into, so delivery is recorded independently of whatever the seller's platform decides to log. It goes up and gets live traffic through it before the first insertion order starts, because a tracker stood up mid-flight can only ever count the part of the flight that is left. Setup includes proving that the tag's cachebuster produces a genuinely distinct URL on every serve — when it repeats, a proxy or a browser cache collapses a run of serves into one response and one recorded event, and the shortfall gets blamed on the seller.
-
Pace
Delivery is read hourly against the daypart curve the placement actually follows, never extrapolated from whatever the current hour happens to show. Read an early-morning rate and you will understate the day badly; read it at the evening peak and you will overstate it just as badly, and the same campaign looks like a crisis or a non-event depending only on when someone looked. When a placement runs short, the first question is whether it hit a budget cap or ran out of inventory — raising the budget fixes the first and changes nothing whatsoever about the second.
-
Verify
A synthetic event is written through the live collection path on a continuous schedule and read back out of storage, so a collector that has quietly stopped writing surfaces within minutes rather than at the end-of-month reconciliation. Known crawler user agents and datacenter ASNs come out before any figure is quoted, on the plain grounds that traffic originating in a hosting range is not a reader, whatever a dashboard labels it. Retries and redelivered events are identified and reported as their own line rather than folded into the total, because a count that silently absorbs its own duplicates cannot be defended row by row when somebody asks.
-
Reconcile
Reconciliation runs against the seller's billing clock rather than their dashboard's default view — the reporting UI commonly opens in a local business timezone while billing settles in UTC, and comparing one against the other manufactures a discrepancy that was never there. Only completed days are compared; the current day is always short on one side or the other, and a partial day has started more arguments than it has ever settled. The comparison is made on raw serves, because raw serves are what the invoice is written against, and matching a filtered count against a billed count compares two different quantities and then calls the difference a problem.
-
Report
Every report ships with the raw event rows underneath it, retained after the flight closes, so any figure in it can be recomputed months later by somebody who was not in the room when it was produced. Placements are listed individually — the domains and properties the ad actually ran on — rather than rolled up into a channel total, because "native" is not a place and a rollup is where a bad placement hides. Where our count and the seller's disagree, the report states the size of the gap and, where it can be established, the cause, including the cases where the seller turns out to be right.
What you get
- An independent count of delivery, collected on your domain by infrastructure the seller does not touch and cannot adjust.
- A reconciliation against the seller's own report, day by day on their billing clock, with each gap itemised rather than averaged into one comfortable figure.
- A placement-level list of where the ad actually ran — the individual domains and properties, not a channel rollup that hides them.
- The evidence trail behind all three: the raw event rows, the filters applied to them, and the integrity checks that were running while the data was being collected — kept long enough to answer a question raised after the invoice has been paid.
What we don't claim
A third-party count lands below the seller's almost every time, and the honest explanation is that both numbers are partly right. Ad blockers stop a share of tags from ever firing, and a reader who leaves before the page finishes loading was served an ad our collector never hears about — the seller counted a real serve that we cannot see. A gap of that kind is the normal condition of a healthy campaign rather than evidence of misreporting, and it is not money owed. Andrionis Group will say so when that is what the data shows, which is most of the time.
What the independent count is for is the other case: a gap that opens on one placement and not the others, or widens on a particular day, or moves when nothing about the buy moved. Those are worth an invoice conversation, and the evidence trail exists so that conversation can be had with rows rather than adjectives. Anyone who tells you their number is the true number is selling you their dashboard in place of the seller's, and you would be back where you started — trusting a single count, just a different party's.