Articles on: Tracking Setup

Tracking conversions


Conversions are events that generate revenue in FunnelFlux. This guide covers the three ways to track them: postback URLs, JavaScript, and the funnel builder. Each method suits different setups, so read on to find the best fit for your workflow.


Conversions can only occur on lander and offer page nodes. However, a conversion also attributes backward to pages and nodes the visitor touched before converting.


There are three ways to track conversions:

  1. Using a postback URL
  2. Using our JavaScript
  3. Using our funnel builder


Each option is covered below.


Conversion tracking using a postback URL

A postback URL is simply a URL that gets loaded by some external system. That system could be your offer network, another tracking platform, custom app code, or even you in a browser.


The concept is straightforward. You load the URL to pass some info. It gets received. Done.


You can find postback URLs in Settings > Tracking Codes. They also appear in the conversion tracking tabs of offers and offer sources:



There are two postback methods you can use.


Tracking using hit IDs

You can find the FunnelFlux Pro global postback URL under system settings:

https://DOMAIN/pb/?hit=REPLACE&tx=REPLACE&rev=REPLACE
  • hit = a unique hit ID (required)
  • tx = an optional transaction ID
  • rev = optional conversion revenue (if none passed, we will use the default payout defined in the offer's configuration)


A hit ID is a unique tracking ID generated for every visit to any node in a funnel. A single visitor (with one visitor ID) creates a different hit ID for each node they touch.


When someone visits a page, you want to capture the hit ID for that page. Then you pass it back when a conversion happens.


The simplest approach is to include the hit ID in your offer URL using the {hit} token. With affiliate networks, this typically means adding something like ...&clickid={hit}... to the URL.


Then in the postback URL configured in your network, pass that data back:

https://DOMAIN/pb/?hit={{clickid}}&tx={{transaction}}&rev={{payout}}

This is just an example. The parameter name and tokens depend on the third-party system. Use our offer source templates for guidance.


If you use a custom system or self-developed funnels, you must capture this hit ID yourself. Then pass it back in a postback URL when conversions happen.


Optional postback parameters

Use these to control advanced postback behavior.

  • disable_postbacks=true – passing this will disable any outgoing postbacks to your traffic source
  • force_postbacks=true – passing this will force outgoing postbacks even if the underlying conversion has already happened and is being updated
  • conversion_time=unixtimestamp – you can pass a unix timestamp to override the conversion time, which is normally the time of the postback being received. If this is invalid or before the underlying hit, it will fall back on using the postback time


Conversion tracking using JavaScript

You can also track conversions using JavaScript.


Go to any offer > edit > conversion tracking. This gives you the code for firing a conversion event. It consists of our universal tag followed by a flux.track call:

<script>
flux.track("conversion", {rev: "VALUE"})
</script>

Replace the revenue value with your own, or leave it blank to use the offer's default payout.


By default, this code converts the most recently visited offer view. You can customize the behavior with these optional parameters (all inside the curly brackets object):

  • p -- force a specific page ID
  • vid or hit -- force a specific visitor ID or hit ID (do not pass both)
  • tx -- pass a transaction ID


Triggering via the Funnel Builder

You can also trigger conversions directly in the funnel builder using the "on action" feature.


For any action coming out of a page, right-click > modify action.


From there, choose to trigger specific custom events or conversions.



Disabling postbacks to your traffic source

As an advanced option, you can send a conversion to FunnelFlux without triggering an event to your traffic source. Add ...&disable_postbacks=true... to your postback URL.


Example:

https://DOMAIN/pb/?hit={token}&rev={token}&disable_postbacks=true

This is useful when running search arbitrage. Delayed conversions with updated revenue can refresh FunnelFlux data without altering traffic source conversion counts.


Handling Event Statuses

Some networks only allow a single postback but send events with changing statuses. You can use the status parameter to handle this.


For example:

https://DOMAIN/pb/?hit=REPLACE&tx=REPLACE&rev=REPLACE&status={status_token}

Here is how each status value behaves:

  • Pending/hold/preapproved: Revenue adjusts to 0.01. This creates a conversion with a tiny temporary value.
  • Rejected/reject/trash/cancelled: Revenue sets to -1. This deletes an existing conversion or creates none.
  • Any other value: Treated as a normal conversion. The status is ignored.


This helps with networks that use a single postback but send a dynamic status value for various events.


Alternative postback method - Session-based VID

Sometimes you cannot capture a unique hit ID for a specific page. If you can capture the visitor ID (VID) instead, you can use it for conversions.


A VID is a unique identifier for a user session. FunnelFlux always returns it in the JS response. It also adds VID automatically to redirect destinations and action links.


VID is often easier to capture at the start of a visitor journey. You do not need to worry about tracking hits on specific pages. This is especially true for ecommerce-related platforms.


To use VID, pass it in the postback URL along with the page ID that converted:

https://DOMAIN/pb/?vid=REPLACE&p=REPLACE&tx=REPLACE&rev=REPLACE

When you send this, FunnelFlux finds that VID/user. Then it locates the most recent hit ID for the specified page ID.


Using Visitor ID vs Hit ID for conversion tracking

Each method has trade-offs. Here is a comparison to help you decide.


For visitor ID:

  • Easier to capture. Our JS always has it, and our redirects always include it.
  • A single identifier per visitor. Much simpler to store in CRMs and ecommerce systems.
  • Ideal for flows with upsells or multiple offers. Store one user ID, then send multiple conversion events.
  • No need to capture different IDs on different offer pages.
  • However, VID relies on session storage, which is not permanent. Sessions last 4 days by default and extend automatically with activity. A stored VID will not work if you fire a conversion months later with no prior activity.
  • You must also pass a page ID to specify which offer converted. Otherwise, FunnelFlux uses the last visited offer in that session.


For hit ID:

  • Simple in traditional affiliate setups. Pass a single unique click ID, then pass it back.
  • No need to specify a page ID. Hit IDs are already unique to a specific page visit.
  • Hits are stored permanently in the analytics database. They can be converted at any time.
  • However, a hit ID only applies to one page visit. It is less ideal if you have many pages/offers and a CRM system handling multiple conversions.


If in doubt, reach out and we can help clarify any questions about postback tracking.

Updated on: 05/05/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!