End-to-end analytics: connecting ads, site, CRM and revenue
The ad platform, the site, the CRM and the accounts all use different units: ads count clicks and impressions, site analytics counts events and sessions, the CRM counts contacts and deals, accounting counts payments. A dashboard that simply puts those figures side by side without connecting them creates the illusion of analytics rather than analytics.
Where end-to-end analytics starts
Before connecting any systems, decide explicitly what the unit of reporting is — a lead, a deal, an order or a payment — because the whole architecture follows from it. That unit then has to be traceable along a chain of identifiers from click to money.
The chain of identifiers
-
Click ID and UTM tags record the source and campaign of the visit.
-
A client or session identifier tracks behaviour on the site.
-
An enquiry event identifier records a specific form submission.
-
Contact and deal identifiers represent the entities in the CRM.
-
An order or payment identifier confirms the commercial outcome.
Without this chain every system carries on living in its own numbers, which can't honestly be compared with each other.
How the data should move
-
The landing page records the traffic source and the analytics identifier.
-
The server creates a unique enquiry event.
-
The integration passes the data to the CRM and receives a deal identifier back.
-
The CRM records qualification, stages and loss reasons.
-
The payment provider passes confirmed amounts and refunds.
-
A data warehouse joins the tables for final attribution.
Details without which the system quickly starts lying
-
Repeated webhook notifications must not create duplicate leads.
-
Refunds should be recorded as separate correcting events, not by deleting the original record.
-
Amounts must be stored with their currency, date and transaction type.
-
A daily reconciliation helps: the number of enquiries on the site, integration events and new CRM records should match.
On attribution — without illusions
Simple attribution models (first click or last click) always have limits and don't reflect the full customer journey. It's more honest to show the share of the result a model explains than to distribute the whole result artificially by one formula, and to document explicitly which attribution model a given report uses.
If the ad budget is being spent and there's no way to tell what actually brings revenue, we can build the data chain from click to money and show the honest picture rather than a good-looking dashboard.
