Update pixel

The update pixel adds data to a conversion that already exists. It does not create anything. It is placed either by the advertiser on the conversion page, or by the affiliate on their form page, to collect URL and cookie values that an iFrame or API form cannot pick up on its own.

⚠️ Tracking cannot create Lead conversions. It can only update existing ones. New leads must come from the form or the API.

The script

<script>
 (function(w,p){p=w.paldock=w.paldock||{};p.q=p.q||[];p.conversion=p.conversion||function(){p.q.push(["conversion"].concat([].slice.call(arguments)))}})(window);

  // Update conversion
  paldock.conversion({
    action: 'update',
    affiliate_id: 'affiliate_id',        // only for affiliates
    advertiser_id: 'advertiser_id',      // only for advertisers
    external_id: 'external_id',       // only for advertisers
    pldk_conversion_id: 'origin_id',           // only if it is not in the dataLayer
    queryParam: {
      key1: 'utm_content',
      key2: 'utm_medium',
      key3: 'utm_source'
    },
    cookieParam: {
      key1: '_ga',
      key2: 'fbp',
      key3: 'fbc'
    }
  });
</script>

What it collects

  • queryParam: values from the URL, typically utm tags.
  • cookieParam: values from cookies, typically Google and Meta identifiers such as _ga, _fbp, and _fbc.

Up to three keys each. Once they are on the conversion, you can forward them anywhere through the Tracking API, for example into Google Ads or Meta.

Which conversion gets updated

Two ways to point at it:

  • Origin ID = pldk_conversion_id, on its own. Always available, to advertisers and affiliates alike.
  • Advertiser ID with External ID, for advertisers only.

If two conversion types happen in the same session, add type so PalDock knows which one you mean. Use lead rather than prospect when you are updating the original lead, not the transaction.

See Conversion IDs explained.

Where the Origin ID comes from

Every conversion has one, and you need it later to update that conversion. Where you get it depends on how the conversion was created.

  • Created by a pixel: the pixel writes the Origin ID into the data layer automatically.
  • Created through the API or a postback: the response contains it. Store it, then push it to the data layer yourself.
{"status": "accepted", "origin_id": "1234"}
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
    event: 'sale',
    pldk_conversion_id: id   // origin ID received from the pixel or the API
});

Use the same event name as the conversion type you created.

Who has to do what:

  • Affiliates using an iFrame form: nothing. The form handles it.
  • Affiliates using an API form, and all advertisers: store the Origin ID and push it to the data layer, or pass it in the pixel code.

When the value is in the data layer, the update pixel picks it up on its own and you can leave origin_id out of the script.

Where to place it

  • On the conversion page, alongside the conversion pixel.
  • The update pixel only fires when an Origin ID is available, so placing it on other pages does nothing.

See How to set up pixel tracking.

Insights that
helps you grow

  • Release notes 2026/08/14
    This was a big one. We went through roughly 200 pages of our knowledge base and rewrote the whole thing. Clearer structure, consistent terminology, and…
  • Release notes 2026/07/31
    What’s new in PalDock? A lot of this month went into things you won’t see directly – query optimisation, indexing, and general tuning under the…
  • Free Affiliate tracking software
    Many companies (inlcuding YOU) search for free affiliate tracking software because they want to launch an affiliate program without committing to expensive monthly fees. The…