demo · v131
Source vs trigger: the cap is asymmetric
Only the trigger side dropped the 25-character aggregation-key identifier cap. Sources still enforce it, because source keys are persisted. Type a key, hit a preset, and watch both sides verdict it in real time.
still capped at 25
uncapped from 131
why the asymmetry
Source keys are stored in the browser's attribution database for the lifetime of the source. Letting them grow without bound would let ad-techs bloat per-user storage. Trigger keys are only used to compose the aggregation contribution at trigger time — they are never persisted. The team removed the cap on the trigger side because it added no privacy or storage benefit but did force ad-tech operators to either (a) hash long identifiers (losing debuggability) or (b) maintain a separate dictionary mapping short codes to long names.
the api
// Attribution-Reporting-Register-Source (still capped at 25 chars)
{ "aggregation_keys": { "campaign_id": "0x59" } }
// Attribution-Reporting-Register-Trigger (uncapped from 131)
{ "aggregatable_trigger_data": [
{ "key_piece": "0x400",
"source_keys": ["campaign:retargeting:abandoned_cart:variant_b:eu"] }
]
}