Tracking Guide

Track campaigns with UTMs and optional postbacks

Passion+ gives you two layers of tracking. UTM-tagged landing page URLs make campaign traffic easy to inspect inside GA4. Optional postback URLs let your store or backend send conversion events directly to Passion+, which is useful when you want revenue reporting, non-GA attribution, or more control over what counts as a conversion.

Pick the tracking layer that matches the question you want answered

UTM tracking for GA4

Use the display and video tracking URLs in your ads. They append utm_source, utm_campaign, and utm_medium so GA4 can attribute site visits and downstream events to Passion+ traffic.

Postback tracking for conversions

Use the optional postback URL in your ecommerce platform or backend. That URL sends purchase or other conversion events straight to Passion+ even if you are not relying on GA4 as the system of record.

Use UTMs when

You want to verify traffic in GA4, compare display versus video, or keep using your existing analytics dashboards for acquisition reporting.

Use postbacks when

You want server-to-server conversion reporting, revenue values from your checkout system, custom event names, or a tracking path that does not depend on GA4 tags being present on the site.

GA4: what to look for

Source

passionplus

Campaign

your campaign value

Medium

display or video

The display and video URLs Passion+ generates already include manual campaign parameters. In GA4, those values usually show up in traffic acquisition reports as manual source, manual campaign name, and source / medium dimensions.

1. Open Reports → Acquisition → Traffic acquisition

2. Switch the table dimension to Session manual source / medium or Session manual campaign name

3. Look for traffic from passionplus and your campaign value after delivery begins

Postback URLs: how they work

A postback is a server-to-server webhook call from your store, app, or backend to Passion+. Instead of depending on a browser session reaching GA4 with UTM tags intact, your system notifies Passion+ when a conversion happens.

Your postback URL is in the Campaign link details section of your finalized plan and in your campaign dashboard, labelled "Postback URL (advanced, optional)".

1. A real conversion happens

Your checkout, subscription flow, CRM, or backend confirms a purchase or other event.

2. Your system calls the postback URL

Passion+ expects a request like /api/track/<token>?event=purchase&value=12900.

3. Passion+ records the conversion

The event type and revenue value are stored against your campaign session for reporting and optimization.

Supported query parameters

event

Event label to record. The generated URL defaults to purchase, but you can use a different value if you want to distinguish actions like lead, signup, or subscription_renewal.

value

Revenue in cents. Replace ORDER_VALUE_CENTS with the actual amount from your platform, such as 12900 for a $129.00 purchase.

order_id

Optional but recommended. Send your platform's order or transaction identifier to help Passion+ ignore duplicate retries more accurately. transaction_id and event_id work too.

Why use postbacks if UTMs already work in GA4?

More direct revenue reporting

Your checkout system can send the actual order value straight to Passion+ instead of relying on analytics events being forwarded elsewhere.

Works outside GA4

Useful if GA4 is not your primary source of truth, if some events happen off-site, or if parts of the conversion path live in a backend or app.

Supports different event types

You can track more than just purchases when needed, which helps if your success metric is a lead, booked call, trial start, or another backend-confirmed event.

Reduces duplicate noise

Passion+ ignores repeat events with the same token, event type, and IP hash inside a five minute window to avoid obvious retry duplicates.

Typical implementation pattern

E-commerce platform webhook

Fire the URL after an order is paid. Map the order total into the value parameter, and include your platform's order identifier when available.

Backend confirmation call

Call the postback from your own server after fraud checks, payment capture, or subscription activation if that is when you want the conversion counted.

Campaign-specific customization

Configure the postback URL in your campaign dashboard if you need a different event name, want to omit revenue, or want your operational team to use a platform-specific webhook mapping.

Official Google references