Skip to main content

Order Attribution Dashboard Setup (GTM → GA4)

This guide explains how to track ad clicks from Google and Facebook through your online order form to completed purchases, and how to surface that data in an attribution dashboard.

Written by Euri

Who This Is For

This article is for Cents customers who:

  • Have Google Tag Manager (GTM) installed

  • Have UTM parameters enabled in their Cents account (Contact CSM)

  • Are running paid ads on Google or Facebook

  • Are sending ad traffic to their Cents LiveLink URL (If you are sending ad traffic to your website, we currently do not have a snippet install

  • Want to see which campaigns drive orders and confirmed revenue

If you have not yet set up GTM, complete the prerequisite article first:

What You Will Be Able to See When Finished

After completing this guide, you will be able to answer:

  • Which Google and Facebook campaigns are driving order submissions

  • The full funnel: ad click → LiveLink → sign in → address → services → order submitted → order completed

  • Confirmed revenue attributed to each campaign, source, and medium

How attribution works at Cents

Because Cents hosts your LiveLink page, attribution uses a hybrid approach:

Google Tag Manager (GTM) fires funnel events directly on your LiveLink page — page views, address entry, service selection, and order submission. You connect your GTM container to LiveLink by adding your container ID in the Cents Dashboard. Cents loads it automatically from there.

Cents Webhooks fire server-side when an order is created, updated, or completed. This payload includes customer information, the confirmed order total (the actual weighed revenue), and the UTM parameters from the original ad session.

🔗 Read: Cents Webhooks

Both feed into the same GA4 property to give you the full picture.

Key distinction to understand before you start:

Event

What it means

How to send to GA4

Order submitted (various event names between GTM and webhooks, specified below)

Customer placed their order

Option A: GTM dataLayer event on LiveLink → GA4

Option B: Cents order_created webhook → GA4 via Measurement Protocol

Order completed

Order fulfilled, revenue confirmed

Cents order_completed webhook → GA4 via Measurement Protocol (only option)



Step 1: Link your ads to your Cents LiveLink URL

In your ad platform, set your LiveLink URL as the destination for your ad. Add UTM parameters directly in your ad platform's URL settings — when a user clicks your ad, those parameters are appended to the LiveLink URL automatically, and Cents captures them at session start.

In Google Ads:

  1. In your campaign, open the ad and find the Final URL field

  2. Enter your LiveLink URL (e.g. https://livelink.trycents.com/your-store)

  3. In the URL suffix or Tracking template field, add your UTM parameters:

   utm_source=google&utm_medium=cpc&utm_campaign=summer_promo

In Facebook Ads:

  1. In Ads Manager, open your ad and scroll to the Destination section

  2. Enter your LiveLink URL in the Website URL field

  3. Click Build a URL Parameter and fill in the UTM fields, or paste them manually:

   utm_source=facebook&utm_medium=cpc&utm_campaign=summer_promo

Parameter

Example

Purpose

utm_source

google or facebook

Traffic source

utm_medium

cpc

Channel type

utm_campaign

summer_promo

Campaign name

utm_content

retargeting_v2

Ad variant (optional)

utm_term

laundry+delivery

Keyword (optional)

Once a user clicks your ad and lands on LiveLink, Cents captures the UTM parameters and carries them through to your order webhook payloads automatically, no additional setup needed on LiveLink itself.

If your ads drive traffic to your website first, read below

If your ads link to your own website rather than directly to LiveLink, UTMs land on your site but won't automatically carry over when a user clicks your "Schedule Pickup" or equivalent button that links to the LiveLink. Create a new GTM tag for your website to read the UTMs from the current page URL and append them to any LiveLink link before the user clicks through.

Click New Tag > Conversion Linker > Enable linking on all page URLs > Enable linking across all domains > auto share with app.trycents.com. Sure to Trigger on All Pages

Once this tag is in place, users who click your "Schedule Pickup" button will arrive at LiveLink with UTMs intact, and Cents captures them from there. Ensure to set up a the correct tag via your Google Tag Manager (Can be labelled something like Website ad tracking)


Step 2: Make Sure UTM Parameters Are Present When Clicking from Ad

Your ad links should include UTMs, such as:

Common UTM Parameters

Parameter

Example

Purpose

utm_source

facebook

Traffic source

utm_medium

cpc

Channel type

utm_campaign

summer_promo

Campaign name

GA4 automatically captures these when the session begins.


Step 3: Set up webhooks with Cents to forward server side events to GA4

Your server forwards the Cents webhook to GA4 using the Measurement Protocol so confirmed revenue is attributed to the correct campaign. Share the following endpoint with your CSM to subscribe to Cents Webhooks:
🔗 Read: Cents Webhooks

Endpoint:

POST https://www.google-analytics.com/mp/collect?measurement_id=G-XXXXXXX&api_secret=YOUR_SECRET

To get your api_secret: GA4 → Admin → Data Streams → select your stream → Measurement Protocol API Secrets → Create

Request body (mapped from the Cents webhook):

{
"client_id": "cents-server",
"events": [{
"name": "order_completed",
"params": {
"transaction_id": "19214",
"value": 34.50,
"currency": "USD",
"source": "facebook",
"medium": "cpc",
"campaign": "summer_promo",
"content": "retargeting_v2"
}
}]
}

Field mapping reference:

GA4 Parameter

Cents Webhook Field

transaction_id

order.id

value

order.orderTotal (confirmed weighed total)

source

attributionSource

medium

attributionParams.utm_medium

campaign

attributionParams.utm_campaign

content

attributionParams.utm_content

Important: Only forward the event to GA4 if attributionSource is not null. Skipping unattributed orders keeps your reports clean and accurate.


Step 4: Track purchase events

When a customer submits their order, you can send that event to GA4 one of two ways. Choose the option that fits your setup.

Option A: Track through Google Tag Manager

Create a GA4 Event tag in GTM for each trigger you set up:

  1. Go to Tags → New

  2. Choose Google Analytics: GA4 Event

  3. Enter your Measurement ID (format: G-XXXXXXX — find this in GA4 → Admin → Data Streams)

  4. Set the Event Name using the mappings below

  5. Attach the corresponding trigger

  6. Save and publish

Recommended event name mappings:

LiveLink Event

GA4 Event Name

User views order page after log-in

page_view

Address is selected/input

add_shipping_info

User adds a service to their basket

add_to_cart

User clicks next from basket to checkout

begin_checkout

User adds payment method

add_payment_info

User submits the order / Order created with RWG or Tune Up

purchase

Option B: Cents order_created webhook → GA4

If you prefer a server-side source of truth, subscribe to the order_created webhook in Cents and forward it to GA4 via the Measurement Protocol (see Step 3 above for the full forwarding setup — the approach is identical, just using order_created as the event name and 0 for value since the order hasn't been weighed yet).

Example order_created payload:

json

{
"event": "order_created",
"order": {
"id": 19214,
"orderCode": "2992",
"status": "SUBMITTED",
"orderTotal": 0,
"orderType": "ONLINE"
},
"customer": {
"firstName": "Jane",
"lastName": "Smith",
"email": "[email protected]",
"phoneNumber": "+11234567890"
},
"attributionSource": "facebook",
"attributionParams": {
"utm_medium": "cpc",
"utm_campaign": "summer_promo",
"utm_content": "retargeting_v2",
"utm_term": null,
"gclid": null,
"fbclid": "AbCdEfGhIjKlMn"
}
}

Note: attributionSource and attributionParams will be null when the order did not originate from a UTM-tagged ad link. Only orders placed via a tracked ad URL will have attribution data populated.


Step 5: Mark purchase as a conversion in GA4

  1. In GA4, go to Configure → Events

  2. Find the purchase event

  3. Toggle Mark as conversion

This ensures order submissions appear in your acquisition and attribution reports.


Step 6: Build your attribution dashboard in GA4

Revenue attribution table

Go to Explore → Blank Exploration and configure:

Dimension

Metric

Session source

Order submissions (purchase event count)

Session medium

Confirmed revenue (order_completed value)

Session campaign

Conversion rate

Example output:

Source

Medium

Campaign

Orders Submitted

Revenue Confirmed

google

cpc

brand_search

124

$3,844.00

facebook

cpc

retargeting

86

$2,107.00

facebook

cpc

prospecting

42

$918.50

Funnel visualization

Go to Explore → Funnel Exploration and add these steps:

  1. Session start — UTM parameters captured on LiveLink arrival

  2. Sign in / page view — user authenticated and viewing LiveLink

  3. Address enteredadd_shipping_info

  4. Checkout startedbegin_checkout

  5. Order submittedpurchase

  6. Order completedorder_completed (confirmed revenue from webhook)


Troubleshooting

GTM events aren't firing on LiveLink Confirm your GTM container ID is saved in Cents Dashboard → Settings → Integrations. Use GTM Preview Mode to verify dataLayer events are pushing as expected.

UTMs aren't carrying over from your website to LiveLink Make sure the GTM link decoration tag from Step 1 is published and firing on All Pages. Check that your "Schedule Pickup" link href includes livelink.trycents.com so the selector matches.

Purchases show in GA4 but no UTM attribution Check that UTM parameters are present on the ad click URL. If attributionSource is null in the webhook payload, UTMs weren't captured for that session — typically because the user arrived at LiveLink directly rather than via a tagged link.

Facebook data showing as (direct) UTMs must be added manually to every Facebook ad URL. Facebook does not append them automatically.

order_completed events not appearing in GA4 Test your Measurement Protocol calls using GA4's Event Builder. Check GA4 DebugView to confirm events are arriving with the correct parameters.

Revenue in GA4 doesn't match Cents Dashboard Make sure you're mapping order.orderTotal from the order_completed webhook — not balanceDue, which reflects only fixed fees like delivery charges collected at submission.


Summary

  • GTM sends purchase events

  • UTMs identify ad source

  • GA4 ties sessions to conversions

  • Attribution appears in Acquisition and Exploration reports


Need Help?

If you need assistance validating your setup or creating a custom attribution dashboard, contact the Cents support team.

Did this answer your question?