AdCOM 1.0 JSON Schema Unofficial

Decision records ·

D-012 The init and lastmod timestamps are integer milliseconds since the epoch in AdCOM, and ISO 8601 strings in the protocol buffer definitions IAB Tech Lab hosts. Which does the schema follow?

Gap Cited on main and at the tag AdCOM1.0-202607.

What the schemas do

Until AdCOM's objects are mapped, the schemas say nothing about these attributes; when they are, they follow the text, integer milliseconds.

Options

  • defer Chosen

    Until AdCOM's objects are mapped, the schemas say nothing about these attributes; when they are, they follow the text, integer milliseconds.

  • proto

    Follow the protocol buffer definitions' strings.

Why

The text is the normative artifact, and it writes "integer … Unix format (i.e., milliseconds since the epoch)". The protocol buffer definitions were written three months after the text changed to integers, kept the earlier strings, and were never regenerated. The objects aren't mapped yet, so the schema says nothing about these attributes until the objects phase, which types them as the text writes them.

What we ask the specification to state

Regenerate the protocol buffer definitions from the specification, so that init and lastmod are integer milliseconds in both, or say which artifact a receiver follows. Today the two IAB-hosted artifacts encode one field two incompatible ways.

The specification lines it rests on

Each line is quoted as the record pins it. Expand an item to read the quote.

main

  • Object: Ad, the Ad.init key row L283 at 26c59ba
    init | Timestamp of the original instantiation of this ad (i.e., this object or any of its children) in Unix format (i.e., milliseconds since the epoch).
  • Object: Ad, the Ad.lastmod key row L288 at 26c59ba
    lastmod | Timestamp of most recent modification to this ad (i.e., this object or any of its children other than the Audit object) in Unix format (i.e., milliseconds since the epoch).
  • Object: Audit, the Audit.init key row L853 at 26c59ba
    init | Timestamp of the original instantiation of this object in Unix format (i.e., milliseconds since the epoch).
  • Object: Audit, the Audit.lastmod key row L858 at 26c59ba
    lastmod | Timestamp of most recent modification to this object in Unix format (i.e., milliseconds since the epoch).

Tag AdCOM1.0-202607

  • Object: Ad, the Ad.init key row L283 at d67a6a8
    init | Timestamp of the original instantiation of this ad (i.e., this object or any of its children) in Unix format (i.e., milliseconds since the epoch).
  • Object: Ad, the Ad.lastmod key row L288 at d67a6a8
    lastmod | Timestamp of most recent modification to this ad (i.e., this object or any of its children other than the Audit object) in Unix format (i.e., milliseconds since the epoch).
  • Object: Audit, the Audit.init key row L853 at d67a6a8
    init | Timestamp of the original instantiation of this object in Unix format (i.e., milliseconds since the epoch).
  • Object: Audit, the Audit.lastmod key row L858 at d67a6a8
    lastmod | Timestamp of most recent modification to this object in Unix format (i.e., milliseconds since the epoch).

The record's YAML file