Clipflip callbacks check generated VAST fields.
Advisory completeness checks for callbacks returned by Clipflip's public VAST tester sample. Nonempty creative and event path slots and the generated v query field are checked. Issued identifiers, accepted events, ord semantics, server rejection policy and delivery remain outside this profile. The pinned VPAID SDK overlay-click POST branch adds separately guarded JSON-envelope advisories; ordinary GET events retain their existing scope.
What this pack matches
Rules
Codes are stable. A finding in CI, MCP, or the playground lands on the same id.
| Field | Required | What it checks | Rule ids | Source |
|---|---|---|---|---|
creative_path |
required | The public sample emits a nonempty opaque creative path slot. This warning checks template completeness and does not establish an issued-ID format or server rejection rule. Presence diagnostic severity: warning. Fix: Preserve the generated creative path component from the original callback. | vendor.clipflip-vast-tracking.param.creative_path.missingvendor.clipflip-vast-tracking.param.creative_path.empty |
docs |
event_path |
required | The public sample emits a nonempty event path component. Event values remain open; no closed event list or VAST mapping is imposed. Presence diagnostic severity: warning. Fix: Preserve the generated event path component from the original callback. | vendor.clipflip-vast-tracking.param.event_path.missingvendor.clipflip-vast-tracking.param.event_path.empty |
docs |
v |
recommended | All reviewed impression, event, click and error callbacks retain a nonempty v query field. Presence is observed producer-template completeness, not a vendor mandatory-field or delivery guarantee. No version enumeration is inferred. Presence diagnostic severity: warning. Fix: Preserve the original generated v field. | vendor.clipflip-vast-tracking.param.v.missingvendor.clipflip-vast-tracking.param.v.empty |
docs |
method |
optional | Complete HTTP capture contract. Presence diagnostic severity: warning. Value diagnostic severity: warning. | docs | |
path |
optional | Complete HTTP capture contract. Presence diagnostic severity: warning. Value diagnostic severity: warning. | docs | |
content_type |
recommended | Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"value_in","param":"method","values":["POST"]},{"kind":"value_pattern","param":"path","pattern":"^/api/vast/tracking/[^/]+/overlay-click$"}]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. | vendor.clipflip-vast-tracking.http.content_type.missingvendor.clipflip-vast-tracking.http.content_type.emptyvendor.clipflip-vast-tracking.http.content_type.invalid |
docs |
body |
recommended | Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"value_in","param":"method","values":["POST"]},{"kind":"value_pattern","param":"path","pattern":"^/api/vast/tracking/[^/]+/overlay-click$"}]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: object. | vendor.clipflip-vast-tracking.http.body.missingvendor.clipflip-vast-tracking.http.body.invalid |
docs |
body.data |
recommended | Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"value_in","param":"method","values":["POST"]},{"kind":"value_pattern","param":"path","pattern":"^/api/vast/tracking/[^/]+/overlay-click$"}]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: object. | vendor.clipflip-vast-tracking.http.body.data.missingvendor.clipflip-vast-tracking.http.body.data.invalid |
docs |
body.data.overlayId |
recommended | The overlay branch runs for a truthy overlay identifier. The value stays opaque; no issued-ID or alphabet is imposed. Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"value_in","param":"method","values":["POST"]},{"kind":"value_pattern","param":"path","pattern":"^/api/vast/tracking/[^/]+/overlay-click$"}]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. | vendor.clipflip-vast-tracking.http.body.data.overlayId.missing |
docs |
body.data.source |
recommended | The pinned overlay producer emits VAST. This is a source-profile advisory, not a universal collector enum. Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"value_in","param":"method","values":["POST"]},{"kind":"value_pattern","param":"path","pattern":"^/api/vast/tracking/[^/]+/overlay-click$"}]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: string. | vendor.clipflip-vast-tracking.http.body.data.source.missingvendor.clipflip-vast-tracking.http.body.data.source.emptyvendor.clipflip-vast-tracking.http.body.data.source.invalid |
docs |
body.data.eventType |
optional | The first POST serializes the caller event before later a.includes can throw. Null, number, object, empty and omitted values are possible emitted boundaries. Native types and event vocabulary remain open. Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"value_in","param":"method","values":["POST"]},{"kind":"value_pattern","param":"path","pattern":"^/api/vast/tracking/[^/]+/overlay-click$"}]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. | docs | |
body.data.progress |
recommended | The producer rounds a progress ratio without clamping. Negative and greater-than-100 values remain valid. Nonfinite arithmetic serializes as null. Complete HTTP capture contract. Applies when {"kind":"all","conditions":[{"kind":"value_in","param":"method","values":["POST"]},{"kind":"value_pattern","param":"path","pattern":"^/api/vast/tracking/[^/]+/overlay-click$"}]}. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: number or null. | vendor.clipflip-vast-tracking.http.body.data.progress.missingvendor.clipflip-vast-tracking.http.body.data.progress.invalid |
docs |
Validate a payload
pixellint validate url "$ARTIFACT" --rulepack vendor/clipflip-vast-tracking
Try this failing payload in the playground. An example with a validation finding.
https://app.clipflip.video/api/vast/tracking/x/?v=x
cargo install pixellint
·
npm install pixellint