---
title: "How to properly attribute Google Shopping traffic sources in Shopify with utm_medium"
url: https://docs.woolytech.com/en/articles/212-how-to-properly-attribute-google-shopping-traffic-sources-in-shopify-with-utm_medium
collection: "How-tos"
updated: 2026-07-31
language: en
---

# How to properly attribute Google Shopping traffic sources in Shopify with utm_medium

**Question:**

I noticed that the UTM parameters in my Google Shopping product URLs are not being generated correctly. For example, a current URL looks like this:

[https://mxxxxx.com/products/kansas?variant=439xxx9579&utm\_source=google&utm\_medium=organic&utm\_campaign=Multifeed%20for%20Spain&utm\_content=Kansas&currency=EUR&tw\_source=google&tw\_adid=71x6&tw\_campaign=2xx39&tw\_kwdid=pla-29x6&gad\_source=1&gad\_campaignid=2x9&gbraid=0r2L\_RRjI](https://mxxxxx.com/products/kansas?variant=439xxx9579&utm_source=google&utm_medium=organic&utm_campaign=Multifeed%20for%20Spain&utm_content=Kansas&currency=EUR&tw_source=google&tw_adid=71x6&tw_campaign=2xx39&tw_kwdid=pla-29x6&gad_source=1&gad_campaignid=2x9&gbraid=0r2L_RRjI)

There issues are:

-   `utm_source` is set to "organic", which is incorrect for paid campaigns.
    
-   `utm_campaign`is static and doesn’t reflect the actual Google Ads campaign
    

What I want to achieve is:

-   `utm_source` should be "google" or "google\_ads" for paid campaigns.
    
-   `utm_campaign` dynamically reflects the name or ID of the Google Ads campaign.
    

Can you please advise on how to configure the app so that these UTM parameters are generated dynamically and accurately?

**Answer:**

Product URLs in the feed are submitted to GMC and form the base of all Google Shopping links. Google uses them in two different contexts:

1.  **Free listings:** The product URL is used as-is.
    
2.  **Paid ads (Google Ads campaigns):** The product URL can be extended with a **final URL suffix** (custom tracking parameters).
    

By default, the app sets:

-   `utm_medium=organic` (like the official Google & YouTube app) —> Ensures correct attribution for free listings.
    
-   This can cause confusion if you also want to measure paid traffic separately, since Google Ads will use the same base link.
    

**The solution is:**

-   Keep the base product URL as-is (with `utm_medium=organic`) to avoid misreporting free listings as paid.
    
-   In Google Ads, configure a **final URL suffix** to add your tracking parameters dynamically, for example: `utm_medium=cpc&campaign=my_campaign`. This value will be appended automatically by Google to the end of the product URL when creating an advertising link.
    

So you’ll end up with two different attributions, correctly separated:

1.  **Free listing** link:
    

[https://shop.com/products/my-product?utm\_medium=organic&utm\_content=shirt](https://shop.com/products/my-product?utm_medium=organic&utm_content=shirt)

2.  **Google ads advertising** link:
    

[https://shop.com/products/my-product?utm\_medium=organic&utm\_content=shirt&utm\_medium=cpc&campaign=my\_campaign](https://shop.com/products/my-product?utm_medium=organic&utm_content=shirt&utm_medium=cpc&campaign=my_campaign)

Even if two `utm_medium` values appear, the last one takes priority, so Ads clicks will be attributed as cpc, while free listing clicks remain organic.
