Fundusze Europejskie Województwo Łódzkie Unia Europejska
Acquisition

Every dashboard you own disagrees about yesterday

Ad platforms report what they can see. Loyalz starts from settled orders, ranks creative on store revenue, and shows the path a customer actually took to get there.

An acquisition strategy is only as good as the number it is judged on, and that number is usually reported by the party being judged. Attribution modelling is the choice of how credit for a sale is divided between the touchpoints that preceded it. Loyalz does not settle that argument — it shows where the models disagree, and gives you one reference they cannot mark their own homework against: what your store actually took.

01the disagreement

Three sources, one day, three numbers

Illustrative figures
Meta Ads Manager
47
purchases attributed
GA4
39
purchases recorded
Your store
31
orders settled
+52%

Meta claims half again as many purchases as the store settled. Nobody is lying — each counts a different thing, over a different window, with a different view of the customer.

The shape is real and routine; the numbers are a worked example. Most tools resolve this by picking a winner and hiding the disagreement. The size of the gap is information — it tells you how much of your reporting is modelled rather than observed.

GA4's own on-site engagement and revenue sit in the same row as each ad's Meta spend, matched on the ad id.

What it needs
  • a paid plan
  • Meta ad URLs tagged utm_content={{ad.id}}, set by hand in Ads Manager
  • Meta only — no equivalent macro is documented for TikTok

Ads whose utm_content does not match the ad id exactly show zero, which looks the same as an ad that genuinely had no traffic.

02attribution

Change the model, change the answer

Worked example
Purchases claimed, one month store settled 31
Last click 47
Linear 43
Time decay 41
Position-based 39
Your store 31
claimed above what the store settled

Worked example. Every model claims more than the store recorded, because every model is generous in its own direction. The store's number is not a fifth model — it is the constraint the other four have to fit inside.

Ad measurement for e-commerce The ROAS below which you are losing money
03the path

What a customer actually did before buying

Illustrative path
DAY 1 PAID Meta ad utm_content=
120214…
DAY 3 ORGANIC Search visit no markers,
not discarded
DAY 6 REFERRAL Comparison blog referrer
recorded
DAY 9 PAID Google Ads gclid
captured
DAY 11 DIRECT Typed the URL the visit most
reports drop
DAY 12 ORDER £248 settled chain handed
to the order

Recorded first-party on your own site, not in someone else's browser storage. Visits with no campaign markers are classified as direct, organic or referral rather than discarded — which is why most channel reports add up to less traffic than you had.

The plugin records each visitor's marketing touchpoints in a first-party cookie — utm parameters, the gclid / fbclid / ttclid / msclkid click identifiers, referrer and landing page — and hands the chain to the order at checkout.

What it needs
  • WooCommerce with a current Loyalz plugin
  • a consent source wired up: CookieYes by default, or a cookie you name in plugin settings
  • per-ad reporting additionally needs utm_content={{ad.id}}

Twenty most recent entries, kept since the last purchase and expiring after ninety days of inactivity — not ninety days of history. Visits with no campaign markers are classified as direct, organic or referral rather than discarded.

04creative

The same five ads, ranked three ways

Illustrative figures
BY PLATFORM ROAS what Meta says
Demo video Demo video 6.4× platform-reported
UGC hook, 15s5.1× Static, offer-led4.2× Testimonial3.6× Carousel2.2×
BY STORE REVENUE what you took
UGC hook UGC hook, 15s 6.2× POAS 2.4×
Demo video3.4× Testimonial2.9× Static, offer-led2.1× Carousel1.4×
BY NEW CUSTOMERS first orders only
UGC hook UGC hook, 15s 31 new customers
Demo video18 Carousel14 Testimonial9 Static, offer-led6
TOP OF EACH RANKING Demo video UGC hook UGC hook
05creative

What the winner had in common

Illustrative creative
Winning creative WINNER
Video · 15sAnalysed
6.2× store revenue
POAS 2.4×
ON SCREEN TODAY 5 of 8
HookProblem stated in the first second
OfferNone — credibility play
CTASoft, learn-more
ToneCandid, first person
AudienceOperators, not marketers
RECORDED, NOT ON SCREEN YET 3
Visual style Claims Emotions

Knowing an ad worked is not enough to brief the next one. Eight fields are recorded; the panel currently surfaces the hook, and we would rather show you that than imply the whole set is on screen today.

Claude reads each creative's copy and preview image once and records what the ad actually says — hook, offer, CTA, tone, visual style, audience, claims and emotions.

