> ## Documentation Index
> Fetch the complete documentation index at: https://tinyanalytics.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Import Google Analytics 4 Data

> Connect Google Analytics 4, choose a property and date range, and import historical traffic into tinyanalytics reports without exporting files.

You can import your **Google Analytics 4** history into tinyanalytics by connecting your Google account — there's no file to export. You pick a GA4 property and a date range, and tinyanalytics pulls your historical traffic and turns it into events, so your past data appears in every report alongside your new traffic.

## How to import from GA4

<Steps>
  <Step title="Connect your Google account">
    In your site's import settings, choose **Google Analytics 4** and connect the Google account that has access to your GA4 property. tinyanalytics requests read-only access to your Analytics data.
  </Step>

  <Step title="Pick a property and date range">
    Select the GA4 property to import and the date range you want. tinyanalytics shows an **estimated event count** for that range before you start, so you know the size up front.
  </Step>

  <Step title="Run the import">
    Start the import and **keep the browser tab open** while it runs — the import is driven from your browser. When it finishes, your GA4 history is live in your dashboard.
  </Step>
</Steps>

<Warning>
  The import runs in your browser tab, so **leave the tab open until it completes**. If you close it, the import stops partway; you can delete the partial import and start again. Each import is limited to **5,000,000 events** — pick a shorter date range if your estimate is higher.
</Warning>

## Verify

<Check>
  The import is complete when the selected historical date range appears in your dashboard. Imported events are then available across the same reports as your newly tracked traffic.
</Check>

## What carries over from GA4 — and what's approximate

GA4 doesn't record everything tinyanalytics tracks natively, so some fields are reconstructed or estimated. tinyanalytics is explicit about this rather than inventing data:

| Carries over                             | Approximate or unavailable                                               |
| ---------------------------------------- | ------------------------------------------------------------------------ |
| Pageviews and sessions with daily totals | **Timestamps** are spread within each day (GA4 gives daily aggregates)   |
| **Cities** and countries                 | **Bounce and session duration** are estimated — GA4 has no bounce metric |
| Referrers, sources, and campaigns        | **Region** and **browser version** aren't available from GA4             |
| Browsers, operating systems, devices     | **Custom events** are attributed to the `/` path                         |

**Channels are re-derived by tinyanalytics**, not taken from GA4's channel grouping, so your imported organic, referral, and campaign traffic is classified by the same rules as your live traffic — imported traffic is indistinguishable from natively-tracked traffic.

## Where does imported GA4 data appear?

Imported GA4 data is stored as ordinary events, so it appears in **every report** — overview, pages, sessions, funnels, retention, cohorts, and [period comparison](/docs/analytics-period-comparison). To undo an import, delete it: this removes all of that import's data cleanly. Re-running an import adds the data again, so delete the previous one before re-importing the same range.

<Note>
  Only one import runs at a time per organization. Google Analytics 4 import requires the Google integration to be enabled for your account — the same connection used by [Google Search Console](/docs/google-search-console-analytics).
</Note>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="How many events can one GA4 import include?">
    Each import is limited to **5,000,000 events**. tinyanalytics shows an estimated event count for your chosen date range before you start, so pick a shorter range if the estimate is higher than the limit.
  </Accordion>

  <Accordion title="What happens if I close the tab during a GA4 import?">
    The import stops partway. The GA4 import is driven from your browser, so leave the tab open until it completes. If it does stop early, delete the partial import and start again.
  </Accordion>

  <Accordion title="Why are my imported GA4 timestamps spread through the day?">
    GA4 gives daily aggregates rather than individual visits, so tinyanalytics spreads the events within each day. For the same reason, bounce and session duration are estimated — GA4 has no bounce metric — and custom events are attributed to the `/` path.
  </Accordion>

  <Accordion title="How do I undo a GA4 import?">
    Delete the import. That removes all of that import's data cleanly. Re-running an import adds the data again, so delete the previous one before re-importing the same date range.
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Switch to tinyanalytics" icon="right-left" href="/docs/migrate-analytics-data-to-tinyanalytics">
    The full migration overview.
  </Card>

  <Card title="Google Search Console" icon="magnifying-glass" href="/docs/google-search-console-analytics">
    The other Google connection you can add.
  </Card>

  <Card title="Compare periods" icon="arrow-right-arrow-left" href="/docs/analytics-period-comparison">
    Compare imported history against your new traffic.
  </Card>

  <Card title="Dashboard overview" icon="gauge" href="/docs/web-analytics-dashboard">
    Where your imported data shows up.
  </Card>
</Columns>


## Related topics

- [Import Plausible Analytics Data](/docs/import-plausible-analytics-data.md)
- [Privacy-Friendly Web and Product Analytics](/docs/index.md)
- [Import Simple Analytics Data](/docs/import-simple-analytics-data.md)
