How Orders Are Sorted Into Channels and Matched to Campaigns

Updated October 6, 2026

Before an order can be credited to a campaign, Profitario needs to know where the customer came from. This article explains where that information comes from, how each visit is sorted into a channel, and how an ad click is matched to one of your campaigns and ads.

Where
The rows of Marketing Attribution, and the Attribution tab of every order (Orders, then click an order).
Who
Anyone checking why an order sits in a channel, or why a campaign has fewer orders than expected.
Updates
A new order is sorted within minutes. After each sync of your ad accounts, unmatched orders are tried again.

Where the Visits Come From#

Each visit Profitario knows about is called a touchpoint. There are three sources:

SourceWhat it isWhat it carries
Order landing pageThe page of your store the customer arrived on in the visit they bought inThe complete link: UTM parameters, ad ID tags and click IDs. Every online order has one
Shopify customer journeyThe customer's first visit to your store, as Shopify records itThe UTM parameters only. Shopify removes ad IDs and click IDs, so it reaches campaign level at best
Profitario pixelEvery visit in the 30 days before the purchase, recorded with the pixel onThe complete link of every visit. See What the Pixel Changes in Your Reports

When the pixel recorded a visit, it is preferred over Shopify's version of the same journey. Open an order's Attribution tab to see all its touchpoints in time order, with First touch and Last touch marked.

How a Visit Gets Its Channel#

Profitario reads each visit's link and the site it came from, and applies these rules in order. The first rule that fits decides.

OrderRuleChannel
1Placed in your point of salePoint of sale
2A draft order created in the Shopify adminDraft orders
3The link has an ad click ID (such as fbclid, gclid, ttclid, msclkid), a paid utm_medium, or Google's gad_sourcePaid ads
4A Google free product listing (the link has srsltid)Organic search
5An email or SMS tool: Klaviyo, Mailchimp, Omnisend or Shopify Email parameters, utm_medium=email, or an email utm_sourceEmail
6From a search engine, with no tracking parameters at allOrganic search
7An ad platform can be recognised: from the referring site (facebook.com, instagram.com, tiktok.com, ...), utm_source, or an ad or campaign ID tagPaid ads
8No referring site and no utm_source or utm_mediumDirect
9Any other referring site, or a utm_source Profitario does not knowReferral

The values Profitario recognises are listed in Tag your ad links.

Example. A customer clicks a Klaviyo email whose link carries utm_source=klaviyo&utm_medium=email. Rule 3 does not fit (no click ID, no paid medium), rule 5 does: the visit is Email. Had the same link carried utm_medium=cpc, rule 3 would have made it Paid ads.

How an Ad Click Is Matched to a Campaign#

A paid visit is matched against the campaigns and ads of your connected ad accounts. Profitario tries the most precise signals first and stops at the first that matches:

OrderSignal on the linkMatchesShown as
1An ad ID tag, such as pf_adid with the ad's IDThe ad and its campaignMatched by ad ID
2utm_id holding an ad's IDThe ad and its campaignMatched by utm_id
3utm_content holding the ad's exact nameThe ad and its campaignMatched by ad name
4utm_id holding the campaign's IDThe campaignMatched by utm_id
5A campaign ID the ad platform adds by itself, such as Google's gad_campaignidThe campaignMatched by campaign ID
6utm_campaign holding the campaign's exact nameThe campaignMatched by campaign name
7utm_campaign holding the campaign's IDThe campaignMatched by campaign ID in utm_campaign

The match method of each order is in its Attribution tab, under Matched campaign.

IDs beat names. An ID never changes. A name stops matching when you rename the campaign or the ad, or when it differs by a single space. When an ad name points to one campaign and an ID on the same link points to another, the ID wins.

Names need the platform. A name only matches within the platform the visit came from, so a Meta campaign and a Google campaign with the same name are never confused. Profitario learns the platform from utm_source, the referring site or the click ID.

Google Performance Max. Google tags Performance Max clicks with a campaign ID that can differ from the campaign's own ID. Profitario learns these extra IDs when it syncs your Google Ads account and matches them like the real one.

Nothing matched. The order stays in Paid ads, under No campaign match of its platform. Usually the ad account is not connected, or the campaign was renamed or deleted before the last sync. After each sync of your ad accounts, these orders are tried again, so connecting a missing account fixes recent orders without anything else to do.

Which Visit Counts#

The visits decide the channel, the model decides which visit is credited. With Last click, the order is credited to its last matched ad click. When there is none, the order goes to the channel of its last visit, and to Not attributed when no visit falls inside the click window. Each model is explained in Attribution Models and Click Windows.

Broken UTMs. When a link arrives with a placeholder the ad platform never filled in (for example utm_campaign={{campaign.name}}), that value cannot be read. When such a visit is the one credited, the order goes to Broken UTMs. The fix is in the troubleshooting guide.

Limits#

  • Visits are connected to an order through the browser that bought. A click on the phone followed by a purchase on the laptop is two separate journeys.
  • Shopify shortens very long landing links (over 255 characters) and drops what comes after. Parameters at the end of a long link can be lost. The pixel records the full link.
  • Orders from Shopify's first-visit data are matched to campaigns only, never to single ads.
  • Orders placed before the ad account was connected are matched once the account has synced its campaigns.

Common questions

Related articles

Was this article helpful?

We value your privacy
We use cookies to enhance your experience. By continuing to use our site, you consent to our use of cookies.

By clicking "Accept All", you consent to our use of cookies.

Learn more