---
title: How to Switch MMPs: Week-by-Week Migration Planner
description: Free MMP migration planner: pick your current and new MMP, platforms and ad networks, and get a week-by-week switch plan with parallel run and a checklist.
url: https://switchmmp.com/
---

# Plan your MMP switch, *gate by gate*

Pick where you are leaving and where you are going. Get a week-by-week plan with a parallel run, what to re-map and a checklist you can copy or print.

**Short answer**

Switching MMP is a sequence, not a single swap: check the contract and export your history first, add the new SDK and map events, connect each ad network, rebuild SKAN and deep links, run both tools in parallel for 2 to 4 weeks, then cut over on one date and retire the old setup. The planner below turns your answers into a gate-by-gate plan with a checklist.

## Build your migration plan

> Interactive tool (migration planner): runs in the browser at https://switchmmp.com/#migration-planner. Its text content follows.

Sample plan: AppsFlyer to a destination not decided yet. Change the answers to build yours.

### Timeline

Departures Total: about 7 to 12 weeks

| Gate | When | Step | Remarks |
|---|---|---|---|
| 01 | Week 1 | Check the contract and data terms | Before anything else |
| 02 | Week 1 | Inventory what you measure today | Same week |
| 03 | Weeks 2 to 3 | Export your history | Before access ends |
| 04 | Weeks 2 to 3 | Add the new SDK and map events | In parallel |
| 05 | Weeks 3 to 4 | Connect ad networks and partners | Check each one |
| 06 | Weeks 3 to 4 | Rebuild the SKAN schema | iOS only |
| 07 | Weeks 3 to 5 | Move deep links | Before cutover |
| 08 | Weeks 4 to 9 | Release and run both SDKs | Parallel run |
| 09 | Weeks 6 to 10 | Cut over | One date for all |
| 10 | Weeks 7 to 12 | Retire the old setup | Last call |
| 11 | Before gate 04 | Pick the destination | Final call |

Week ranges are this site's planning assumptions, not vendor statistics. See the [methodology](https://switchmmp.com/methodology/).

### Gate by gate

1. Gate 01
  ### Check the contract and data terms Week 1
  - AppsFlyer's Terms of Use renew subscriptions automatically unless either side gives written notice 45 days before the term ends (unless your order form says otherwise).
  - AppsFlyer's Terms of Use publish no deletion timeline for paid accounts, and on termination you must remove its code from your apps and pages.
  - Write down the last day you can log in to AppsFlyer and work every date in this plan back from it.
2. Gate 02
  ### Inventory what you measure today Week 1
  - List every in-app event name and revenue event you send to AppsFlyer, with the parameters each one carries.
  - List every postback: which network gets which event, with or without revenue.
  - List every live link: ads, QR codes, emails, push campaigns, influencer and affiliate links.
  - Copy the current SKAN conversion value schema value by value.
  - List audiences and cohorts synced from AppsFlyer to ad networks; they need rebuilding in the new tool.
3. Gate 03
  ### Export your history Weeks 2 to 3
  - AppsFlyer raw reports through the Pull API have a 90-day lookback, aggregated reports are kept for 25 months, and Data Locker does not support historical data. Pull raw data in 90-day slices while you still have access.
  - Keep aggregated reports by day, network, campaign and platform for year-on-year comparisons; raw rows are only needed where you will re-use them.
4. Gate 04
  ### Add the new SDK and map events Weeks 2 to 3
  - Map each event name from AppsFlyer to the name the new SDK will send, in one sheet that engineering and marketing both sign off.
  - Add the new SDK in a test build and check installs, events and revenue arrive in your new MMP before any release.
5. Gate 05
  ### Connect ad networks and partners Weeks 3 to 4
  - Meta: connect your new MMP through partner integrations in Events Manager, and send each event through one channel only (MMP, Meta SDK or Conversions API), as Meta advises for value optimisation.
  - Google Ads: create a new link ID for each app under Tools > Data manager > Third-party app analytics. App conversion actions from a new partner arrive as secondary by default, so you choose when they become primary.
  - Tell agencies and affiliates the cutover date and the new tracking links they must use from that day.
