> For the complete documentation index, see [llms.txt](https://help.littledata.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.littledata.io/google-analytics/behavior/columns-in-ga4-explorations.md).

# Columns in GA4 Explorations

In GA4 free-form explorations, you can add a dimension to **Columns** as well as to **Rows**. This page explains why that helps and walks through example setups for e-commerce stores.

### What columns do in an exploration

In a GA4 exploration, dimensions usually go in **Rows** and metrics go in **Values**. The **Columns** section is for a second dimension. Each value of that dimension gets its own column.

Adding a second dimension to rows instead gives you a long, nested list that is hard to read. Columns spread the data out side by side, so you can:

* Compare categories at a glance
* Avoid long lists of rows
* Spot patterns and gaps faster

{% hint style="info" %}
Double-clicking a dimension always adds it to **Rows**. To add a dimension to **Columns**, drag it there, or click **Drop or select dimension** under **Columns**.
{% endhint %}

For more on explorations in general, see [GA4 explorations: complete guide for e-commerce growth](https://help.littledata.io/google-analytics/behavior/ga4-explorations-complete-guide-for-ecommerce-growth).

### Example setups

#### Item category by device

See which product categories sell best on each device type.

* **Rows**: Device category
* **Columns**: Item category
* **Values**: Items purchased

![](https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2Fgit-blob-9c5a26d30cd9cd97ce923863bd920929445070f2%2F1-columns-in-ga4-exploration.png?alt=media)

Use this to find categories that sell poorly on one device. They may need better placement or a different promotion on that device.

#### Traffic channel by device

See how shoppers from each channel use different devices. This time the devices are in columns.

* **Rows**: Session primary channel group (Default Channel Group)
* **Columns**: Device category
* **Values**: Sessions

![](https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2Fgit-blob-747edb335ee10f1265d7d13d9c1f7932f7daf644%2F2-channel-and-device-as-columns.jpg?alt=media)

Use this to see which channels drive mostly mobile traffic. Improve the mobile experience for those channels, and adjust ad spend based on how each channel performs across devices.

#### Channel revenue by purchase count

Littledata sends a **Purchase Count** user property (`purchase_count_ld`) to GA4. It updates every time a customer makes a purchase. See [custom dimensions for calculating customer lifetime value](https://help.littledata.io/google-analytics/conversions/customer-lifetime-value-google-analytics#custom-event-parameters).

This setup shows how revenue from each first-visit channel splits by how many purchases a customer has made.

* **Rows**: First user primary channel group (the channel of the customer's first visit)
* **Columns**: Purchase Count
* **Values**: Gross purchase revenue

Use it to see where customers drop off after their first or second order, so you can target your retention marketing.

![](https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2Fgit-blob-0edf63fcd565fa32bca3c62ed259c3aa52579c0f%2F3-pc-as-column-gif.gif?alt=media)

{% hint style="info" %}
You can also add filters to narrow the data, for example by country, by a user segment, or to leave out certain types of purchases.
{% endhint %}

#### Items purchased by age

This example uses the Google Merchandise Store demo property.

* **Rows**: Item name
* **Columns**: Age
* **Values**: Items purchased

![](https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2Fgit-blob-99cb75c1ca4ae70f706bc7248f1bb0651886d098%2F4-age-column-ga4.png?alt=media)

Age has a big effect on which products sell. You can add more than one metric to **Values**, but keep it to one if you want the table easy to read.

#### Channel revenue for new and established users

* **Rows**: Channel group
* **Columns**: New/Established
* **Values**: Gross purchase revenue

![](https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2Fgit-blob-098c52e68fa67ad36ed99eab71ae1341031108d0%2F5-new-vs-established.png?alt=media)

{% hint style="info" %}
According to [Google's documentation](https://support.google.com/analytics/answer/12253918?hl=en), a user counts as "established" 7 days after their first\_visit event.
{% endhint %}

#### Attributed key events by event name

You can also use columns to compare key events side by side, credited by GA4's attribution model.

* **Rows**: Source/Medium (the attribution dimension, not Session source/medium)
* **Columns**: Event name
* **Values**: Key events
* **Filters**: Event name, to keep only the key events you want to compare

Because this uses attribution, the values can include fractions. Some metrics, like Purchases, are grayed out because they don't work with the Source/Medium attribution dimension.

![](https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2Fgit-blob-c5bc92b7f9fef97f928be7e74dbf7abb5fbc9cda%2F6-key-event-names-as-modelled-columns.png?alt=media)

### Related articles

* [GA4 explorations: complete guide for e-commerce growth](https://help.littledata.io/google-analytics/behavior/ga4-explorations-complete-guide-for-ecommerce-growth)
* [Segments in Google Analytics](https://help.littledata.io/google-analytics/behavior/segments-in-google-analytics-4)
* [Custom dimensions for calculating customer lifetime value](https://help.littledata.io/google-analytics/conversions/customer-lifetime-value-google-analytics)
