You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
AdCP 3.3: pixel_tracker playback events; never downgrade them to impression_tracker #1643
The pixel_trackerevent enum gains start, first_quartile, midpoint, third_quartile and complete for video_hosted and audio_hosted. Migration guide §Hosted video and audio playback trackers (tag v3.3.0-beta.0):
To 3.2 sellers (not negotiating 3.3), the buyer sends each as event: custom with custom_event_name set to the 3.3 value. An SDK MAY do this rewrite itself.
Downgrade to 3.0.x (tracker_pixel v1 shape): drop these trackers, including the event: custom interim form, emit PIXEL_TRACKER_LOSSY_DOWNGRADE, and never emit them as impression_tracker, because a quartile URL fired at impression time counts every impression as a quartile view.
Current state
canonical_formats/pixel_tracker.py maps event=custom to the impression_tracker slot with a loss record. For a custom_event_name in the playback set, that's the miscount the spec forbids.
Work
Downgrade: drop playback events and their custom interim form with PIXEL_TRACKER_LOSSY_DOWNGRADE. Part of this can land before regen.
3.3 → 3.2 projection: rewrite playback events to custom (the SDK MAY do this) instead of dropping them.
Done on next in #1800 (41c39887): 3.3 → 3.2 conversion rewrites playback trackers to event: custom + custom_event_name (loss playback_event_as_custom); the 3.0 drop from #1655 is now fully tested. Docs row in #1814 (7657ac7b). Not backported: SDK 9's downgrade_pixel_tracker still maps the custom interim form to impression_tracker; the fix changes its return contract, so it is not a non-breaking 9.x change.
Activity
fix(canonical-formats)!: drop playback trackers on the v1 downgrade i…
feat(canonical-formats): rewrite 3.3 playback pixel trackers to custo…
docs(conversion): list the playback pixel tracker rewrite in the 3.3 …
bokelley commentedon Nov 2, 2026
Done on
nextin #1800 (41c39887): 3.3 → 3.2 conversion rewrites playback trackers toevent: custom+custom_event_name(lossplayback_event_as_custom); the 3.0 drop from #1655 is now fully tested. Docs row in #1814 (7657ac7b). Not backported: SDK 9'sdowngrade_pixel_trackerstill maps thecustominterim form toimpression_tracker; the fix changes its return contract, so it is not a non-breaking 9.x change.