Stored FreeWheel hits used /ad/l/, and the pack checks /ad/g/
Short answer
The logo points here because both the pack and the samples are FreeWheel on v.fwmrm.net, and they are not the same path.
Validate a pixel Open the rulepack
What the pack covers
vendor/freewheel is a GET ad request on *.v.fwmrm.net/ad/g/. Global contracts apply to the first query group. Later groups that carry SDK Type B temporal slots get their own required-field and unique-id checks. Legacy flat fields stay optional. Account authorization and raw transport variants stay outside the pack. The pack page is the field table. This page only tells you when that table applies.
Open /packs/freewheel/ when the URL you copied contains /ad/g/. Run it with --rulepack vendor/freewheel. A finding there is a FreeWheel ad-request finding. It is not a finding about /ad/l/.
What /ad/l/ gets today
An /ad/l/ URL on v.fwmrm.net does not select vendor/freewheel. Core checks still parse the URL, flag insecure transport, and catch broken privacy macros. Directory attribution can still say FreeWheel because the directory lists the v.fwmrm.net suffix and points the vendor at the /ad/g/ pack. Attribution is not selection. If the report says core checks only, believe it.
Do not rewrite /ad/l/ into /ad/g/ to force the pack. That fabricates a request the player did not make. Save the original URL and, separately, an /ad/g/ fixture if you need to test the pack.
What this page does not claim
This page does not translate the /ad/l/1 query groups into required slot ids. The stored string shows s, n, t, f, r, adid, and reid names. Those names are not promoted to a contract. FreeWheel's HTML5 API document is what the /ad/g/ pack cites. It is not automatically the spec for /ad/l/.
Pixellint is not affiliated with FreeWheel. The logo links here, not to freewheel.com, because the sample path and the pack path need to be read together.
How to lint one tag
If the path contains /ad/g/, use the rulepack. If the path contains /ad/l/, use pixellint validate url with no vendor flag. Keep both files if a tag emits both. A clean /ad/g/ report does not cover the /ad/l/ sibling.
Semicolons in the query are part of the FreeWheel parameter style on the pack. Do not convert them to ampersands before validating an /ad/g/ URL, or the group splits the pack expects will move.
pixellint validate url @freewheel-ad-g.txt --rulepack vendor/freewheel
pixellint validate url @freewheel-ad-l.txt
Questions
Which FreeWheel URL selects the rulepack?
vendor/freewheel matches host suffix v.fwmrm.net and path prefix /ad/g/. A URL on the same host with /ad/l/ does not select it.
Did the sample table contain /ad/g/ requests?
The rows grouped for this review were /ad/l/1 on hosts such as 2356e.v.fwmrm.net. Use the pack when you actually have an /ad/g/ request.
Check the artifact
Paste the pixel URL or JSON body into the
playground. Same engine as
pixellint validate. Artifacts you test may be stored;
see privacy.