6. Gate 06
  ### Rebuild the SKAN schema Weeks 3 to 4
  - Only one SDK should manage SKAN conversion values in an app: AppsFlyer, Branch, Kochava and Singular all say so. Pick the date SKAN control moves to your new MMP.
  - AppsFlyer holds the schema in SKAN Conversion Studio and gives Meta a connection URL for Import from Partner App.
  - Rebuild the conversion value schema in the new MMP's SKAN settings.
  - Meta: replace the Import from partner app URL in Events Manager with the new MMP's, and avoid decreasing values or using lock windows, as Meta advises.
  - Google Ads: set the schema in one place only (Google Analytics, an App Attribution Partner or the Google Ads API), as Google advises.
  - SKAN postbacks only go to one MMP, so postbacks for installs before the switch keep arriving at the old setup: the third window ends 35 days after first launch, plus up to 144 hours of random delay.
7. Gate 07
  ### Move deep links Weeks 3 to 5
  - AppsFlyer branded domains point at OneLink by CNAME, and only branded domains not yet mapped can be deleted from the dashboard.
  - Decide: keep your link domain or start a new one. A domain serves one apple-app-site-association file, so it can point at only one provider at a time.
  - Android: assetlinks.json changes can take up to 7 days to reach Android 15+ devices, and on Android 14 and lower they are picked up on app install or update. Ship the new domain in the app well before cutover.
  - iOS: add the new domain to Associated Domains in the app build that carries the new SDK.
  - Swap links in this order: always-on ads and QR codes first, then emails and push, then influencer and affiliate links.
8. Gate 08
  ### Release and run both SDKs Weeks 4 to 9
  - Release the app version with the new SDK. AppsFlyer's Adjust migration guide recommends removing the old SDK in the same release; keeping both for a while risks double attribution and double charges, so keep each network's postbacks on one MMP only.
  - AppsFlyer publishes a multiple-MMP guide: only one SDK can trigger SKAN postbacks, TikTok supports postbacks for one MMP only, and X Ads does not support multiple MMPs.
  - Compare daily installs by network and platform in both tools; read gaps against each tool's attribution windows before calling one wrong.
  - Run long enough to cover a full Google Smart Bidding learning phase (Google says 7 to 14 days).
  - Android: the Play Install Referrer stays readable for 90 days after install, so the new SDK can attribute users who installed shortly before they updated.
  - Watch app update adoption: the new SDK only measures users on the new version.
9. Gate 09
  ### Cut over Weeks 6 to 10
  - Turn off each network in AppsFlyer under Collaborate > Partner Integrations on the cutover date.
  - Airbridge's migration guide warns events may be counted twice if the previous MMP's postbacks and SAN setting stay on; switch them off on this date.
  - Google Ads: make the new app conversion actions primary and the old ones secondary on the same day. Google says changing conversion goals resets the 7 to 14 day Smart Bidding learning window.
  - Meta: changing an ad set's optimisation event is a significant edit that may restart learning; ad sets usually exit learning after about 50 results in a week.
  - Move SKAN control to your new MMP on the date you chose, and turn off SKAN handling in the other SDK.
10. Gate 10
  ### Retire the old setup Weeks 7 to 12
  - Take a final export from AppsFlyer before the end date.
  - Send the non-renewal notice in time: AppsFlyer's Terms of Use renew subscriptions automatically unless either side gives written notice 45 days before the term ends (unless your order form says otherwise).
  - Remove the AppsFlyer SDK in the next app release.
  - Remove the old link domain's DNS records only after old links are retired.
