Docs menu · Import your data

Docs › Manage

Import your data

Bring your history from Google Analytics 4, Plausible, Umami, Fathom, Matomo or your own CSV, as daily totals read in your browser.

Switching to Nvivio does not mean starting from zero. Import the daily numbers of the tool you used before, and your reports run from the first imported day to today: comparing with last year works from your first day on Nvivio.

  • Where: your site’s Settings › Import data, as owner or admin of the site.
  • Plans: every paid plan and the trial, not Free (Plans and limits). Undoing an import works on every plan.
  • What comes along: totals per day, with sources, pages, countries, devices and more, as far as your old tool’s export has them. Never single visits.

How an import works

  1. Your file stays in your browser. The dashboard reads the export on your computer and sends Nvivio only totals per day, dimension and value: no visits, no IP addresses, no user IDs. A Google Analytics import is read in your browser too, with read-only access that Google gives the page; Nvivio’s servers never see it.
  2. Nvivio’s own days come first. An import fills only the days before the first day Nvivio measured your site, at most 10 years back, and never a day another import already has. So nothing is counted twice. Start measuring with Nvivio first, then import everything before that day.
  3. You see what was found before anything is sent: the tool, the first and last day, the number of days and the reports in it.
  4. Imported days are marked. The chart on the Overview draws them on a light band, labelled Imported, and a line under the chart names the tool and the period. In the API, answers list them under imported.

Imported days work in the Overview, the chart, the reports, comparing with the period before or with last year, and in the API and the MCP server. They have no visits behind them, so they do not appear in Visitors, Live, goals, funnels or the hours of the week, and a filter cannot split them: with a filter, only Nvivio’s own days count, and the dashboard says so.

Imported pageviews do not count towards your plan’s pageviews. Imported days are kept as long as your plan keeps daily totals: without end on paid plans, 13 months on Free (Data retention).

Google Analytics 4

No file needed.

  1. Settings › Import data › Connect Google Analytics. Google’s own window asks you to allow Nvivio to see your Google Analytics data, read only.
  2. Pick the property. Nvivio reads its daily reports a quarter at a time, from the first day the property has data to the day before Nvivio’s first day, and adds each quarter before reading the next.
  3. Keep the page open until it says the import is done. Then Nvivio withdraws the access. You can check it in your Google account, under third-party access.

What Nvivio reads, per day: users, sessions, views, engaged sessions and session duration; sessions per source, medium, campaign, channel group, landing page, hostname, country, region, device category, browser, operating system and language; views per page; and how often each event happened. Google’s own automatic events (page_view, session_start, first_visit, user_engagement, scroll) are left out; its outbound clicks and file downloads become Nvivio’s outbound and download.

Google leaves out small numbers in some reports to protect privacy, and groups rare values as “(other)”. The import says so when it happened. Google also limits how much one property can be read per hour: a very large property may stop with that message. Choose Continue an hour later: Nvivio picks up after the last imported day.

Universal Analytics cannot be imported: Google stopped it and removed its data.

Nvivio’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. More on the Google Analytics page.

Until Google has finished its review of Nvivio’s access, Connect Google Analytics is not shown yet. Importing from a file works in the meantime.

Plausible

  1. In Plausible: Site settings › Imports & Exports › Export to CSV. Plausible emails a link to a zip.
  2. Drop the zip in Settings › Import data, as it is.

The zip has a file per report, one row per day and value: visitors, sources (with UTM tags), pages, entry and exit pages, locations, devices, browsers, operating systems and custom events. Regions are left out (Plausible gives a code, Nvivio a name), and so are custom properties.

Umami

Umami Cloud: Settings › Data › Export for the website. Umami emails a link to a file with the raw events (website_event.csv); drop the zip or the file in Settings › Import data. Your browser adds the events up per visit and per day, in your site’s time zone in Nvivio; the events themselves are never sent.

Self-hosted Umami has no export. Run this query on its database (PostgreSQL; replace the website ID) and drop the file it writes:

