Docs · 06 of 07

The health panel

Without this panel the tool reports confidently wrong CPAs, which is worse than no tool. It reports in both directions: money with no traffic behind it, and paid traffic with no money behind it.

Timezone mismatch

Reporting timezone is Europe/London, but one ad account reports on a different day boundary (America/Los_Angeles, 8 hours behind). Spend and sessions on the same row are being counted from different days, so CPA is wrong by however much daily spend varies.

Tagging healthLast 30 days

Click IDs are stripped at ingest and never stored, so tagging is load-bearing: an untagged campaign lands as direct traffic with unmatched spend.

Some spend is missing its pair.

Usually a tagging gap. $412.80 (2.6% of total spend) has no mapped UTM triple. Here is where.

  • Performance Max - Q3 Test (Google Ads · 284-991-0043)$268.40
  • Advantage+ Catalogue (Meta · act_1099238471)$144.40

Unmatched paid sessions

414 paid-looking sessions have no spend mapped to them. Usually a mapping gap, or a typo in a tagging template.

  • facebook / paid_social / summer-promo318
  • google / cpc / (not set)96

Unclassified traffic

Source and medium combinations matching no channel rule. Almost always a typo, and invisible everywhere else.

  • newsletter / e-mail611
  • facebook / Paid_Social204

Figures shown are illustrative.

Unmatched spend

Spend with no mapped UTM triple behind it. The money left the account and nothing in your session data can be credited with it, so it is excluded from every CPA in the table rather than being quietly spread across the rows that did match.

Usual causes, in the order they are usually true:

  • A new campaign. It launched, it has not been mapped yet, and Propose mappings will pick it up if it is tagged.
  • Untagged ads. The campaign is spending and its clicks are landing as direct. This is the expensive one.
  • A tagging template that is not inherited. Common on Meta, where URL parameters live at ad level and a duplicated ad set can arrive without them.
  • A landing page that strips query strings. The ads are tagged, the redirect eats the parameters, and nothing arrives.

The figure is shown in coral, as text rather than as a filled alert. A red panel reads as an outage; a coral number reads as a figure that needs attention, which is what this is.

Unmatched paid sessions

Paid-looking traffic with no spend behind it. Sessions arriving with a paid medium, or with a click ID parameter present, that no mapping connects to a campaign.

  • A mapping gap. The campaign exists on the platform but has not been mapped to the triple the sessions are arriving under.
  • A typo in a tagging template. One character out and the triple no longer matches anything.
  • An ad account that is not connected. The traffic is real and the spend is in an account nobody added.
  • Traffic from a platform that is not supported yet. Microsoft Ads and LinkedIn clicks will land here until those connectors exist.

Unclassified traffic

Source and medium combinations matching no channel rule. Almost always a typo, and invisible everywhere else in the product: an unclassified session still counts in totals, it just is not filed anywhere you would look for it.

This is where ppc, Paid, social-paid and cpc-1 surface. Fix the template rather than adding a channel rule for each variant, or you will be maintaining a list of your own typos forever.

Reading it

A healthy panel is not an empty one. A few percent of unmatched spend on the day a campaign launches is normal, and so is a small tail of unclassified traffic from an affiliate or a newsletter somebody tagged by hand once.

What is worth acting on:

  • Unmatched spend that is more than a rounding error and does not shrink the next day.
  • Unmatched spend that appears on a campaign that was matching yesterday. Something changed.
  • Any unclassified paid medium. That is a template, and templates apply to everything.

Fixing it

  1. Fix the tagging first, at the template level. See UTM tagging.
  2. Run Propose mappings. It creates rows only where exactly one observed triple matches a campaign, so it will not guess.
  3. Map the rest by hand. A manual mapping is never overwritten by a later sync.
  4. Wait a day. The next sync re-pulls a trailing seven-day window, so yesterday’s spend is restated against the mapping you just created rather than being stuck as it was first written.

That last point is worth holding on to: fixing a mapping repairs the recent past, not just the future. It does not reach back further than the trailing window, so a mapping gap left for a month leaves a month of unmatched spend behind it.