Blog
Transparency Is an Architecture, Not a Dashboard
Everyone in adtech now claims to be transparent. But a dashboard is a window the vendor builds into a room the vendor controls. Real transparency is architectural: the buyer owns the raw, event-level record of what happened — and can verify it independently.
- Author
- Ad360 engineering
- Discipline
- Platform engineering
Everyone in advertising technology now claims to be transparent. After the industry's landmark programmatic-transparency studies turned waste and opacity into a boardroom problem, "transparency" became table stakes in every pitch deck. But most of what is sold under that word is a nicer dashboard — a vendor-curated view, of vendor-chosen numbers, defined the way the vendor defines them.
A dashboard is a window the vendor builds, into a room the vendor controls. It can be perfectly honest and still leave you unable to verify anything, because you never hold the underlying facts. Real transparency is not a report. It is an architecture: the buyer owns the raw, event-level record of what actually happened, in their own storage, and can verify it independently.
Two very different meanings of one word
"Transparency" is used for two things that are not the same:
- Transparency-as-visibility. A dashboard or report the platform shows you. You see what it chooses to surface, aggregated and defined on its terms.
- Transparency-as-ownership. You hold the underlying event data yourself, can re-aggregate it, reconcile it, and audit it — independent of the platform's interface.
The difference is not cosmetic. It is about who controls the source of truth. In the first model, the party being evaluated also owns the evidence. In the second, you do.
Why a dashboard is not enough
- The vendor defines the metrics, the joins, and the filters. You cannot reproduce a number whose inputs you cannot see.
- Measurement and media supplied by the same party is the structural definition of "marking your own homework."
- Aggregates hide variance, discrepancies, fee layers, and the event-level detail that genuine measurement (like incrementality) requires.
- When the relationship ends, the dashboard ends with it. Data you own persists.
None of this requires bad faith. A scrupulously honest dashboard is still a view you cannot independently check.
What transparency-by-architecture actually looks like
Concretely, it means delivering the events themselves into infrastructure the client owns. In Ad360's data specification, the shape is explicit:
- Event-level records — auction/bid-request events, impressions, clicks, and conversions — are streamed via Kinesis Data Firehose into the client's own S3 bucket, in near real time (seconds to minutes).
- The platform delivers raw and lightly enriched records; the client performs the joins, transformations, and analytics. The datasets are deliberately not pre-joined.
- Storage is separated by intent: a raw/ prefix for unmodified event records and an enriched/ prefix for records with derived fields.
- Records arrive as newline-delimited JSON, with Parquet available as an optional optimized format, partitioned by time (year/month/day/hour) and, where useful, by demand-hierarchy identifiers and channel.
- Auction rows follow OpenRTB 2.x conventions — request, inventory, device, geo, and campaign identifiers, plus exchange-provided viewability and CTR estimates, banner-size indicators, and IAB/Chromium taxonomy segment lists and counts — with field availability varying honestly by exchange and inventory type.
- Impression and click events carry media_cost (the final cost) and currency at the event level; conversions tie to segment and user identity.
The delivery is the proof: raw/ and enriched/ prefixes · auctions, impressions, clicks, conversions delivered separately · joined by the client on request_id · NDJSON or Parquet · partitioned by year/month/day/hour · in the client's own S3.
"Deliberately not pre-joined" is the point
Handing over four separate datasets that the client must join sounds like extra work. It is actually the transparency guarantee. By delivering auctions, impressions, clicks, and conversions as distinct records joinable on a shared request_id, the buyer reconstructs the funnel themselves — and can verify the join rather than trust a pre-computed "auction-impression-click" table they had no hand in building.
The internally joined dataset exists; it simply is not the artifact handed over as gospel. The client builds, and therefore can audit, their own version of the truth. A pre-joined export you cannot reproduce is convenience, not transparency.
What ownership unlocks
- Independent verification of delivery, cost, and discrepancies — on the raw events, not a summary.
- Custom measurement and incrementality built on event-level data rather than vendor aggregates.
- Data residency and control, since the records land in the client's own cloud storage.
- Continuity: the data remains yours when the vendor relationship changes — the same reason a migration is the right moment to fix data ownership.
- Downstream leverage: the events feed the client's own warehouse, BI, and even billing automation.
Common misconceptions
- "Transparency means a dashboard." A dashboard is a view; transparency is ownership of the source.
- "Log-level data is too much for clients to use." Flat, documented, partitioned datasets joinable on one key are very usable — data teams do exactly this routinely.
- "Independent vendors are inherently transparent." Independence is not the same as auditability; structure is what makes data checkable.
- "Pre-joined is more convenient, so deliver that." Convenience you cannot reproduce is not transparency.
- "Transparency is a reporting feature." It is an architectural decision about who owns the system of record.
What good operation looks like
- Insist on event-level data in your own storage, joinable on a shared key.
- Keep raw and enriched separate, so derived fields can be audited against the originals.
- Treat the vendor's dashboard as a convenience layer, not the system of record.
- Document the schema, partition it for your own analytics, and own the joins.
Open questions
- What is the minimum event-level dataset a buyer needs in order to independently verify a given outcome?
- Can the industry converge on standardized, OpenRTB-aligned event schemas so buyers are not relearning each vendor's data shape?
- How does data ownership hold up in a curated-supply world, where more intermediaries sit between buyer and impression?
Transparency that lives only in a dashboard is transparency on loan — defined, bounded, and revocable by the very party being evaluated. Transparency built into the architecture — raw, event-level, client-owned, joinable, and auditable — is transparency you keep. The question to ask a platform is not "what does your dashboard show?" but "what do I actually own?"