# Migrate from Adjust (/docs/sdk/migration-adjust)



Adjust uses opaque event tokens (e.g., `abc123`) instead of event
names. To migrate, list your Adjust tokens in their dashboard, map each
to a Layers event name (preferring [standard events](/docs/sdk/standard-events)
so the CAPI relay forwards them automatically), then dual-send.

## Event mapping [#event-mapping]

```ts
// Adjust (existing) — abc123 is your purchase token
const event = new AdjustEvent('abc123');
event.setRevenue(9.99, 'USD');
Adjust.trackEvent(event);

// Layers (added)
layers.track('purchase_success', {
  revenue: 9.99,
  currency: 'USD',
  product_id: 'premium_yearly',
});
```

## Callback parameters [#callback-parameters]

Adjust's callback params map to Layers `properties`:

```ts
// Adjust
event.addCallbackParameter('sku', 'premium_yearly');
event.addCallbackParameter('user_segment', 'power');

// Layers
layers.track('purchase_success', {
  revenue: 9.99,
  currency: 'USD',
  sku: 'premium_yearly',
  user_segment: 'power',
});
```

## Partner parameters [#partner-parameters]

Adjust's partner parameters (network-specific payload injection) don't
have a direct Layers equivalent. The relay builds a fixed user\_data
schema for each platform. If you need network-specific fields beyond
what the relay forwards, add a per-app `event_map` override or route
through your backend.

## Dual-send [#dual-send]

Same approach as
[AppsFlyer](/docs/sdk/migration-appsflyer#dual-send-sketch) — \~14-day
overlap, reconcile, switch.

## SKAdNetwork [#skadnetwork]

Adjust's SKAN conductor is more feature-rich than what Layers currently
offers. If SKAN is critical to your business, keep Adjust for SKAN
postbacks alongside Layers for CAPI + organic + content.

## Removing Adjust [#removing-adjust]

Standard SDK removal. Layers continues to ingest events without
interruption.
