Migration › Knowledge Base › The forward path
The forward path
Migrating Analytics onto the Web SDK is the on-ramp, not the destination. The reason the effort is worth it is everything that plugs in once the data flows through the Edge.
CJA-readiness comes almost for free: because you favoured clean xdm, most of your data already arrives in CJA's native shape, adopting CJA becomes "connect the dataset," not "re-instrument the site." Event Forwarding is the server-side prize: dispatch to GA4, Meta CAPI, and ad platforms from the Edge without adding client-side tags. And Adobe Target needs no separate library, alloy handles personalization, with renderDecisions returning decisions in the same response[29].
Target is its own migration project, scoped after Analytics is stable, at.js becomes alloy, mboxes become decision scopes, mboxTrace becomes Edge Trace.
For your migration: none of this requires re-tagging once you're on the Web SDK. That's the dividend that justified the whole effort; you've moved onto the platform the rest of the stack plugs into.
Stabilise Analytics on the Web SDK first. Treat CJA, Event Forwarding, and Target as separate, sequenced projects, not part of this migration.
The on-ramp, not the destination
Migrating Analytics onto the Web SDK is the foundation; the return on the effort is everything that plugs in once data flows through the Edge. None of it requires re-tagging the site again.
CJA-readiness
Because you favoured clean XDM, most of your data already arrives in the shape Customer Journey Analytics consumes. Adopting CJA becomes "connect the dataset," not "re-instrument the site." The handful of fields you sent via the data object are your documented Data Prep backlog, known, bounded work rather than a surprise.
Event Forwarding, the server-side prize
With data already passing through the Edge, you can enable Event Forwarding: server-side dispatch to non-Adobe destinations like GA4 and the Meta Conversions API without adding client-side tags. For many organisations this is the real business case, fewer browser tags, better performance, and resilience against ad-blockers and ITP.
Adobe Target, briefly
Target needs no separate library, alloy handles personalization, with renderDecisions: true returning decisions in the same response. The vocabulary shifts (at.js becomes alloy, mboxes become decision scopes, mboxTrace becomes Edge Trace), but it's its own migration project, scoped after Analytics is stable. Treat it as the next initiative, not part of this one.