Introduction to offers

Offers are pages that you can use in your marketing flows/funnels.

Any page that a revenue-generating conversion happens on should be an offer. This could be a checkout page, a page with an upsell, or a URL from a third-party that you send people to (such as an "offer" from an affiliate network or product owner).

There's quite a few areas to offer config as you can see below, so lets cover the basics of them all.

Basic config

Offer name - this is up to you!

Source - this is the Offer Source that this offer comes from. Choosing a value here (other than "No Offer Source") will cause the Configure Data Passing section to populate with values, essentially giving a tracking template

Category - this is just used for grouping on the offers page/table

Base Offer URL - here, put the URL of the offer, but minus any query string part that you want dynamically added by the data passing section. This will need to be the full page path, and can include any URL parameters (as well as tokens) that you don't want to control via the data passing section.

So for example, you may put:

Then in the data passing section, you can configure to append:


A common example with affiliate networks is that you may want to template the above for convenience, but also add the offer ID and your affiliate ID in the base offer URL, such as:

Here, the "a" and "o" parameters are unique to this offer's URL, whereas the "s1", "s2" and "s5" parameters are universally templated by way of the offer source chosen.

Redirect type - this controls the way tracking links will redirect to this page. Use 301 by default as its the fastest, and always use this for offer pages that you own and control (no sense slowing down your own page loads).

The other options of simple/ultimate meta refresh are slower and redirect through an intermediate page as a means of masking referrer.

Configure data passing

This is a section you may recognise from Offer Source config.

They are indeed related -- when you pick an offer source, we'll populate these fields/values to help you build offer URLs systematically.

You can modify these for any offer as you choose and the Offer Source will not be affected. Likewise if you modify the Offer Source, it will not affect existing offers. The templating here happens when you choose a source from the dropdown list, a pre-fill function but nothing more.

Below these fields you will see resulting offer URL:

This is your base URL + the fields configured in the data passing section. When loading our redirect links and navigating to this page, this is the URL that will ultimately load.

We highly recommend that you use this data passing section and templating rather than manually putting everything in the base offer URL field. It will save you time, lets you standardise the way you pass data to certain sources, and will lead to less human error in your URLs.

Conversion tracking

Here you can get the postback URL you'd use for this offer.

This is based on the Offer Source you select -- it has nothing to do with the offer itself, rather we're giving you the URL you'd put into the third-party offer source platform. It's just here for convenience.

On the other hand, the Javascript tracking is important -- this is the code you use to fire conversion events for this offer.

It should not be placed on the offer page, but on the page that you want a conversion to trigger from, e.g. some thank you page that comes after this offer converts.

Inside the JS code we insert the same tokens we use in postback URLs, which your offer source system should be able to dynamically insert. Example:

<script src=""></script>
var lum = new Lumetric();
lum.event('conversion', {
'query': {
    'rev': '{payout}',
    'tx': '{transaction_id}',
    'p': '0NqIYAJg948u',
    'hit': '{aff_click_id}',
    'vid': '',
'onDone': function(response) {}

This code is similar to our page view tracking Javascript.

Importantly, you can see the p parameter here, which has the unique ID of this offer. That way when this conversion fires, we'll know that its a conversion event for this offer specifically.

Things like payout, transaction ID, and even hit IDs can be injected by your offer source system if possible, otherwise they can be left blank.

In this section you can do two things:

  1. Get action links for your pages, for clickthrough actions
  2. Get javascript code for tracking page views

Action links are universal, you can use the same links on all your landers, you just need to ensure the numbers are correct based on your funnel config.

If you want action links with default parameters added, you'll need to get these from inside the funnel builder.

The javascript in this section is for tracking page views.

We recommend putting the javascript on every lander/offer page you have as it will improve tracking reliability.

The javacsript code looks like this:

var lum = new Lumetric();
lum.event('view', {
'query': {
    // 'f': '{FUNNEL-ID}',      
    // 'ts': '{TRAFFICSOURCE-ID}',  
    // 'n': '{NODE-ID}',     
    'p': '0NqIYAJg948u',
    // 'c': '{COST}' 
'options': {
    'cookieAllowed': true,
    'timeOnPage': false,
    'resolveTokens': [],
'onDone': function(response) {}

Note here the important parameter, the only one that is not commented out, is the "p" value, which is a page ID.

You can use the same javascript on every page but you should change this "p" value to be the ID of the lander/offer the code is on.

The easiest way to do this is to just copy the javascript from the edit offer modal, or turn on the resource ID column in your table settings and copy it from there.

The other parameters like f (funnel), ts (traffic source), n (node), can't be generated here as you're not within a funnel, or generating some links.

If you generate JS via the funnel builder we will fill out these values for you, but they just act as defaults for cases where you haven't passed data in the URL.

Usually, you should use the get links function in FunnelFlux to get redirect URLs (or direct-to-page URLs) for your campaigns. These will append funnel, traffic source and other IDs to the URL, ensuring the visitor is tracked correctly, and the JS will pick up and use these values rather than the defaults set in the code.

Was this article helpful?