Yandex watch counters put the tag ID in the path
The noscript fallback is /watch/{id}. The ID is the tag from the Metrica interface. /collect is vendor/yandex-metrica.
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 |
|---|---|---|---|---|
counter_id |
required | It is the numeric Metrica tag ID. Yandex documents the counter as `/watch/{counter_id}`. Evidence: vendor documented. Fix: Put the tag ID from the Metrica interface in the path as `/watch/{id}`. | vendor.yandex-watch.param.counter_id.missingvendor.yandex-watch.param.counter_id.emptyvendor.yandex-watch.param.counter_id.invalid |
docs |
browser-info |
optional | Nonempty browser-info gates the optional runtime defaults. It is a profile hint, not proof of producer identity, a closed flag grammar or a required noscript field. Presence diagnostic severity: warning. | docs | |
page-url |
optional | Pinned prepareUrl uses String.slice with a 2048 UTF-16-unit cap, or 512 on IE. The broad 2048 cap uses exact code-unit counting but cannot enforce the lower IE cap without browser context. Custom schemes and empty values remain open. Applies when {"kind":"present","param":"browser-info"}. Presence diagnostic severity: warning. Maximum decoded UTF-16 code units: 2048. | vendor.yandex-watch.param.page-url.invalid |
docs |
charset |
optional | Optional default-producer advice: senderWatchInfo emits utf-8. This does not establish receiver-wide encoding law, field requiredness or restrictions on custom middleware. Applies when {"kind":"present","param":"browser-info"}. Presence diagnostic severity: warning. | vendor.yandex-watch.param.charset.emptyvendor.yandex-watch.param.charset.invalid |
docs |
site-info |
optional | Optional serialized JSON visit parameters can arrive in URL or form fallback fields. All JSON root types and arbitrary custom members remain open. Blank, macro and cross-carrier ambiguity follow existing input behavior. Presence diagnostic severity: warning. | docs | |
root |
optional | Decode JSON syntax only. No root type, custom-member schema, null ban or scalar format is imposed. Decoded body source: site-info. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"browser-info"}. Presence diagnostic severity: warning. | docs |
Validate a payload
pixellint validate url "$ARTIFACT" --rulepack vendor/yandex-watch
Try this failing payload in the playground. An example with a validation finding.
https://mc.yandex.ru/watch/
cargo install pixellint
·
npm install pixellint