Cookiebees

Attribution

Every order credited
to the ad that earned it.

Not a model of what probably happened. The click, the sessions, the purchase and the identifiers that matched, on every order, with over 98% of Shopify orders tied to a real source on live stores.

Questions this answers

  • Which ad earned this order, and how do I know?
  • Why does Meta say 6x when the bank says 2x?
  • How much revenue lands after the platform stops counting?
  • Which orders could not be judged, and why?

The receipt

Open any order. Read the story.

The ad click that started it, every session in between, the moment the email brought them back, the purchase, and a match score with the missing identifier named. Both observations of a sale, the browser’s and the webhook’s, are kept; never one discarded.

  • First touch, every session and the converting click, timestamped
  • Click ids captured and kept past URL-stripping browsers
  • Match quality per order, the missing signal named and priced
  • Every order records which identity rung joined it
Order #4821 · path to purchase

10d 5h first touch → purchase

₹4,860

Viewed product→Added to cart→Checkout→Purchased

Session 1 · Google AdsTRACKED CLICK

landed on a product page

day 1 · 08:03

Session 2 · Direct

came back, added to cart

day 6 · 21:14

Session 3 · EmailCONVERTED

checkout, purchased

day 10 · 13:41
Purchase sent to Meta & Google · order.4821 · deduplicated

Five models

Last click, first touch, linear, all touches. And what the customer said.

Switch models without re-tagging anything. After every order, one question over WhatsApp or email; the answer becomes a credit model of its own beside the computed four. Assists are shown, and the line that explains the gap with Meta’s number is drawn on the chart.

  • Assists and influence, per channel and per campaign
  • Click a campaign row for its day-by-day trend
  • A short window says it measures timing, not performance
  • Customer said as a fifth model, from the post-purchase survey
Measurement · attributionLast 90 days

Revenue

₹0

Attribution coverage

0%

Avg match quality

0/100

Ad platforms 71%Organic & owned 22%Direct 7%
ChannelRevenueOrdersMatch

Google Ads

Paid search

₹8,19,000
24199

Meta Ads

Paid social

₹3,69,000
10398

Email

Owned

₹2,16,000
6587

Organic search

Earned

₹90,000
2680

Direct

Unknown

₹1,08,000
3479
Last click shown. Switch to first touch, linear or all touches without re-tagging anything.

Coverage you can defend

98% of orders tied to a source. The other 2% named, not hidden.

Manual, app and marketplace orders are counted and shown apart from web orders, so the coverage number is never diluted by orders that could not carry a browser. Where the identity was lost, the order says which signal was missing and where it was lost.

  • Coverage split by where the order was placed
  • Four-layer stitching model, every order stamped with the layer that joined it
  • Journeys survive a change of checkout provider
  • Partial refunds keep the order a sale and the money honest
Signal delivery

Third-party pixel

blocked

cdn.some-tracker.com/px.js

ITP · blocker

First-party path · your own domain

arrives

yourstore.com/a7f2k/collect

Attribution coverage

0%

of orders tied to a real source on live stores

The identity lives on the visitor, not the browser - so it survives the wipe.

Down to the ad

Channel, campaign, ad set, ad. Spend has full depth; revenue says where it does not.

Every ad id resolves to a name whatever slot it rode in, so the tables read as campaigns rather than numbers. Platform performance is judged on each platform’s own traffic and orders, with manual and draft orders excluded.

  • Every ad entity resolved to its name, nightly
  • Paid channel groups as a set: Display, YouTube and Demand Gen are Google paid
  • gad_source read as a Google click, the network named
  • Ad spend synced from Meta and Google, never double-counted
Sales · actionsMeasured spend

brand search

₹33,480 spent · ₹1,44,720 back

4.32×
Scale

cheapest growth

retargeting · DPA

₹37,350 spent · ₹1,43,460 back

3.84×
Scale

well past the line

magnesium search

₹55,890 spent · ₹1,37,430 back

2.46×
Hold

profitable

pmax · bestsellers

₹1,13,130 spent · ₹2,33,280 back

2.06×
Hold

just above it

prospecting · advantage

₹1,62,180 spent · ₹1,57,320 back

0.97×
Rebalance

under break-even

generic supplements

₹1,46,610 spent · ₹39,420 back

0.27×
Cut

loses every order

The line inside every bar is your break-even at 1.82×. Past it, a campaign buys revenue at a profit.

Inside the module

What is inside

Everything on this page is a screen in the product, and every number on it can be checked from another screen.

Order detail

Overview, path to purchase, pages viewed, funnel timing, tag layer, raw attribution captured

Channels and campaigns

Two clean tabs, roles per channel, drill to ad set and ad

Platform performance

Each platform on its own traffic and orders

Conversion lag

How much revenue lands after the platform stops counting

Journey coverage

How many orders carried a journey, and the reason when one did not

Bitespeed, Wati, Interakt, AiSensy

Owned tools credited by name, never as Direct

The ₹4,860 order on the homepage is a real receipt. Open it, and then open one of your own.

See the receipt behind your next order

Every order credited.Every claim checkable.

Connect the store, install one snippet, and the first order that lands arrives with its ad, its journey and its match score.