Decoding Traffic Attribution in GA4: A Guide to Query String Parameters

Subscribe to our monthly newsletter to get the latest updates in your inbox

In Google Analytics 4 (GA4), sessions and users are categorized according to what brought them to your site or app. For paid traffic, this is determined by query string parameters included in the URL at the start of the session, the most common of which are source and medium. 

If a user comes to your site or app with Query String Parameters (QSPs), their values will determine where GA4 categorizes your traffic. If no QSPs are in the URL, the visit or visitor will likely be marked as “Direct” or from one of the organic channels, depending on the source/medium of the visit. 

For a full list of GA4's Default Channels, view Google’s documentation here. GA4 also offers the capability to create Custom Channel Grouping logic to self-define what conditions determine the categorization of the session or user.

You can expect Direct traffic, and it’s not necessarily bad… What’s most important is that your traffic is correctly categorized. If you’re seeing a lot of Direct attribution and not much on any of your paid channels, however, you may have a problem.

Attribution Scopes and Where to Find Direct Traffic in GA4

You can find your direct (and other channels) traffic in your Acquisition Reports, in Explore reporting or via LookerStudio’s GA4 connection, which leverages the GA4 reporting API.

GA4 handles attribution in more ways than Universal Analytics did. In GA4, you can report on what channel brought a particular session to the site or app (traffic acquisition reports) and what channel initiated a user’s first visit (user acquisition reports).

Additionally, as of February 8, 2024, we now have an additional set of “manual” acquisition dimensions. These new manual dimensions are found in Explore reporting and in a new Manual report in the Acquisition overview report in the Life cycle collection. You can also build customized Library reports using any of these dimensions for a more tailored reporting format. “Manual” dimensions cover user, session, and event scopes, and will ONLY populate your UTM-tagged values. These dimensions ignore any auto-tagged values that would take precedence in the other acquisition dimensions (session source/medium, first user source/medium, etc.)

Example Manual Acquisition Report:

Example Manual Acquisition Report in GA4

Should I be worried about high volumes of Direct traffic?

When you see a high amount of Direct-attributed traffic, it can be cause for concern, but only sometimes. Below are a few examples of legitimate Direct traffic:

  • User types the site URL directly into their browser
  • User has the site bookmarked and clicks that to visit
  • User clicks an un-tagged link from email, text or social media
  • User directly opens your app
  • User lands on site from another managed site they visited directly, which was added to the second site’s referral exclusion list

Despite legitimate instances of traffic or users categorized as Direct, there are also many times when misattribution may be at play. So, how do you know if your traffic is correctly categorized?

How to Verify Your Attribution Data

To ensure proper attribution, you should use UTMs (manual tagging) in your destination URLs and enable auto-tagging for traffic driven from GMP platforms. As part of auto-tagging enablement, you’ll need to link your GA4 property to your external Google Marketing Platform tools (Google Ads, Campaign Manager, Display & Video 360, etc.).

If you don’t use Attribution QSPs (UTMs and/or auto-tagging), GA4 won’t correctly attribute your paid traffic.

Here are some instances that may indicate — or cause — incorrect Direct attribution:

  • Spikes in Direct traffic or fluctuations from normal ratios 
  • Paid media traffic coming in without UTMs or auto-tagged parameters
  • Redirects that result in URLs with no QSPs
  • New sessions created on subsequent page views (sid parameter)
  • Missing GA4 tracking code
  • page_location parameter (dl parameter) doesn’t  include the query string
  • iFrames cause incorrect values to pass for page_location

The biggest tell comes down to the session_start event and what QSPs are present in the URL at the time of the event. To troubleshoot and verify if GA4 is attributing your traffic correctly, go through an exercise of visiting your site with test UTMs appended to the URL (Example:

When you land on the page, inspect the network call to GA4 using Adswerve’s DataLayer Inspector extension. Within the GA4 event in your console (pageview, for example), one of the parameters is “dL” (documentLocation), which is what feeds the Page Location dimension in GA4. If you don’t see the dl parameter, including your query strings, there’s likely an issue with how that parameter value is passed, which will cause attribution issues. Check out the example below, where you can see that GA4 correctly includes the QSP values needed for attribution.

Example of a network call to GA4 using Adswerve’s DataLayer Inspector extension.

Page Location (or the dl parameter) refers to the data element GA4 uses to extract any QSPs to determine attribution, so if you don’t see your QSPs in that field, something is causing them to be removed from collection. Double-check your implementation to ensure the full URL, including QSPs, is being sent to the page_location parameter, and that they aren’t dropping off the URL in scenarios like redirects or iFrames.

If you’re still experiencing traffic attribution issues or have questions, reach out to Adswerve, and our experts can help.