[GA4] About Data Import

Data Import lets you upload data from external sources and join it with your Analytics data so you can analyze a single body of information about your business.

Why use Data Import?

Each business system you use generates its own data. Your CRM might contain information like customer-loyalty ratings, lifetime values, and product preferences. If you're a web publisher, your content-management tool might store dimensions like author and article category. If you run an ecommerce business, you store item attributes like price, style, and size. And you use Analytics to measure traffic and performance for your websites and apps. Typically, each body of data exists in its own silo, uninformed by the other data. Data Import lets you join all this data in Analytics in order to take down these silos, unlock new insights, and democratize your data.

How Data Import works

Uploading data

You upload CSV files that contain external data to an Analytics property. You can export files from an offline business tool like your CRM or CMS system, or for smaller amounts of data, you can create the files manually in a text editor or spreadsheet.

Data Import joins the offline data you upload with the event data collected by Analytics. The imported data will enhance your reports, comparisons, and audiences. The result is a full picture of your users' online and offline activity.

Joining data

Data is joined two different ways depending on the type of imported data:

  • Collection/Processing time: Your imported data is joined with Analytics data as the Analytics data is collected and processed as if it were collected with the event, and the joined data is written to the Analytics aggregate tables. This type of join does not permit imported data to be joined with Analytics historical data (data that is already processed). If you delete the imported data file, no further joins take place, but the ones that have already already taken place remain.

    This type of data is not available when you're creating audiences in Analytics or when you're creating segments in Explorations.
  • Reporting/Query time: Your imported data is joined with Analytics data when you open a report and Analytics issues a query for the report data. This type of join is temporary: if you delete the imported data file, no further joins take place and the joined data will no longer be accessible in Analytics.

Types of data you can import


Importing metadata adds to the data already collected and processed by a property. Typically, metadata is stored in a custom dimension or metric, though in some cases you might want to overwrite the default information already gathered (for example, importing a product catalog with updated categories).

You can import the following data types:

  • User data: create segments and remarketing lists that incorporate imported user metadata, like a loyalty rating or lifetime customer value.
  • Item data: gain better merchandising insights by importing product metadata like size, color, style, or other product-related dimensions.


Total storage 10 GB
Data-source size 1 GB
Daily uploads

Number of uploads: 24

Cumulative limit: 10 GB 

How to import data

Do not upload a file that includes duplicate keys. Doing so may result in inconsistent reporting data.
  1. In Admin, make sure that you have the desired account and property selected.
  2. In the Property column, click Data Import.
  3. Create a new data source or select an existing data source. (See the following sections.)

Create a new data source

  1. Click Create data source.
  2. Enter a name for your data source.
  3. Select the data type:
    • Item data (reporting/query-time import)
    • User data by User ID (collection/processing-time import)
    • User data by Client ID (collection/processing-time import)
    • Offline events data (collection/processing-time import)
  4. Click Review terms if prompted. This prompt is displayed if you are importing device or user data.
  5. Click Upload CSV, select the CSV file on your computer, then click Open.
  6. Click Next to proceed to the mapping stage.
  7. Select the Analytics fields and imported fields you want to map to one another.
  8. Click Import.

Upload data to an existing data source

  1. In the row for an existing data source, click Import now.
  2. Select the CSV file you want to import, then click Open.

See data-source details, import new data, delete a data source

  1. In Admin, make sure that you have the desired account and property selected.
  2. In the Property column, click Data Import.
  3. In the row for the data source, click and then.

You can view the name, data type, and the status of the data source.

  • % imported: The number of rows successfully imported divided by the number of rows in the import file. 100% means all rows successfully imported.
  • Match rate: The ratio of keys in the import file that can be found in your property within the last 90 days. 100% means the data is fully useful and relevant for your data within the last 90 days.

To import new data:

Click Import now and choose the relevant CSV file on your computer.

To delete the data source:

  1. Click More > Delete data source.
  2. Read the deletion notice, then click Delete data source.

You can delete Collection/Processing-time data, but if you want to remove the data that was previously uploaded from all events processed by Analytics, then you may also need to follow up with a user or user-property deletion (learn more). Deleting an already imported file will not remove the processed data that has been associated with events collected since the import was completed.


Reserved names and prefixes

The following event names, event-parameter names, user-property names, and prefixes are reserved for use by Analytics. If you try to upload data that includes any of the reserved names or prefixes, that data will not be uploaded.

For example:

  • If you try to upload an event with a reserved name, that event and its parameters will not be uploaded.
  • If you try to upload an event with a valid name but one of the parameters uses a reserved name, the event will be uploaded but the parameter with the reserved name will not be uploaded.

Reserved event names

  • ad_activeview
  • ad_activeview
  • ad_exposure
  • ad_impression
  • ad_query
  • adunit_exposure
  • app_clear_data
  • app_install
  • app_remove
  • app_update
  • error
  • first_open
  • first_visit
  • in_app_purchase
  • notification_dismiss
  • notification_foreground
  • notification_open
  • notification_receive
  • os_update
  • screen_view
  • session_start
  • user_engagement

Reserved event-parameter names

  • firebase_conversion

Reserved user property names

  • first_open_after_install
  • first_open_time
  • first_visit_time
  • last_deep_link_referrer
  • user_id

Reserved prefixes (applies to event parameters and user properties)

  • ga_
  • google_
  • firebase_
Was this helpful?
How can we improve it?