What is an attribution model?
An attribution model is the rule that shares out the credit for a conversion among the ads, clicks and channels that came before it. A shopper might click a Meta ad on Monday, click a Google ad on Thursday and buy on Saturday after typing your address. The model decides who gets that order.
Two settings travel with every model. The lookback window, also called the attribution window or conversion window, is how long before the purchase an interaction can be and still get credit. The interactions that count can be clicks only, or ad views as well. Change either one and the totals change, even when nothing else did.
Rule-based models apply the same fixed rule to every journey. Data-driven models learn from your data how much credit each kind of interaction should get. Both kinds assign credit; neither proves that an ad caused a sale.
One order, credited eight ways
Illustrative journey, not a customer result: a shopper clicks a Meta ad on day 1, clicks a Google Search ad on day 4, and on day 6 comes back by typing your address and places a $150 order. The table shows how much of that order each model gives to each touch.
A few rows need a word. The rule-based rows count the direct visit as a touch, as Shopify's last click and linear models do; last non-direct click skips it. Google Ads' data-driven model sees only Google Ads interactions, so it has nothing to share with the Meta click. WeProfit gives the order to the most recent ad click of the previous 30 days, the Google click, because the direct visit carried no ad click of its own. Meanwhile Meta's own report can count the same order too, since the purchase came 5 days after the Meta click, inside a 7-day click window: one order, two platform conversions.
| Model | Meta ad click, day 1 | Google ad click, day 4 | Direct visit, day 6 |
|---|---|---|---|
| Last click | $0 | $0 | $150 |
| Last non-direct click | $0 | $150 | $0 |
| First click | $150 | $0 | $0 |
| Linear | $50 | $50 | $50 |
| Time decay (credit halves every 7 days) | $37 | $51 | $62 |
| Position-based (40/20/40) | $60 | $30 | $60 |
| Data-driven in Google Ads | Not seen by Google Ads | Credited in Google Ads | Not an ad interaction |
| WeProfit | $0 | $150 | $0 |
Last click, first click, linear, time decay and position-based
Rule-based models give credit by position or by time, the same way for every order:
- Last click, also called last touch: all the credit goes to the last interaction before the purchase. Shopify's last click model counts direct visits; Shopify's default, last non-direct click, skips them and credits the channel before them. In Google Ads, last click credits the last clicked Google ad. It is simple to check and favors whatever closed the sale.
- First click, also called first touch: all the credit goes to the first click in the journey. It favors the ads that bring new shoppers in and ignores everything that came after.
- Linear: every touch in the journey gets an equal share. It treats every touch the same, whether it mattered or not.
- Time decay: touches closer to the purchase get more credit than older ones, for example with credit halving every 7 days. It suits short buying cycles and gives little to the ad that started the journey.
- Position-based, also called U-shaped: most of the credit goes to the first and last touches, often 40% each, and the touches in between share the rest.
Data-driven attribution in Google Ads and Google Analytics 4
Google removed first click, linear, time decay and position-based from Google Ads and Google Analytics 4 in 2023, and moved the Google Ads conversion actions that still used them to data-driven attribution. Google Ads now offers two models: data-driven and last click. Shopify's marketing reports still let you switch between several rule-based models.
Data-driven attribution shares the credit using your own data instead of a fixed rule. In Google Ads it compares the paths of people who converted with the paths of people who did not, and gives more credit to the interactions that appear to make a difference. It is the default for most conversion actions. Every conversion action is eligible whatever its volume, and Google recommends at least 200 conversions and 2,000 ad interactions in 30 days for more accurate results.
It only sees Google. Google Ads' data-driven model looks at interactions with your Search (including Shopping), YouTube, Display and Demand Gen ads, so a click on a Meta ad gets no share of the credit, however much it helped.
Google Analytics 4 offers three models: data-driven, paid and organic last click, and Google paid channels last click, which credits the last Google Ads click and falls back to paid and organic last click when there was none. Its models give direct visits credit only when the whole path was direct. The lookback window is 90 days by default for most key events, with 30 or 60 days as options, and 30 days for first visits and first opens, with 7 days as the option.
Attribution settings in Google Ads, Meta and Shopify
Each tool counts its own way. Meta and Google Ads each credit purchases to their own ads, and neither sees the other's clicks, so both can claim an order that Shopify and WeProfit give to one channel. Adding the platforms' conversions together can count the same order more than once. This is how the main tools credit a purchase, according to their own documentation:
| Tool | Model | Window and interactions |
|---|---|---|
| Google Ads | Data-driven by default for most conversion actions, or last click | A conversion window per conversion action: 30 days after a click by default, and up to 90 days depending on the conversion source. View-through conversions use a 1-day window by default and stay out of the Conversions column. |
| Google Analytics 4 | Data-driven, paid and organic last click, or Google paid channels last click | 90 days by default for most key events. Direct visits get credit only when the whole path was direct. |
| Meta (Facebook and Instagram ads) | Credits its own ads under each ad set's attribution setting | Click-through: 1 or 7 days after a link click. View-through: 1 day after an ad impression. Engage-through: 1 day after another click on the ad, such as a like or a share, or a 5-second video view. |
| Shopify marketing reports | Last non-direct click by default; also last click, first click, linear and any click | Any click gives full credit to every channel a customer clicked, so its totals can exceed your orders. |
| WeProfit | Like last click with a 30-day ad-click lookback; one channel and at most one campaign per order | Ad clicks count for 30 days, the same window for every network. No ad views: channels come from click IDs, UTM tags, landing URLs and referrers. |
How WeProfit credits an order: like last click with a 30-day ad-click lookback
WeProfit attribution works like last click with a 30-day ad-click lookback. An ad click counts for 30 days, the same window for every network, and the most recent ad click wins: a Google click in May beats a Meta click in April. A later visit without an ad click, such as a direct visit, inherits the most recent ad click of the previous 30 days.
Each visit gets one channel, checked in this order: the ad click that started the visit, then an ad click from the last 30 days that the shopper's browser remembers, then UTM tags, then the referrer. A tagged utm_source that matches no rule counts as Referral, and a visit with no signal counts as Direct. A paid UTM, such as utm_medium=cpc with a network's name as the source, counts as an ad click. A visit ends after 30 minutes without activity, and a new ad click or a new utm_source starts a new one.
An order then takes the channel of the visit it is linked to, and at most one campaign. An order without a linked visit is classified from its own landing URL with the same rules, and an order with no signal at all counts as Direct, so Direct in WeProfit's channel reports also holds untracked orders. A few rules handle the edge cases:
- A visit from a tagged email or SMS send, without an ad click ID, a WeProfit template or a paid medium, takes earlier ad clicks out of scope: the send gets the credit, as Email, or as Referral for an SMS tool.
- A Facebook link that carries an fbclid but is tagged utm_medium=organic, without a Meta campaign ID or the WeProfit template, counts as Facebook / Instagram, not Meta Ads.
- Returns from payment pages, 3-D Secure checks and Shopify checkout hosts never count as a traffic source, and a plain referrer never removes an earlier ad click.
- There is no view-through credit, because WeProfit has no ad-view data, and no credit is split: each order counts once.
- There is no selectable model. If your team needs to switch between multi-touch credit models, know that before you start a trial.
Order matching evidence is not a model
Before any credit rule applies, WeProfit has to connect the order to a visit. Each order shows how that link was made and how strong the evidence is, for example Linked via cart attribute (exact confidence). The first method that matches decides, and a link is only ever upgraded: later data can replace an Untracked, Landing URL or Email match link with a stronger one, while Cart attribute and Checkout token links are kept.
The labels describe evidence, not how much an ad caused the sale. An exact link can still lack a campaign, because the campaign comes from the click IDs and URL parameters of the visit, which is where UTM parameters and the WeProfit URL templates come in.
| Method in the dashboard | Confidence | Evidence |
|---|---|---|
| Cart attribute | Exact | The order's cart attributes carry WeProfit's visitor or session ID. |
| Checkout token | Strong | An identified WeProfit event shares the order's checkout token. |
| Email match | Strong | The order's hashed email matches a visitor seen in the 90 days before the order. |
| Landing URL | Inferred | The landing URL Shopify recorded for the order carries UTM tags or ad click IDs; no visit is linked. |
| Untracked | None | No evidence links the order to a visit. |
Using attribution models without fooling yourself
A model is a lens, not a verdict. A few habits keep it useful:
- Use your store's orders as the count of what happened, and treat each platform's conversions as that platform's view of its own ads.
- Compare models before you move budget. A channel that only looks good under first click is more likely introducing shoppers than closing sales, and the reverse holds for a channel that only shines under last click.
- Check the window and the interactions. A setting with a 1-day view window credits ads that were seen, not clicked.
- Judge spend by profit as well as credited revenue. POAS and break-even ROAS per channel and campaign show whether those orders cover their ad cost.
- Remember the limit. Every model assigns credit; none of them proves that an ad caused a sale.