Migrate from Adobe Analytics to Matomo: what the move involves
Matomo has no ready-made importer for Adobe Analytics, so the move means exporting raw history through Adobe data feeds, replaying it into Matomo with the bulk Tracking API, and re-implementing your tags. Matomo's Google Analytics Importer does not apply here, because it only brings over aggregated report data from a Google Analytics property and cannot read Adobe hit data. Plan the project as a data engineering task plus a tagging rebuild, not as a configuration change. The right starting point is the raw data feed, since that is the documented source of raw Adobe Analytics history delivered to cloud storage in hourly or daily batches.
Usually four roles share the work. Analytics engineers write the extraction and replay pipeline, converting hit rows into Matomo tracking requests and batching them in chronological order. A web developer rebuilds the page and event tracking in your tag manager, because Adobe's props, eVars and events have no direct equivalent in Matomo and must be mapped to custom dimensions and goals. An analyst defines which historical reports matter and checks that replayed totals reconcile with Adobe's numbers over an overlapping period. The data owner, usually in privacy or legal, signs off on what history is kept, how long it is retained and whether the consent setup still fits the CNIL exemption conditions for audience measurement.
The main risks are timing, volume and fidelity. Adobe's retention terms set the deadline for taking raw data out, so the export should start before any cutover date is fixed. Replaying backfilled history with past timestamps requires the Tracking API cdt parameter and, for requests older than 24 hours, a token with the right access. Matomo does not reproduce every Adobe report, and the Visitor Log and segmentation depend on raw records you have replayed, so confirm which reports must match exactly. Ask your implementation partner for a written scope that covers the export volume, the replay test on a sample period, the reconciliation method and the sign-off criteria, and confirm the hosting sizing against Matomo's published requirements for your pageview volume.
Which Adobe Analytics capabilities map to Matomo, and which need rework
This table compares the main Adobe Analytics capabilities with their Matomo equivalents and marks each as clean, needs rework or gap. Read each row as a question: can the same data, report or workflow be reproduced in Matomo without rebuilding the tracking design? The main takeaway is that historical reports and raw inspection need separate plans, and that interactive heatmaps and session recordings sit outside the standard Matomo setup.
| Adobe Analytics capability | Matomo equivalent | Status |
|---|---|---|
| Page views and standard traffic reports | Core pageview tracking and Visits, Pages and Referrers reports | Clean |
| Custom events | Matomo Events, sent through the Tracking API or a tag manager | Clean |
| Props and eVars | Custom dimensions (scope set to visit or action), re-created with the same naming | Needs rework |
| Traffic and conversion reports | Goals and Ecommerce reports, rebuilt from the new goal definitions | Needs rework |
| Segments | Matomo segments work on new data only; historical imports from the Google Analytics Importer do not support segmentation | Needs rework |
| Visitor Log style raw inspection | Visitor Log works only on hits Matomo recorded itself, so imported Adobe history will not appear there | Gap |
| Analysis Workspace ad hoc analysis | Matomo reports and custom reports cover common cases; deep freeform workspace analysis has no direct equivalent | Gap |
| Data Warehouse exports | Replaced by database access to your own Matomo instance or by exports you schedule from the Reporting API | Needs rework |
What data can leave Adobe Analytics and what must be rebuilt
Adobe Analytics history leaves in two forms: raw data feeds and report-level exports. Moving it into Matomo means transforming rows, replaying them through the Tracking API, and rebuilding everything that depended on Adobe's identities and report definitions.
Raw data feeds as the export path
Adobe Analytics data feeds deliver raw Analytics data in hourly or daily batches to Amazon S3, Google Cloud Platform or Azure storage, which makes them the documented source for a raw historical export. Confirm with your Adobe admin which report suites are enabled for feeds, which storage account receives them, and how far back the retained files reach. Start this before the Adobe contract or retention deadline sets the timeline.
Historical rows must be transformed
Feed rows carry Adobe's column structure, including props, eVars and events, and they do not match Matomo's request format. Each row needs a script that maps fields to Matomo parameters, converts timestamps to UTC and drops rows that are not page or event hits. Illustrative example: a row with a visit timestamp and a page URL becomes one tracking query string with a cdt value.
Replaying history with the bulk Tracking API
Matomo's bulk requests accept a single HTTP POST with a JSON body holding a requests array, sent in chronological order. Past activity is recorded by setting the cdt parameter, and requests with a cdt older than 24 hours need token_auth. Test replay on a staging Matomo site first, because replayed visits are counted with the same rules as live traffic.
Data Warehouse exports as a secondary source
Data Warehouse report exports give aggregated tables that are useful for checking totals and for backfilling reports, but they cannot rebuild individual visits. Compare a sample of monthly report totals from the exports with the same period replayed into Matomo, and record any gap as a known difference for stakeholders. Check the delivery limits in your Adobe contract before scheduling large pulls.
Tag manager and consent tooling
The Adobe Launch or other tag container, the Adobe Web SDK or s_code calls, and the consent banner that gates them all need replacing with Matomo's tracking code or a tag manager tag. Consent logic is the riskiest piece: CNIL's exemption conditions, including the truncated IP address and the 13-month tracker lifetime, must be configured in Matomo and tested before go-live. Confirm with your legal team which regime applies to each country you serve.
Identities, report definitions and dashboards
Adobe's report suites, segments, calculated metrics, virtual report suites and Analysis Workspace projects do not transfer to Matomo, and Adobe's visitor identities are not portable. Inventory every dashboard and scheduled report that consumes Adobe data, then rebuild each one in Matomo or your BI tool using its own definitions. Expect that imported history will not support Visitor Log or segmentation if it arrives as aggregated data only.
How raw history is replayed into Matomo with the bulk Tracking API
The replay itself is a single HTTP POST to Matomo's Tracking API with a JSON body that holds a requests array. Each entry is a tracking query string, and the array must be sent in chronological order so that visits, page views and goals land in the sequence they happened. Export the Adobe data feed rows into time-ordered batches, convert each row into a Matomo tracking request, and send the batches in order. Keep the batches small enough to retry individually, and log the HTTP response for every batch so a failed block can be re-sent without duplicating the rest.
Past activity is recorded with the cdt parameter, which overrides the request datetime and is interpreted in UTC. Confirm that your Adobe feed timestamps are converted to UTC before you write them into cdt, because a timezone offset will shift every visit. Matomo also requires token_auth when a request's cdt is more than 24 hours old, so the replay job needs a token from a user with write access to the target site. Treat that token as a credential: store it in your secrets manager, scope it to the migration site, and revoke it once the replay is validated.
Replayed visits are not the same as native hits. Matomo's Visitor Log, segments and custom reports depend on the raw records you write, so replayed data is only as useful as the mapping behind it. Adobe props, eVars and events must be mapped to Matomo custom dimensions and goals before the replay runs, and the mapping needs its own review. Then run a validation pass that compares Matomo totals for page views, visits and goal conversions against Adobe totals for the same periods and time zone. Agree on an acceptable variance with the analytics owner before the first run, and do not switch tags until the replayed history passes that check.
The migration sequence from inventory to decommission
The sequence moves Adobe Analytics history and tracking to a self-hosted Matomo instance in five controlled stages, so each step produces a record the next one depends on. Each stage ends with a documented output that the team can review before moving on.
Inventory every report suite, variable and rule
The analytics lead and the developers who own the Adobe implementation list each report suite, prop, eVar, event, success event, goal and segment that reports depend on, along with the consent rules and the tag manager containers that fire them. Confirm with the Adobe administrator that the account has data feed access and which feeds are available for the report suites in scope. The step is done when a mapping sheet links every Adobe variable to a Matomo custom dimension, goal or event category, and each unmapped item has a named owner and a decision to keep, drop or rebuild it.
Size and configure a pilot Matomo instance
The platform team installs Matomo on infrastructure sized from Matomo's requirements FAQ, confirming the PHP, MySQL or MariaDB and web server versions for the release chosen. The team adds one representative site, configures the consent and IP anonymization settings agreed with legal, and creates the custom dimensions and goals from the mapping sheet. It also imports a short slice of historical raw data through the bulk Tracking API, where the cdt parameter sets past timestamps and token_auth is used for activity older than 24 hours. The step is done when a reconciliation report shows the pilot site's test events arriving with the expected dimensions.
Run Adobe and Matomo in parallel
The tag manager fires the existing Adobe tags and the new Matomo tags on the pilot site at the same time, so both platforms see identical user actions. The analyst compares daily visit, pageview, event and goal counts for a defined period, documenting every gap and the reason for it. Differences usually come from bot filtering, cookie consent handling, and mapping errors, and each one is logged with a fix or an accepted explanation. The step is done when the comparison report shows agreed tolerances for each core metric and the business owners sign off on the results.
Switch tags and keep the feed export open
The team removes the Adobe tags from the tag manager for the pilot site and publishes the Matomo-only container, then extends the rollout to the remaining sites in waves that follow the mapping sheet. Adobe data feeds stay enabled throughout this step, so raw hourly or daily batches keep landing in the storage bucket as a fallback record. The step is done when all in-scope sites send data only to Matomo, the feed delivery is confirmed for the final day of Adobe collection, and the dashboards owned by business teams have been rebuilt against Matomo reports.
Archive exports and retire Adobe
Once no site sends data to Adobe and the historical feed files are verified, the team archives the raw feeds, Data Warehouse exports and the mapping sheet in storage the organization controls, with retention set by its own policy. The Adobe contract and retention terms are reviewed with procurement to confirm when access ends and what the final data export covers. The Adobe tags and Adobe-specific code are removed from the sites and the codebase. The step is done when an archive index lists each file with its date range, and the decommission record is signed by the data owner.
What drives the cost and duration of the move
This table breaks the move into its cost components, showing who is paid for each, whether it is one-time or recurring, and what pushes it up or down. Matomo On-Premise Community carries no license fee, so most of the budget sits in servers, implementation, history replay and people. Use the rows to build the questions you put to any implementation partner.
| Cost component | Who is paid | One-time or recurring | What drives it |
|---|---|---|---|
| Matomo software license | No one (GPLv3, free forever on On-Premise Community) | None | Confirm that no premium plugin is needed before you assume zero software spend |
| Application and database servers | Your cloud or hosting provider | Recurring | Monthly pageviews. Matomo's requirements FAQ sizes one server for up to 1 million pageviews a month, and separate app and database servers for up to 10 million |
| Storage for raw hits | Your cloud or hosting provider | Recurring | Retention period and traffic volume. Ask how many years of raw hits you plan to keep and size SSD accordingly |
| Exporting Adobe history | Adobe (contract terms) and your team or partner | One-time | Volume of data feed files, the timeline set by Adobe retention, and whether you need Data Warehouse exports as well |
| Replaying history with the bulk Tracking API | Implementation partner or internal engineers | One-time | Number of historical hits, mapping complexity, and checks that replayed visits match exported totals |
| Mapping props, eVars and events to custom dimensions and goals | Analysts and implementation engineers | One-time | Number of props and eVars in use, how many reports depend on them, and how much custom code your Adobe setup contains |
| Tag manager and site tagging changes | Front-end or tag management team | One-time | Number of sites, single-page app routes, and consent banner integration |
| Premium plugins (optional) | InnoCraft, under its EULA, sold per number of users | Recurring if chosen | Whether you need heatmaps or session recordings. Ask for the per-user price and the free trial terms in writing |
| Upgrades, hosting maintenance and support | Internal team or a retainer partner | Recurring | Release cadence, PHP and database version changes, and whether you buy forum-only or contracted support |
| Internal analyst time | Your own staff | One-time and recurring | Rebuilding dashboards and segments, since Visitor Log and segmentation do not work on imported aggregate reports |
What usually goes wrong and how to prevent it
Most failed Adobe Analytics to Matomo migrations do not fail on the Matomo install. They fail on the data feed, the mapping, the parallel run, the consent setup and the timestamps. Each card below names one failure point and the check that catches it early.
Data feed gaps before retention ends
Adobe Analytics data feeds deliver raw data in hourly or daily batches to Amazon S3, Google Cloud Platform or Azure storage. If the feed is enabled late, paused during a configuration change, or left unmonitored, batches are missing and cannot be recovered from the feed later. Confirm with Adobe the retention deadline for your report suite and run a daily check that every expected batch arrived and was decompressed. Treat the export as the only copy of your history until the replay is verified.
Props, eVars and events mapped wrongly
Adobe props, eVars and events do not map one to one onto Matomo custom dimensions and goals. A common error is mapping a persistent eVar to a visit-scoped dimension, or counting a Success Event as a goal in one site and as a custom event in another. Write a mapping sheet that lists each variable, its scope, its allocation and its Matomo target before the replay starts. Check a sample of replayed visits against the same visits in Adobe.
Double counting during the parallel run
Running Adobe tags and Matomo tags side by side on the same pages inflates neither system on its own, but reports built on both will double count when someone adds the two totals together. The replayed history and the live Matomo data also overlap if the replay window is not cut at the first live hit. Set a single cutover date per site, label the overlap period in every dashboard, and do not sum figures across the two platforms.
Consent configuration drift
CNIL's conditions for exempting audience measurement from consent include limiting the purpose, a single publisher scope, no cross-checking with other processing, truncating the last byte of the IP address and a tracker lifetime of at most 13 months. Adding a User ID, heatmaps or session recordings removes the exemption. Tag changes made during the migration often reintroduce a full IP or a longer cookie. Keep a written configuration baseline, review it after every tag release, and confirm the exemption position with your legal or privacy team.
Replayed timestamps without UTC handling
Matomo's Tracking API uses the cdt parameter to record past activity, and it interprets the time in UTC. Adobe exports carry their own timezone settings, so a replay that uses local report time will shift visits across day boundaries and break daily totals. Requests older than 24 hours also need token_auth. Send a small test batch with known timestamps, confirm the visit times in Matomo match the source, and only then replay the full history.
Expecting aggregated importers to keep raw segments
Matomo's Google Analytics Importer brings in aggregated report data, not raw visit and action data. The Visitor Log, Ecommerce Log, Custom Reports and Segmentation do not work on imported history, and some reports such as Funnels are not imported. Adobe's raw feed is a different case because it can be replayed as visits. Decide which reports stakeholders need on the historical period, and confirm with a test site which views will work before promising them.
How the migration changes by starting point and size
A single large site concentrates most of the risk in one place. The question is less about how many properties to move and more about whether one Matomo instance can absorb the write load and whether the historical replay fits inside the window you have before Adobe retention runs out. Sizing starts from pageviews per month, and Matomo's requirements guidance separates a single server for up to 1 million pageviews a month from a split application and database layout for up to 10 million. Plan the replay as a separate workload from live tracking so that backfill does not slow the production site.
- Size from measured pageviews: Pull monthly pageview counts from Adobe reporting and compare them with the sizing bands in Matomo's requirements FAQ before choosing a topology.
- Separate the replay queue: Run bulk Tracking API imports against a staging site or a throttled path so live visitors are not competing with historical requests.
- Confirm database engine versions: Matomo 6.0.0 requires MySQL 8.0 or newer or MariaDB 10.6 or newer, so check your target engine before you build.
- Freeze a cutover date: Agree one date when the tag switch happens and keep both systems collecting for a short overlap so you can compare totals.
Confirm with your own traffic reports and load tests, not with the bands alone, which describe typical sizing rather than your site.
A multi-site estate changes the work from one migration into a repeatable pattern. Each property needs its own site ID, its own tag configuration and its own mapping of props and eVars, and the shared decisions, such as the custom dimension scheme and the naming of goals, need to be made once and applied everywhere. Without a shared template, each brand ends up with a different taxonomy and cross-site reports stop being comparable. Treat the first property as the pilot that produces the template for the rest.
- Standardize the dimension scheme: Agree one list of Matomo custom dimensions that maps Adobe props, eVars and events, and reuse it across sites.
- Sequence by business value: Migrate the property with the most reporting dependency first, then the lower-risk sites, so the pilot exposes gaps early.
- Plan one history export per property: Adobe data feeds are configured per report suite, so list every report suite and its retention position.
- Decide on shared or separate instances: Consider whether all sites share one Matomo installation or whether business units need isolation, since that choice affects access control and backups.
Ask your implementation partner or internal team to show a written mapping for each property before any tag change goes live.
Teams that already run a tag manager can swap the Adobe tag for a Matomo tag in one container without touching page templates. Most of the effort moves into the data layer and the trigger logic, because Adobe variables are often set inline by developers. The main discipline is keeping the data layer stable while you change the destination, so that marketing and product teams do not see gaps in the events they rely on. Test in a preview or staging environment before publishing.
- Rebuild variables as data layer keys: Map each prop and eVar to a named data layer value, so the Matomo tag reads from the same source Adobe did.
- Version the container: Publish the Matomo tags in a separate version and keep the Adobe version available for rollback.
- Run both tags during overlap: Fire Adobe and Matomo side by side for a defined window and compare event counts.
- Retire the Adobe tag last: Remove the Adobe tag only after the comparison is accepted and the history export is complete.
Check that your tag manager's consent mode settings match the consent decisions you intend to record for Matomo.
When tags are hand-coded into templates, the migration is a code change across every page that loads the Adobe library, and it carries release risk. The safer route is usually to introduce a small, central tracking module that replaces the Adobe calls in one place, then move the page templates to call that module. This also makes the Matomo tracking code reviewable and testable. Hand-coded sites often have undocumented variables, so an inventory of what each page sends is the first deliverable.
- Inventory the calls: Search templates and scripts for Adobe calls, including the props and eVars set on each page.
- Centralize the Matomo code: Put the Matomo snippet and event helper in one shared file that every template uses.
- Use a feature flag for the switch: Gate the new module behind a flag so you can turn it off without a redeploy.
- Keep the names stable: Preserve the event and dimension names during the change, so historical comparisons still make sense.
Review the inventory with the developers who own each template, since undocumented calls are the most common cause of missing data after cutover.
An EU-only audience brings the CNIL conditions into the design. The CNIL sheet lists conditions for analytics trackers to be exempt from consent, including limiting purposes to audience measurement and A/B testing, a single publisher scope, no cross-checking with other processing, truncating the last byte of the IP address and a tracker lifetime of at most 13 months. Matomo's ePrivacy guidance adds that features such as User ID, heatmaps or session recordings remove the exemption, so the migration should not carry those across without a consent review. Confirm the rules with your data protection officer and the authority in each country where you operate, since Matomo's FAQ names France, Italy, the Netherlands and Spain.
- Check the exemption criteria: Compare the tag configuration against the CNIL conditions before enabling the tracker without consent.
- Drop non-exempt features: Leave out User ID, heatmaps and session recordings if you rely on the exemption.
- Set the retention period: Configure the data retention to match the 13-month limit where the exemption applies.
- Document the decision: Record the legal basis and the configuration in your compliance file.
Confirm the exemption position with counsel, because the criteria depend on configuration and national authority guidance.
A global audience brings different questions. The EU consent exemption criteria matter for European visitors but do not decide the design for the rest of the audience, where consent requirements vary by country. A global estate therefore needs a consent layer that can respond to each visitor's region, and an agreed rule for what Matomo collects when consent is not given. The EU-US Data Privacy Framework adequacy decision is relevant to transfers if you ship data to services in the United States, but a self-hosted Matomo in your chosen region changes where analytics data is stored. Ask where each instance will run, since Matomo Cloud data is stored in Frankfurt, Germany, and a self-hosted server sits wherever you put it.
- Map consent by region: List the countries in scope and the consent rule that applies to each one before configuring tags.
- Choose the hosting region: Decide whether the Matomo server sits in one region or several, and document it.
- Review transfers: Check any third-party tags or plugins that send data outside your chosen region.
- Test by geography: Verify consent behavior from representative locations before the cutover.
Confirm the consent requirements for each market with local counsel rather than relying on a single global rule.
Questions buyers ask before moving from Adobe Analytics to Matomo
What does a move from Adobe Analytics to Matomo cost?
The software itself is free to license, so the cost is the work around it. Matomo's pricing page lists the On-Premise Community edition as free forever with unlimited users and hits and forum support, while Matomo Cloud plans start at 29 (excluding tax) per month for tiers from 50,000 to 10 million hits a month, according to Matomo pricing. Your recurring costs are servers sized by pageviews, storage, any premium plugins such as the paid Heatmap and Session Recording plugin under the InnoCraft EULA, and the internal or partner time to upgrade and support Matomo. One-time costs include exporting history, rebuilding tags and mapping props and eVars. Ask any implementation partner for a fixed-scope quote that lists each of these separately, and ask Adobe for your current contract and retention-extension terms so you can compare like for like.
How long does an Adobe Analytics to Matomo migration take?
The timeline depends on how much history you carry over, how many sites and tags you run, and how many custom variables need mapping. No supplied figure gives a duration, so treat any number a vendor quotes as a claim to verify against your own inventory. The steps that usually take the most time are exporting raw data through Adobe data feeds, which deliver hourly or daily batches to Amazon S3, Google Cloud Platform or Azure storage according to Adobe Experience League, replaying that history into Matomo with the bulk Tracking API, and running both platforms in parallel long enough to check reports. Confirm your Adobe retention deadline first, because it sets the outer limit on how much history you can export.
What does the work need from our own team?
Plan for input from four groups: analytics owners who define the reports and goals that must survive the move, developers who maintain the data layer and tags, a platform or infrastructure team that will run the Matomo application and database servers, and a privacy or legal contact who signs off on consent setup. Matomo's requirements FAQ calls for PHP 8.1 or newer and MySQL 8.0 or newer or MariaDB 10.6 or newer on Matomo 6.0.0, or the older PHP 8 and MySQL 5.5 or later or MariaDB combination for Matomo 4.16 and 5, behind a web server such as Apache, Nginx, IIS or LiteSpeed. Your team also needs to decide who receives Matomo alerts and who owns upgrades.
Can our internal team run this migration without outside help?
Yes, a capable internal team can do it, provided it has someone who knows Adobe's data feed format, someone who can write and test the bulk import script, and someone who owns the tag manager change. The hard part is usually the mapping, not the software: each prop, eVar and event must be translated into a Matomo custom dimension or goal, and the translation has to be checked against reports people rely on. Outside help is most useful for a fixed-scope review of that mapping, the import pipeline and the consent configuration, and for upgrade and support retainers after go-live. Be clear about which parts you keep in-house before you request a quote.
Can all of our Adobe Analytics history move into Matomo?
Raw hits can be replayed, but not every report survives. Matomo's Google Analytics Importer, and similar importers, bring over aggregated report data rather than raw hits, so the Visitor Log, Ecommerce Log, Custom Reports and Segmentation do not work on imported history, and some reports such as Funnels are not imported, according to Matomo's FAQ on import limitations. Adobe's data feeds are the path to raw data, so history you replay through the bulk Tracking API can support raw-level views if the timestamps and fields are correct. Expect to decide which historical reports you need to reproduce, which you will archive, and which you will drop, and confirm each decision with the people who use those reports.
What happens to our consent setup when we switch to Matomo?
Consent is set by your legal team and configured in Matomo, not inherited from Adobe. France's CNIL lists conditions for analytics trackers to be exempt from consent, including limiting purposes to audience measurement and A/B testing, a single publisher scope, no cross-checking with other processing, truncating the last byte of the IP address and a tracker lifetime of at most 13 months, according to CNIL sheet 16. Matomo's ePrivacy FAQ notes that features such as User ID, heatmaps or session recordings remove that exemption, and it suggests following the CNIL configuration in Italy, the Netherlands and Spain. Review every tracker and cookie during the tag switch, and document the decision with your privacy counsel.
Does a migration to Matomo change where our data is stored?
It can, because self-hosting puts storage under your control. When you run Matomo On-Premise, data stays in the infrastructure you choose, whether that is your cloud account, a data center or an air-gapped network. Matomo Cloud stores data in Frankfurt, Germany, according to Matomo pricing, but that is a separate choice from self-hosting. Confirm your residency requirement, backup location and any transfers before you decide. The European Commission's adequacy decision for the EU-US Data Privacy Framework (decision 2023/1795, adopted July 10, 2023) allows free flow of personal data to participating US companies, according to the Commission's EU-US data transfers page, but it does not remove the need to check your own contracts.
Who supports Matomo after the migration?
Matomo On-Premise Community comes with forum support, according to Matomo pricing, so day-to-day help is community-based unless you buy a support arrangement. Ask any provider which upgrade windows, patch process and incident response times they commit to in writing, and whether those commitments are in a retainer or a one-off engagement. DeployOpen offers ongoing support, upgrades and continuous testing as retainers, and most engagements are fixed-scope with scope, deliverables and timelines agreed in writing before work starts. Matomo 6.0.0 is still in beta according to the Matomo changelog, so check the release status at the time you plan upgrades.
How DeployOpen scopes, runs and supports the migration
DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens, backs up and documents self-hosted open-source platforms inside the client's own infrastructure, including the cloud accounts, data centers or air-gapped networks the organization already controls. For an Adobe Analytics to Matomo move, the work usually covers the Matomo installation and its database, the export of raw history from Adobe data feeds into storage the client owns, the bulk replay job that writes that history into Matomo, the mapping of props, eVars and events to custom dimensions and goals, and the tag manager switch. Each of these is a separate deliverable, and the written scope should name each one, the environment it runs in and who on the client side signs it off.
Most engagements are fixed-scope. Before work starts, the scope, deliverables and timelines are agreed in writing, and a quote follows from that written scope rather than from a standard price list, which DeployOpen does not publish. Ask for a scope that states the number of Adobe report suites and sites in scope, the historical date range to replay, the hosting target, the cutover plan and the acceptance criteria for the replayed data. Confirm with your own team how the consent configuration for the EU and any other jurisdictions will be decided, because that decision sits with your legal and privacy owners. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies perform those assessments.
After cutover, ongoing support, upgrades and continuous testing are available as retainers, separate from the fixed-scope migration. A retainer is the practical place to plan Matomo upgrades, database maintenance, backup restore tests and plugin updates for any premium features the client chooses to add. Before signing, ask how the retainer defines response expectations, which versions it covers and whether it includes security testing of the Matomo instance. Keep the migration evidence (the export manifests, replay logs and mapping sheets) in the client's own storage so that the record of what was moved stays with the organization after the engagement ends.

