The attribution Health tab
What each number on the attribution Health tab and the ad-platform health cards means, what good looks like, and what to do when something turns red.
What it is
The Health tab is the first tab on the Order attribution page. It answers: "Are my orders still arriving with their ad source?" Further health signals sit on the Ad platforms tab: a health line under each connected ad account, the counters of Server conversions, Pixel on your shop, and Ads health in the Ads Growth Agent section.
Why it matters: tracking breaks quietly. A theme update removes the consent banner, someone installs a second pixel plugin, a password change expires the ad account sign-in. Nothing errors on your shop, but the report slowly fills with orders marked direct, and the ad platforms learn from wrong numbers. Checking health once a day catches this within a day, not at month end.
Note Example: a shop's capture rate is normally around 60%. On Tuesday it shows 21%. The Last order with a source line says Saturday. A plugin update on Saturday removed the consent banner, so nobody could say yes. The owner reinstalls the banner on Tuesday and loses three days of data instead of a month.
Who it is for
- Shop owners who check their ads every day
- Marketing staff and agencies running the ad accounts
- Whoever set up the plugin and the store connection
Before you start#
- You need access to Integrations. Buttons such as Check now need the Edit right.
- The plugin must be installed and the store connected. See Set up order attribution.
Step by step#
- Open Integrations › CFI Order Attribution. The Health tab opens first.
- Read the three tiles: Sales orders, last 30 days, With an ad / campaign source and Capture rate.
- Read Where orders came from (30 days) and, with two or more stores, Captures by store (30 days).
- Read The plugin card: the last order with a source, and the stores.
- If a Cost per order jumped card shows, open the ROAS report for that platform and day.
- Open the Ad platforms tab. Under each connected account, read the health line (Last run …).
- Under Server conversions, read Last 7 days: … sent, … failed, … skipped for each platform you switched on, and open Recent conversions if anything failed.
- Under Pixel on your shop, choose Check now if the last check is old.
- Under Ads Growth Agent, read Ads health and fix the highest findings first.
What you see#
The Health tab
| Item | What it means | What good looks like |
|---|---|---|
| Sales orders, last 30 days | Every sales order of the business in the last 30 days | Rises and falls with your sales |
| With an ad / campaign source | Orders that arrived with a click id or campaign tags | Most of your web-store orders from ads and campaigns |
| Capture rate — of orders carry their source | The second tile divided by the first | Steady from week to week. A sudden drop is the alarm |
| "… orders carried only a consent decision or browser ids — not counted as captured." | Orders with no click and no tag, only a consent choice | Normal; these are direct or untagged visits |
| Where orders came from (30 days) | Captured orders per platform (google, facebook, tiktok … or direct) | Matches where you spend |
| Captures by store (30 days) | Captured orders per shop, only with two or more shops | Every shop present |
| Last order with a source | Time, platform and campaign of the newest captured order, and the plugin version that captured it | Within hours on a normal sales day |
| Current plugin version | The newest plugin version available from the app | Compare it with the version in Last order with a source |
| Cost per order jumped | A platform's cost per order on a day was more than 2 standard deviations above the previous days | Absent, or explained (a new campaign, a holiday) |
Note Read the capture rate with care. The first tile counts every sales order of the business, including orders typed in by staff or sold at a counter. A shop with many counter sales has a lower rate even when tracking works. Watch the trend, not the absolute figure. An update that counts only store orders is coming.
Note Current plugin version is the version the app offers, not necessarily what your shop runs. The version your shop runs is the one shown in brackets after Last order with a source (for example "plugin 2.4.0").
The ad account health line (Ad platforms tab)
| Line | Meaning | What to do |
|---|---|---|
| Last run … · day rows, campaigns | Last night's spend import worked | Nothing |
| paused (rate limit) — resumes tonight | The platform asked the app to slow down | Nothing; it continues the next night |
| failed with the platform's message | The import failed | Read the message; reconnect if it is about the sign-in |
| No run yet — the first sync runs tonight. | Connected today | Wait one night |
| History: back to a date | 13 months of history are imported | Nothing |
| History: stopped at a date — continues tonight | The history import is still going, newest first | Wait a few nights |
| … of … pulls failed this week | Repeated failures | Check the message and the sign-in |
| (Sign-in expired — connect it again) | The platform refused the saved sign-in | Choose Connect again with the same account |
Spend imports run every night. Each run imports the last 30 days again, because platforms correct spend for weeks.
Server conversions counters
For each platform you switched on: Last 7 days: {sent} sent, {failed} failed, {skipped} skipped, and a list in Recent conversions:
- Sent: the platform accepted it.
- Waiting, with {n} tries so far: it will be retried with growing gaps.
- Failed, with the platform's message.
- Skipped, with a reason, for example Skipped: no marketing consent, Skipped: older than the platform accepts, No ad click or customer contact on the order, Nothing was paid, Cancelled before it was sent, Kept for the exclusion audience (this platform has no negative event).
Many skips are correct. A buyer who refused cookies is never sent. See Cash-on-delivery conversions.
Pixel on your shop
Read once a day from the plugin, or with Check now. You see who loads the pixel, other pixel plugins found, browser events and server copies sent or failed in the last 7 days, and Last checked with a time.
Ads health findings
| Finding | Meaning |
|---|---|
| The sign-in to the ad account expired, or expires on a date | Reconnect before the date |
| Meta matches few buyers for an event: Event Match Quality below 6 out of 10 | Meta can't link enough events to people; more contact details or browser ids help |
| Meta can't de-duplicate an event: under 90% of server events carry the event id | Browser and server copies may be counted twice |
| Meta receives an event from the server for only part of the browser events | Server conversions are off or failing for that event |
| More than 10% of events reach Meta more than 24 hours late | The conversions job is delayed |
| Purchase reaches Meta from two places | Another plugin sends a browser Purchase; switch it off |
Daily use#
A cash-on-delivery shop in Bangladesh
Each morning: the Health tab (is Last order with a source from today?), then the Meta and TikTok account lines (did last night's import run?), then Server conversions (are Purchases being sent as parcels settle?). It takes two minutes.
An EU store with cookie consent
Expect a lower capture rate than a shop outside the EU, because many shoppers say no. That is fine. What matters is that it stays steady. If it drops to near zero, check the consent banner first.
A multi-location retailer with two web shops
Check Captures by store (30 days). If one shop's count drops to zero while the other carries on, the problem is on that shop: plugin deactivated, banner removed or store connection broken.
Good practice#
- Check daily, act on changes. A steady low rate is a fact about your customers; a sudden drop is a fault.
- Fix sign-in problems first. While a sign-in is expired, spend stops being imported.
- Keep the shop's plugin version close to Current plugin version.
- After any change to the shop's theme, banner or plugins, place one test order from a tagged link.
Troubleshooting#
| What you see | Why | What to do |
|---|---|---|
| Capture rate drops suddenly | Banner removed, plugin off, capture switched off, or a theme change | Place a test order; check the plugin and the banner |
| No order has arrived with an ad source yet. | Nothing captured so far | See Set up order attribution |
| All captures show "direct" | The ads carry no tags and no click ids arrive | Paste the UTM templates; keep Google auto-tagging on |
| Store not known (plugin before 2.0) | Orders captured by an old plugin | Update the plugin |
| The shop refused the connection key. | The store connection's key was changed | Reconnect the store |
| The shop could not be reached. | Shop offline or blocking the app | Check the shop is up and not blocking the app |
| The store plugin is older than 2.3.0 — update it. | Old plugin on the shop | Update it from the WordPress Plugins screen |
| Many Failed conversions with a sign-in message | The token was revoked or expired | Paste a new token or reconnect; see the limits below |
| Server conversions need a database update first. Nothing is sent until it is applied. | Your business is waiting for an update | Nothing to do on your side; ask support if it stays |
Limits and what is not there yet#
- The capture rate counts every sales order, not only web orders, and Current plugin version is the version the app offers, not your shop's.
- Health is spread over two tabs today. A single health centre is planned, with one status per platform, delivery speed, match quality, versions, sign-ins and a test button.
- Today, if a platform refuses the token, waiting conversions are retried a few times and can then fail for good. After the 2026-11 update, a refused token pauses that platform and keeps its events waiting until you reconnect, instead of losing them.
- The Cost per order jumped card is a simple statistical check over the previous days. Treat it as a hint.
Questions#
What is a good capture rate?
There is no single number. It depends on how many of your orders come from the web store, how many shoppers accept cookies and how many visits come from tagged ads. Watch for change over time.
Why does the plugin's own Diagnostics show a different rate?
The plugin counts orders on the shop itself. The app counts every sales order of the business, including other channels.
How often is the Health tab updated?
Every time you open it. Spend lines change once a night; pixel health once a day or on Check now; conversions every 10 minutes.
Who gets told when something breaks?
When an ad platform refuses the saved sign-in, the business gets a notification and it shows in the dashboard's Needs your attention list.