\copy (
  select e.session_id, e.visit_id, e.created_at, e.url_path, e.referrer_domain, e.event_type, e.event_name, e.hostname,
         s.browser, s.os, s.device, s.language, s.country, e.utm_source, e.utm_medium, e.utm_campaign
  from website_event e join session s on s.session_id = e.session_id
  where e.website_id = '00000000-0000-0000-0000-000000000000'
  order by e.created_at
) to 'website_event.csv' with csv header

Leave out a column your version of Umami does not have (older versions keep hostname on the session and have no utm_ columns). On MySQL, select the same columns and save the result as CSV with a header line.

Fathom

Fathom’s dashboard download has totals for the whole period, not per day. Use Custom Export instead:

  1. Data type Pageviews, your whole period, Grouping Daily, no dimension, and the metrics Pageviews, Site Visitors, Bounce Rate and Avg Time on Site. This is the file with the totals.
  2. The same again for each dimension you want: Page, Referrer, Browser, Operating System, Device Type, Country, Region and the UTM tags.
  3. For events: data type Events, Grouping Daily, dimension Event Name.
  4. Drop all files in Settings › Import data together.

Fathom’s export has no visits: each visitor counts as one visit, and bounces and time on site follow from Fathom’s rates. Channels come from the referrers; the rest of each day counts as direct.

Matomo

Matomo has no single export, but its reporting API gives a CSV per report with a row per day. Settings › Import data makes the links for you:

  1. Under How to export from your old tool › Matomo, fill in your Matomo address, the site ID, and an auth token (Matomo › Personal › Security › Auth tokens). The token stays in your browser; Nvivio never receives it.
  2. Open each link. Each downloads a CSV from your Matomo.
  3. Drop all files in Settings › Import data together.

The links ask for visits (VisitsSummary.get), pageviews (Actions.get), pages with entry and exit pages (Actions.getPageUrls), channels, websites, search engines, social networks, campaigns, countries, regions, device types, browsers, operating systems, languages and event names, with period=day over the days you can import. A file without a date column (one period summed) is left out. Without Actions.get, Matomo’s actions (pageviews plus downloads, outlinks and events) count as pageviews.

A CSV of your own

Any spreadsheet works. Save it as CSV (comma, semicolon or tab) with a header line:

Column What it is
date (or day) The day: 2024-01-31.
visitors Unique visitors that day.
visits (or sessions) Visits.
pageviews Pageviews.
bounces Visits with one pageview.
duration_s Seconds of all visits together.

Only date and one number are needed. For more than totals, add dimension and value columns, with a row per day, dimension and value, and one row with dimension total per day. Dimensions: entry, exit, referrer, channel, country, region, device, browser, os, lang, hostname, utm_source, utm_medium, utm_campaign, page and event. This is the format of Nvivio’s own export of daily totals, so you can also move daily totals from one site to another.

Continue or undo an import

Every import is listed in Settings › Import data with its tool, its days and its status.

  • Interrupted: the page was closed, or Google’s hourly limit was reached. Choose Continue and drop the same export again or connect the same Google account: Nvivio picks up after the last day it has. The days already in stay.
  • Undo removes the import and all its days. What Nvivio measured itself stays. You can then import again.

Deleting a site, or all its data in the danger zone, removes its imports too.

Why the numbers differ a little

Every tool counts in its own way. A visitor in Google Analytics is a user with a session; in Nvivio, a browser on a day. Google Analytics 4 counts a session as bounced when it was not engaged; Nvivio counts a visit with one pageview. Imported days keep what your old tool counted. More in Why your numbers differ from Google Analytics.

Visitors over several days are the sum of each day’s visitors, for imported days as for Nvivio’s own daily totals.

With the API

With an API key with the scope admin you can import from anywhere (API):

  • GET /v1/sites/{site}/imports: the imports, and the days an import may still fill.
  • POST /v1/sites/{site}/imports with source, label, from and to: starts one and cuts the period to what may be filled.
  • PUT /v1/sites/{site}/imports/{id}/days with whole days, each with one total row: sends days. A day the import already has is replaced.
  • POST /v1/sites/{site}/imports/{id}/done, and DELETE /v1/sites/{site}/imports/{id} to undo.

The answers of stats, timeseries and breakdown list the imported days they counted under imported.