Compare the material, not just two hashes
The checker derives the release, creative, destination, resource limits, schedule and recorded cost context from the campaign. It sorts object keys recursively, preserves array order and hashes compact UTF-8 JSON with SHA-256.
The approval file must contain that same material. Its calculated hash must match the file and the campaign confirmation, together with the algorithm, canonicalization description, campaign ID and fingerprint type. A correct hash of different input is still a failed comparison.
A reconstruction has a different meaning
A fingerprint recorded before publication and one reconstructed afterwards answer different questions. The later record must say that it doesn't prove an earlier fingerprint existed and doesn't authorize another publication or creative reuse.
Event checks compare the required reconstructed sequence and selected details with the campaign. They can establish consistency within the supplied later account. They can't move the creation of that account back in time or turn it into an earlier human decision.
Matching records still need independent confirmation
The fingerprints are local integrity values, not signatures. They don't identify an approver or prove the original decision time, and sufficient file access could change every record to match. Contiguous event numbers describe the supplied order rather than an immutable history.
Confirmation of an actual action therefore remains separate. This note is based on the schema and validator code; campaign rows, private identifiers, media and live accounts were excluded. No validator or test execution was performed.
Fingerprint equality and reconstruction scope
The calculated digest must match the recorded material, and a reconstruction must retain its historical scope.
Local records
Fingerprint checks
Validation result
Scroll or drag the background to move. Use the zoom buttons to resize.Arrow keys move between components. Enter selects.
Choose a component to explore
Select a numbered component on the map or use the component menu. Its details and connections will appear here.
No component selected.
All connections (10)
- 01 · Canonical campaign record → 03 · Derive expected inputcurrent fields · Direct call
- 03 · Derive expected input → 04 · Canonical JSON and SHA-256defined input · Direct call
- 04 · Canonical JSON and SHA-256 → 05 · Payload and fingerprints agree?calculated digest · Direct call
- 02 · Approval evidence file → 05 · Payload and fingerprints agree?recorded material · Direct call
- 05 · Payload and fingerprints agree? → 08 · Validation errorsmismatch · Blocked / denied
- 05 · Payload and fingerprints agree? → 06 · Reconstructed audit kind?material agrees · Direct call
- 06 · Reconstructed audit kind? → 07 · No new authority assertedreconstructed audit · Direct call
- 06 · Reconstructed audit kind? → 09 · Consistent local evidencepre-publication kind · Response / return
- 07 · No new authority asserted → 08 · Validation errorsscope assertions disagree · Blocked / denied
- 07 · No new authority asserted → 09 · Consistent local evidencelimited audit scope retained · Response / return