MIQAS
By Ensign
2026-08-12 · 5 min read

Your Shopify dashboard and your ad accounts will never agree

Short answer:Shopify records which page a customer’s session started from, in a field called the landing site. When that customer arrived from an ad, the field carries the click ID that proves it, fbclid, ttclid, or the rest, folded into the URL as a query string. The problem is that Shopify often hands that URL over as a relative path, not a full one, and a connector that expects a full URL silently drops everything after the slash, click ID included. The order still gets recorded. It just gets recorded as if nobody sent it.

How it shows up

A Shopify store owner posted the exact symptom on Reddit in April 2025, without knowing the cause:

“I ran a Meta campaign recently. Meta says performance has been consistent, and purchases look solid on their end. But when I check Shopify, both total store sales and marketing-attributed revenue are down, and not just slightly. There’s a clear mismatch between what Meta says it delivered and what Shopify is showing me in analytics, especially under the marketing attribution section.”

Two systems, two answers, and neither one is lying. They are reading different signals.

What is actually happening

Shopify’s own admin builds its marketing attribution from the landing site field on each order: the page the buyer’s session began on. If that page was reached through an ad, the URL sitting in that field carries the click ID.

Two things break this in practice, and both are silent.

The URL arrives relative, not absolute. Shopify frequently hands the landing site over as something like /products/wireless-earbuds?fbclid=IwAR2x... rather than a complete link starting with https://store.com/. A parser written to expect a full URL either errors out or, worse, resolves successfully against the wrong base and drops the query string, click ID included.

The field gets ignored entirely.Some integrations only read the order’s line items and totals, because that is what a sale needs to exist. The landing site is optional to the order itself, so it is easy to skip, and skipping it quietly discards the one field that says which channel deserves the credit.

Either way, the order lands in your systems as genuine revenue with no ad attached to it. Shopify’s own report then counts it as direct or organic, because that is the only story the data it kept can tell. The ad platform, meanwhile, is still waiting for a signal that never arrives, so from its side the campaign looks like it drove nothing. Both numbers are internally consistent. They just describe two different, incomplete versions of the same order.

Where MIQAS comes in

This is not a hypothetical. MIQAS found this exact failure in its own Shopify ingest on 6 August 2026, on the pilot workspace used to test every connector before it ships to a paying customer: the landing site field was being read, but not resolved correctly when it arrived as a relative path, so every Shopify purchase looked direct regardless of how well the underlying campaign was labelled.

The fix resolves the landing site (and, if that is missing, the referring site) against the store’s own domain before reading it, so a relative path parses the same as a full one and the click ID survives. That identifier then travels with the order to whichever platform’s format it matches, sent server to server, so an ad blocker on the buyer’s device does not interrupt it.

One limit stated plainly: this closes the gap for the ad-to-Shopify leg. It does not turn the result into multi-touch attribution. MIQAS credits the last channel with a matching click ID before the order, not every touchpoint across the buyer’s journey.

What to check yourself

  • Open a recent order in your Shopify admin and look for a “Landing page” or “Referring site” field on it.
  • If it is blank on an order you know came from a paid click, that thread broke somewhere between the click and the order.
  • Compare that against your ad platform’s own reported conversions for the same week. A gap that grows in proportion to spend, not a fixed gap, points at this mechanism rather than genuinely lower performance.

See it on your own data.

One dashboard that shows which ad drove every order; the live demo needs no card.

Related