GA4: View Events by Source and Medium Reporting Guide

Question from Reddit user:

Hello,

We have a lot of traffic come to the website and I want to see what traffic is tracking the actions we are tracking.

We have two tags manager events, Phone calls, and submit forms.

They are linked in GA4, so I can see how often those actions have happened.

but How do I see that by source or medium?

I want to see where our conversions are coming from exactly.

I use UTMs for each placement.

?

Thank you

Answer from Nabil:

The short answer is:

How can I see GA4 conversion events (phone calls, form submissions) broken down by source and medium?

To see your custom events like phone calls and form submissions broken down by source and medium, you should use the Acquisition > Traffic acquisition report in GA4 and add a secondary dimension.

Start by navigating to the report, which defaults to showing sessions by Session default channel grouping.

Click the plus icon to add a secondary dimension and select Event name.

Then, use the table filter to look for your custom event names, like your ‘phone calls’ or ‘submit forms’ events.

The table will update to show you a row for each event, and in the other columns, you’ll see the source or medium that drove the traffic for those specific actions.

For a more flexible report, use an Exploration and choose the Source or Medium dimension for rows and Event count for values, with Event name as a filter.

The long answer is:

Your goal is to tie your valuable user actions – your custom events for phone calls and form submissions – back to the marketing channels that drove them, which is the core of effective conversion tracking.

The key is understanding how GA4 connects these pieces of information.

The default reports in GA4 are designed to surface this data, but you need to combine the right dimensions.

As mentioned, the Traffic acquisition report is your starting point, as it attributes the entire session (and the events within it) to the traffic source.

The primary dimension is usually Session default channel grouping, which is a high-level view.

By adding Event name as a secondary dimension, you are instructing GA4 to first group sessions by channel, and then further break down the data to show which specific events, like your phone_call or form_submit events, occurred within those sessions.

You can also change the primary dimension to Session source or Session medium to drill down using your specific UTM parameters.

Alternatively, for greater flexibility and to avoid sampling, you can build a custom report in the Explorations section.

You would select a Free Form Exploration, use Session source or Session medium as the Rows, Event count as the Values, and add a Filter where Event name contains (or is equal to) the name of your specific conversion event.

This is the most effective way within the standard GA4 interface.

For a truly excellent and future-proof solution that eliminates sampling and gives you complete control over attribution models and raw event details, you should adopt a data pipeline approach using Google Tag Manager and a server-side environment like Stape or Google Cloud Platform.

This setup allows you to send clean event data to GA4, and more importantly, it enables you to pipe the raw, unsampled data directly into BigQuery via the native GA4-BigQuery link.

Once your data is in BigQuery, you can use the Google Analytics Data API to query specific slices of that data, or simply use Looker Studio’s BigQuery connector to build fully custom reports without sampling restrictions.

This BigQuery plus Looker Studio API solution is excellent because you can perform your own joins and SQL queries on the event stream, ensuring that every phone call event is accurately and unambiguously linked to the initial UTM parameters that drove the user, which is something even the GA4 interface can sometimes struggle with due to its processing model.

About The Author