Unmasking Your "Google" Traffic: Why product_sync Isn't Google Ads and How to Get Your ROAS Right

Hey fellow store owners! Let's talk about something that trips up a lot of us when we're digging into our Shopify analytics: that mysterious "Google" traffic. Specifically, I want to shine a light on sessions tagged with utm_medium=product_sync and utm_campaign=sag_organic. If you've been seeing these pop up and lumping them in with your Google Ads performance, you're not alone. It's a super common misunderstanding, and frankly, it can seriously mess with your marketing budget and ROAS (Return On Ad Spend) calculations.

I recently saw a fantastic discussion in the Shopify community, kicked off by a savvy expert named Ad-attack, that really broke down this issue. It highlighted how many merchants struggle to differentiate between paid Google Ads clicks and traffic coming from Google's free product listings. And trust me, getting this straight is a game-changer for understanding your true performance.

The Big Reveal: Free Listings, Not Paid Ads

Here’s the core insight that Markk60 and EmmanuelFlossie also emphasized in the thread: when you see utm_medium=product_sync (often paired with utm_campaign=sag_organic or a string of numbers) in your Shopify reports, those aren't clicks from your Google Ads campaigns. Nope! This traffic originates from your free product listings on Google's Shopping tab and regular search results. Think of it as free organic visibility for your products, powered by your Google & YouTube app connection and approved Merchant Center feed.

Paid Google Ads clicks, on the other hand, usually arrive with a gclid parameter (thanks to Google Ads auto-tagging) and typically don't carry those specific UTM tags. EmmanuelFlossie pointed out that UTMs are actually stripped from Google Ads Shopping listings, but they are kept for free listings. This is crucial because it means the tagging is working exactly as intended; it's just our interpretation that sometimes goes awry.

Why This Misunderstanding Hurts Your Business

This mix-up creates two big problems, as Ad-attack perfectly laid out:

  1. Inflated ROAS: If you're looking at all "Google" traffic in Shopify and assuming it's all paid, your ROAS for Google Ads will look much better than it actually is. You'll be attributing free revenue to paid campaigns, potentially leading you to increase budget on ads that aren't truly delivering the numbers you think they are. As alaattincagil noted, for smaller catalogs with modest ad budgets, product_sync can be a significant slice of your "Google" bucket, making this ROAS distortion very real.
  2. "Broken" Tracking Panic: You might see a lot of "Google" orders in Shopify but far fewer conversions reported in Google Ads. This often leads merchants to believe their Google Ads conversion tracking is broken. In most cases, it's not! Many of those "missing" sales simply came from your free listings, which Google Ads was never going to credit because there was no ad click involved.

So, how do we fix this and get a clearer picture? The good news is, it's not a tracking failure or a pixel problem. As Ad-attack reassured us, "The sessions are being collected and tagged correctly, they're just filed somewhere nobody looks. The fix is a label change, not a pixel change."

How to Identify Your Free Listing Traffic

Let's get practical. Here's how you can easily split out your free listing traffic from your paid Google Ads traffic:

In Shopify Analytics:

Markk60 and Ad-attack both recommend checking your Shopify reports:

  1. Go to Analytics > Reports.
  2. Navigate to Sessions by referrer or Sales attributed to marketing.
  3. Break down the report by UTM medium.
  4. Look for anything tagged with product_sync or sag_organic. This is your free listing traffic.

Paid clicks, as we discussed, will typically come in without those specific medium tags (they use gclid for auto-tagging).

In Google Analytics 4 (GA4):

Ad-attack shared a great tip for GA4 users:

  1. Open GA4 Reports > Traffic acquisition.
  2. Set your date range (e.g., last 30 days).
  3. Look closely at the Unassigned row. Why Unassigned? Because product_sync doesn't match GA4's default definitions for "Paid Search" (which looks for cpc, ppc, etc.) or "Organic Search" (which looks for organic). So, free listing sessions often end up in this "mystery bucket."
  4. To confirm this, pull the same 30 days in Shopify and filter sessions to medium product_sync. If those two counts are within a few percent of each other, you've found your free listings in GA4's Unassigned bucket! If Unassigned is much bigger, you might have other UTM issues to chase down.

The Merchant Center Sanity Check

Both Markk60 and alaattincagil brought up a crucial sanity check: your Google Merchant Center. This is where your product feed lives, and it also reports on your free listing performance.

  1. Log into your Google Merchant Center account.
  2. Go to the Performance report.
  3. Make sure you're looking at free listing clicks separately from ad clicks. Ad-attack specifically warned against using the overview, which blends them.
  4. Compare this free listing click count with your product_sync sessions in Shopify or GA4. They won't match exactly – things like consent banners and ad-blockers will always cause some discrepancy – but they should be "in the same range" or "ballpark." If there's a huge difference, it's worth investigating further, as alaattincagil mentioned, to ensure your ad clicks aren't being mis-tagged.

Beyond Sessions: Getting Your True Paid ROAS

While identifying sessions is great, Markk60 rightly pointed out that the real ROAS mix-up happens on the revenue side. To get a truly accurate "true paid ROAS," you need attribution at the order level. Shopify's built-in reports are fantastic, but for deep-dive revenue attribution by specific UTMs, you might need a little extra help.

Markk60 suggested tools like Mipler, which can provide UTM source, medium, and campaign as dimensions on orders. This allows you to build custom reports of net sales by UTM medium, filter specifically for google, and then compare that side-by-side with what Google Ads reports as conversion value. This way, you're not letting free listing revenue inflate your paid numbers, giving you a much cleaner and more actionable ROAS.

Ad-attack also posed a great question in the thread: "Has anyone here built a custom channel group for product_sync, and did you route it into Organic Shopping or give it a row of its own?" While no one jumped in with a direct "how-to," it's an excellent idea for advanced GA4 users to consider. Creating a custom channel group to correctly classify product_sync traffic (perhaps as "Organic Shopping Listings" or similar) would certainly help clarify your GA4 reporting and prevent those free sessions from landing in "Unassigned."

Ultimately, free listings are a fantastic, no-cost way to get your products in front of potential customers. Don't turn them off! The key is simply to count them separately from your paid efforts. By understanding these nuances and using the diagnostic steps above, you'll gain much clearer insights into your marketing performance, make better budget decisions, and truly optimize your online store's growth. It's all about clarity and knowing exactly where your traffic and revenue are coming from.

Share:

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases