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.