Regional Amazon Ad Tag events use separate collector routes.
The EU and FE Amazon Ad Tag collectors use /s/iu3 on aax-eu.amazon-adsystem.com and aax-fe.amazon-adsystem.com. The main collector uses a separate route.
The pack checks populated event data and optional encoded structures. SDK profile checks remain advisory. Account eligibility and delivery need external context.
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 |
|---|---|---|---|---|
pid |
recommended | The producer sends its configured tag identity. The browser SDK accepts UUIDs; the server template leaves identity grammar open. Presence diagnostic severity: warning. | vendor.amazon-ad-tag-regional.param.pid.missingvendor.amazon-ad-tag-regional.param.pid.empty |
docs |
event |
recommended | The event name is open and limited to 256 UTF-16 code units by both pinned producers. Presence diagnostic severity: warning. Maximum decoded UTF-16 code units: 256. | vendor.amazon-ad-tag-regional.param.event.missingvendor.amazon-ad-tag-regional.param.event.emptyvendor.amazon-ad-tag-regional.param.event.invalid |
docs |
eventSource |
optional | The browser SDK marks its requests with amzn.js. Other producers remain open. | docs | |
items |
optional | Array-style event attributes are serialized as JSON. | docs | |
amazonConsentString |
optional | The producer serializes the optional consent object as JSON. | docs | |
reporting_attributes… |
optional | Both producers normalize these reserved reporting attributes to ASCII letters, digits and underscores. Presence diagnostic severity: warning. Maximum decoded UTF-16 code units: 256. | vendor.amazon-ad-tag-regional.param.reporting_attributes.emptyvendor.amazon-ad-tag-regional.param.reporting_attributes.invalid |
docs |
clientDedupeId |
optional | The browser SDK retains nonempty deduplication strings through 256 UTF-16 code units. Cross-event uniqueness is external. Applies when {"kind":"value_in","param":"eventSource","values":["amzn.js"]}. Presence diagnostic severity: warning. Maximum decoded UTF-16 code units: 256. | vendor.amazon-ad-tag-regional.param.clientDedupeId.invalid |
docs |
eventId |
optional | The browser SDK retains nonempty deduplication strings through 256 UTF-16 code units. Cross-event uniqueness is external. Applies when {"kind":"value_in","param":"eventSource","values":["amzn.js"]}. Presence diagnostic severity: warning. Maximum decoded UTF-16 code units: 256. | vendor.amazon-ad-tag-regional.param.eventId.invalid |
docs |
uuid |
optional | The browser generates a per-request UUID when crypto.randomUUID is available. Presence diagnostic severity: warning. | vendor.amazon-ad-tag-regional.param.uuid.emptyvendor.amazon-ad-tag-regional.param.uuid.invalid |
docs |
ts |
optional | The SDK stamps browser events with epoch milliseconds. Applies when {"kind":"value_in","param":"eventSource","values":["amzn.js"]}. Presence diagnostic severity: warning. | vendor.amazon-ad-tag-regional.param.ts.emptyvendor.amazon-ad-tag-regional.param.ts.invalid |
docs |
browser.tag_id |
recommended | The browser SDK expects its configured tag identity to be a UUID. | vendor.amazon-ad-tag-regional.browser.tag_id |
docs |
root |
optional | The pinned SDK emits this JSON type. Decoded body source: items. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"items"}. Presence diagnostic severity: warning. Native JSON type: array. | vendor.amazon-ad-tag-regional.body.root.invalid |
docs |
root |
optional | The pinned SDK emits this JSON type. Body scope: []. Decoded body source: items. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"items"}. Presence diagnostic severity: warning. Native JSON type: object. | vendor.amazon-ad-tag-regional.body.root.invalid |
docs |
root |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: object or null. | vendor.amazon-ad-tag-regional.body.root.invalid |
docs |
geo |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: object. | vendor.amazon-ad-tag-regional.body.geo.invalid |
docs |
geo.countryCode |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: string. | vendor.amazon-ad-tag-regional.body.geo.countryCode.invalid |
docs |
geo.ipAddress |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: string. | vendor.amazon-ad-tag-regional.body.geo.ipAddress.emptyvendor.amazon-ad-tag-regional.body.geo.ipAddress.invalid |
docs |
consent |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: object. | vendor.amazon-ad-tag-regional.body.consent.invalid |
docs |
consent.amazonConsentFormat |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: object. | vendor.amazon-ad-tag-regional.body.consent.amazonConsentFormat.invalid |
docs |
consent.amazonConsentFormat.amzn_ad_storage |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: string. | vendor.amazon-ad-tag-regional.body.consent.amazonConsentFormat.amzn_ad_storage.invalid |
docs |
consent.amazonConsentFormat.amzn_user_data |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: string. | vendor.amazon-ad-tag-regional.body.consent.amazonConsentFormat.amzn_user_data.invalid |
docs |
consent.gpp |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: string. | vendor.amazon-ad-tag-regional.body.consent.gpp.invalid |
docs |
consent.tcf |
optional | The pinned SDK emits this JSON type. Decoded body source: amazonConsentString. Encoding: json. Decoding diagnostic severity: warning. Applies when {"kind":"present","param":"amazonConsentString"}. Presence diagnostic severity: warning. Native JSON type: string. | vendor.amazon-ad-tag-regional.body.consent.tcf.invalid |
docs |
method |
recommended | The pinned producer uses these transport methods. Complete HTTP capture contract. Presence diagnostic severity: warning. | vendor.amazon-ad-tag-regional.http.method.missingvendor.amazon-ad-tag-regional.http.method.emptyvendor.amazon-ad-tag-regional.http.method.invalid |
docs |
Validate a payload
pixellint validate url "$ARTIFACT" --rulepack vendor/amazon-ad-tag-regional
Try this failing payload in the playground. An Amazon regional collector without an event name.
https://aax-eu.amazon-adsystem.com/s/iu3?pid=synthetic
cargo install pixellint
·
npm install pixellint