What it needs
  • Meta and Google ads (TikTok, LinkedIn and Allegro creatives are not analysed)
  • a managed weekly pass over the ads our ranking flags best and worst, not the whole library

One analysis covers every ad running that copy. The dashboard shows the hook next to an analysed ad's numbers.

06cost

What a customer costs, honestly

Worked example. Blended CAC divides all ad spend by all new customers, including the 240 who arrived without costing anything. That understates what paid acquisition really costs — the product labels the tile accordingly rather than quietly flattering the number.

Mission Control shows how many identified customers in a period were placing their first order in the history Loyalz has synced, and divides that period's ad spend by that count.

What it needs
  • Insights switched on for the merchant
  • order history actually backfilled — the nightly job defaults to a few days, so a short backfill reads returning customers as new

One blended cost per new customer for the whole store. Not per channel, not per campaign. Customers who arrived organically are in the denominator too, so the figure understates paid acquisition cost wherever unpaid acquisition happens.

What a customer costs you CAC payback period POAS versus ROAS
Worked example
550 NEW CUSTOMERS, ONE MONTH
paid acquisition310 arrived without costing anything240
BLENDED · WHAT THE TILE SAYS £48,210 ÷ 550 £87.65
PAID ONLY · WHAT IT REALLY COSTS £48,210 ÷ 310 £155.52
The gap is 77%. The product does not have the paid-only figure today — which is exactly why the tile is labelled blended.
07dashboards

Ad spend and store revenue on one screen

Illustrative dashboard
Acquisition · last 30 days
Ad spend
£48,210
+6.2%
Store revenue
£214,900
+11.4%
Blended ROAS
4.46
+0.21
Cost per new customer
£87.65
−£4.10
BLENDED
Orders
1,842
Contribution margin
£71,300
+8.8%
New customers
550
+3.1%

Illustrative layout. Every product in this category lets you build a dashboard — the question is what there is to put on it. Ad spend and settled order lines are rows in the same table, so a widget can hold both without an export step.

One query returns ad spend across every connected platform next to store or CRM revenue for the same period.

What it needs
  • channels synced
  • account level, by day, week or month

Not per campaign and not per ad: store and CRM rows carry no campaign dimension, so a cross-source formula collapses to zero if you ask for one. The product warns you when it does.

08agents

Ask it instead of building it

Illustrative exchange
You

Which creative format brought us customers who came back, and what did those customers cost?

Agent, via your MCP client
query_metrics list_metric_catalog get_purchase_history
UGC VIDEO
212new customers at £71
41% ordered again within 90 days
STATIC OFFER
318new customers at £54
19% ordered again within 90 days

Over the last quarter, UGC video brought 212 new customers at £71 each. Static offer ads brought 318 at £54.

But 41% of the UGC cohort ordered again within 90 days, against 19% of the static cohort. On trailing revenue per customer the cheaper channel is the more expensive one.

Want me to build a dashboard tracking both cohorts?

Illustrative exchange. Every competing MCP in this category reaches the ad platforms. Ours reaches ad spend and what the customer that spend acquired went on to be worth, because both live in one table. The assistant inside the panel is read-only; authoring happens over the MCP server with a token you mint.

09limits

What this does not do

Seven competing products were read while this page was written. Not one publishes a confidence interval, a match rate, a minimum volume, or a single condition under which their method fails.

100 VISITORS WHO BOUGHT illustrative
joined to an ad62 modelled, not observed17 not recoverable by anyone21
Consent refusals and cross-device paths sit in the hatched slice. No method recovers them — ours included.
HARD FLOOR
Consent is a hard floor
Conversions from visitors who refused consent are not recoverable. Nothing legitimately recovers them.
HARD FLOOR
Cross-device is unresolved
A phone visit and a desktop purchase are two visitors to any cookie-based method, including this one.
SMALLER CLAIM
It does not fix attribution
It makes the disagreement visible and gives you the store as the reference. That is a smaller claim than the category makes.
SMALLER CLAIM
New-customer cost is blended
There is no per-channel new-customer figure in the product today. We would rather say that than imply one.
YOUR SETUP
Per-ad joining needs your tagging
Untagged ads report zero rather than an error, which looks the same as an ad nobody clicked.
YOUR SETUP
Twenty touchpoints, ninety days
Kept since the last purchase, expiring after ninety days of inactivity. Limits, not guarantees.

Bring one ad account and one month of orders

Twenty minutes, live, on your data. We compute the gap between what your platforms claim and what your store took, while you watch.

Book the twenty minutes