11. Gate 11
  ### Final call: pick the destination Before gate 04
  MMPs that fit what you entered, from their published pricing and docs. Decide before you add the new SDK.
  1. **[Linkrunner](https://www.linkrunner.io/?utm_source=switchmmp&utm_medium=referral&utm_campaign=planner)** Teams go live within a week; CSV, API and webhook exports with no export fees. Free for 25k one-time installs, then $0.012 to $0.007 per attributed install, postpaid. *Published prices* *Deep linking included* *Raw data exports*
  2. **Airbridge** Best for small apps in East Asian markets. Free tier: 30-day trial; from $40 a month. Raw data: Growth plan only. *Published prices* *Deep linking on entry plan*
  3. **Singular** Free tier: 15k paid conversions. Price: $0.05 per conversion (Growth). Raw data: Partly (ETL is paid). *Published prices* *Deep linking on entry plan*
  4. **Tenjin** Best for indie and hybrid-casual game studios. Free tier: 2k conversions a month; from $200 a month. Raw data: Yes. *Published prices* *Deep linking on entry plan*

### What to re-map

- **Postbacks** Event and revenue postbacks for Meta, Google Ads, moved to the new MMP on one date.
- **Deep link domains and existing links** The link domain, its AASA and assetlinks.json files, and every live link in ads, QR codes, emails and creator bios.
- **Event names** One sheet mapping each old event name to the new SDK's name, revenue events included.
- **SKAN conversion schema** Every conversion value rebuilt in the new MMP, with Meta's import URL and Google's schema source updated.
- **Audiences** Audiences and cohorts synced to ad networks, rebuilt from the new MMP's data.
- **Raw data history** An export of the history you will need, taken before the old access ends.

### Checklist

- Gate 01: Check the contract and data terms
- Gate 02: Inventory what you measure today
- Gate 03: Export your history
- Gate 04: Add the new SDK and map events
- Gate 05: Connect ad networks and partners
- Gate 06: Rebuild the SKAN schema
- Gate 07: Move deep links
- Gate 08: Release and run both SDKs
- Gate 09: Cut over
- Gate 10: Retire the old setup

## What does switching MMP involve?

**MMP migration:** moving an app's attribution from one mobile measurement partner to another, including its SDK, ad network postbacks, SKAN conversion schema, deep link domains and historical data.

- **Two systems at once:** AppsFlyer and Singular both publish dual-MMP guides, and both say SKAN postbacks go to one MMP only.
- **Fixed dates:** renewal notice is 45 days at AppsFlyer and Adjust and 30 days at Branch and Singular, in their published terms.
- **Data clocks:** Adjust deletes customer data within 60 days of termination; Branch has no obligation to keep it beyond 90 days.
- **Ad network resets:** Google says Smart Bidding needs a 7 to 14 day learning phase after conversion goal changes.

## How long does an MMP switch take?

Most of a switch is waiting on fixed clocks: notice periods, app update adoption and ad network learning phases. This planner pencils in about 7 to 12 weeks end to end, and the [guide to switch timing](https://switchmmp.com/guides/how-long-does-an-mmp-switch-take/) explains each range.

## Guides for each part of the switch

- [**How long does an MMP switch take?** An MMP switch runs in seven phases, from contract notice to decommission. See realistic ranges, vendor renewal notice periods and ad network learning phases.](https://switchmmp.com/guides/how-long-does-an-mmp-switch-take/)
- [**How to run two MMP SDKs in parallel** Running two MMP SDKs in parallel lets you compare numbers before cutover. What AppsFlyer and Singular document, where it double counts, and when to stop.](https://switchmmp.com/guides/run-two-mmp-sdks-in-parallel/)
- [**How to keep historical attribution data when you switch MMP** Keep historical attribution data when you switch MMP: export windows per vendor, what each deletes after the contract ends, how to import, and warehouse tips.](https://switchmmp.com/guides/keep-historical-attribution-data/)
- [**How to tell ad networks and partners you changed MMP** What to change at Meta, Google Ads, TikTok, Snapchat, Apple Ads and with affiliates when you switch MMP, plus a notification checklist to work through.](https://switchmmp.com/guides/tell-ad-networks-and-partners/)
- [**How to migrate deep links to a new MMP without breaking them** Move deep links to a new MMP without dead links: AASA and assetlinks.json rules, keeping your link domain, vendor domain limits and a safe cutover order.](https://switchmmp.com/guides/migrate-deep-links-safely/)
- [**How to remap SKAN conversion values when you switch MMP** Only one SDK may set SKAN conversion values. How to hand over the schema, reconnect Meta and Google, and time the cutover around the 0 to 35 day windows.](https://switchmmp.com/guides/remap-skan-conversion-values/)
- [**How to move off Firebase Dynamic Links after the shutdown** Firebase Dynamic Links shut down on 25 August 2025 and old links now return 404. What still works, how to export link data and the replacement options.](https://switchmmp.com/guides/move-off-firebase-dynamic-links/)
- [**How to choose where to move when you leave your MMP** Compare MMPs on what matters when you switch: published pricing, export limits, renewal notice and data after termination, with a ranked list and key questions.](https://switchmmp.com/guides/choose-where-to-move/)

## Moving off a specific vendor

- [**Moving off AppsFlyer** Moving off AppsFlyer? See what you can export and for how long, the 45-day renewal notice in its terms, where SKAN lives and which partners to turn off.](https://switchmmp.com/from/appsflyer/)
- [**Moving off Adjust** Moving off Adjust? See which raw data exports exist, the 45-day notice and 60-day deletion terms, how Meta pulls SKAN mappings and what to do with your links.](https://switchmmp.com/from/adjust/)
- [**Moving off Branch** Moving off Branch? See Branch's export windows, the 30-day renewal notice and 90-day data terms, how its SKAN endpoint works and what to plan for link domains.](https://switchmmp.com/from/branch/)
- [**Moving off Singular** Moving off Singular? See its user-level retention windows, the 30-day renewal notice and data deletion terms, how SKAN models reach Meta and its dual-MMP guide.](https://switchmmp.com/from/singular/)
- [**Moving off Firebase Dynamic Links** Firebase Dynamic Links shut down on 25 August 2025. Quick facts on 404s, page.link, the APIs, the Takeout CSV export and what Google says replaces each feature.](https://switchmmp.com/from/firebase-dynamic-links/)

## Questions

**What is an MMP migration plan?**

It is a dated list of everything that has to move when you change mobile measurement partner: contract notice, data exports, the new SDK and event names, ad network connections, SKAN schema, deep links, a parallel run, cutover and retiring the old setup.

**How long does it take to switch MMP?**

This site's planner pencils in about 7 to 12 weeks from contract check to retiring the old setup, most of it a 2 to 4 week parallel run. No vendor publishes a standard length; your release cycle, renewal notice and ad-network learning phases set the real pace.

**What is the riskiest part of an MMP switch?**

Losing data you cannot get back. Export windows and post-termination deletion dates are fixed by each vendor's docs and terms, for example a 90-day raw report lookback at AppsFlyer and deletion within 60 days at Adjust, so the export step comes first.

**Can I run two MMP SDKs at the same time?**

Yes, for a while. AppsFlyer and Singular both publish guides for measuring with two MMPs, but SKAN postbacks go to only one MMP, TikTok supports one MMP at a time and X Ads does not support two.

**Will I lose my historical attribution data?**

Only if you do not export it in time. Export windows differ: AppsFlyer raw reports have a 90-day lookback, and Adjust's terms say customer data is deleted within 60 days of termination.

**Do I need to tell my ad networks when I switch MMP?**

Yes. Each network needs the new MMP connected (Meta partner integrations, a new Google Ads link ID per app, TikTok's own MMP setup), and the old postbacks switched off on the same date so conversions are not counted twice.
