Migration › Knowledge Base › One library (alloy)
One library (alloy)
A Swiss-army tool replacing a drawer full of single-purpose ones. You used to load AppMeasurement, the Visitor API, and often at.js, three downloads, three points of failure.
The Web SDK is one library, alloy.js, delivered through the AEP Web SDK extension in your Launch property. It handles data collection, identity, and personalization from a single configuration.
In Tags you rarely touch the raw library, the extension's UI fields map onto the underlying configure command[6] (datastreamId, orgId, edgeDomain, consent, identity, and so on). You bind a datastream per environment and you're connected.
For your migration: fewer scripts means faster pages and fewer things that can break, and one configuration surface instead of three. It's also why retiring the old Visitor API extension is part of the plan; its job now lives inside alloy.
One library. Retire the Visitor API and at.js, never run legacy identity or targeting alongside the Web SDK on the same page.
From a drawer of tools to one
The legacy stack was several independent scripts: AppMeasurement for Analytics, the Visitor API for identity, and often at.js for Target, three downloads, three configurations, three things that could fail or fall out of sync. The Web SDK collapses all of it into a single library, alloy.js, that handles collection, identity, and personalization from one configuration.
You rarely touch the raw library
In a Tags-managed world, the AEP Web SDK extension wraps alloy.js for you. The extension's UI fields map directly onto the underlying configure command, datastreamId, orgId, edgeDomain, consent defaults, identity migration, so you configure in the Launch UI and the extension emits the right calls. The raw alloy("configure", {…}) form exists for non-Tags implementations, but it's the exception.
The first-party edge domain
Point collection at a first-party subdomain you own (e.g. data.example.com) via a CNAME to the Edge. This keeps requests in a first-party context, resilient to ITP and ad-blockers, and is set as the extension's Edge Domain. Provision the CNAME and its certificate early; the lead time can otherwise block go-live.
Retiring the old identity library
Because alloy owns identity natively, the Experience Cloud ID Service extension becomes redundant, but you don't yank it carelessly. Keep ECID migration enabled so continuity holds, and only disable the legacy extension per section during decommission. Never let both manage identity on the same page.